diff --git a/hledger/hledger.1 b/hledger/hledger.1 index bb0cf1973..17a3ac001 100644 --- a/hledger/hledger.1 +++ b/hledger/hledger.1 @@ -6575,59 +6575,20 @@ account expenses ; type: Expense If you happen to use common english top-level account names, you may not need to declare account types, as they will be detected automatically using the following rules: -.PP -.TS -tab(@); -l l. -T{ -If name matches this regular expression: -T}@T{ -account type is: -T} -_ -T{ -\f[C]\[ha]assets?(:|$)\f[R] -T}@T{ -\f[C]Asset\f[R] -T} -T{ -\f[C]\[ha](debts?|liabilit(y|ies))(:|$)\f[R] -T}@T{ -\f[C]Liability\f[R] -T} -T{ -\f[C]\[ha]equity(:|$)\f[R] -T}@T{ -\f[C]Equity\f[R] -T} -T{ -\f[C]\[ha](income|revenue)s?(:|$)\f[R] -T}@T{ -\f[C]Revenue\f[R] -T} -T{ -\f[C]\[ha]expenses?(:|$)\f[R] -T}@T{ -\f[C]Expense\f[R] -T} -.TE -.PP -.TS -tab(@); -lw(57.6n) lw(12.4n). -T{ -If account type is \f[C]Asset\f[R] and name does not contain this -regular expression: -T}@T{ -account type is: -T} -_ -T{ -\f[C](investment|receivable|:A/R|:fixed)\f[R] -T}@T{ -\f[C]Cash\f[R] -T} -.TE +.IP +.nf +\f[C] + If account\[aq]s name matches this regular expression: | its type is: +------------------------------------------------------------------- | ------------ + \[ha]assets?(:|$) | + and does not contain regexp (investment|receivable|:A/R|:fixed) | Cash + otherwise | Asset + \[ha](debts?|liabilit(y|ies))(:|$) | Liability + \[ha]equity(:|$) | Equity + \[ha](income|revenue)s?(:|$) | Revenue + \[ha]expenses?(:|$) | Expense +\f[R] +.fi .PP Even so, explicit declarations may be a good idea, for clarity and predictability. diff --git a/hledger/hledger.info b/hledger/hledger.info index 804fe7491..bab6fb658 100644 --- a/hledger/hledger.info +++ b/hledger/hledger.info @@ -5695,19 +5695,15 @@ If you happen to use common english top-level account names, you may not need to declare account types, as they will be detected automatically using the following rules: -If name matches this regular expression: account - type is: ---------------------------------------------------------- -'^assets?(:|$)' 'Asset' -'^(debts?|liabilit(y|ies))(:|$)' 'Liability' -'^equity(:|$)' 'Equity' -'^(income|revenue)s?(:|$)' 'Revenue' -'^expenses?(:|$)' 'Expense' - -If account type is 'Asset' and name does not contain this account -regular expression: type is: --------------------------------------------------------------------------- -'(investment|receivable|:A/R|:fixed)' 'Cash' + If account's name matches this regular expression: | its type is: +------------------------------------------------------------------- | ------------ + ^assets?(:|$) | + and does not contain regexp (investment|receivable|:A/R|:fixed) | Cash + otherwise | Asset + ^(debts?|liabilit(y|ies))(:|$) | Liability + ^equity(:|$) | Equity + ^(income|revenue)s?(:|$) | Revenue + ^expenses?(:|$) | Expense Even so, explicit declarations may be a good idea, for clarity and predictability. @@ -8540,147 +8536,147 @@ Node: Declaring account types204949 Ref: #declaring-account-types205128 Node: Auto-detected account types205778 Ref: #auto-detected-account-types206019 -Node: Interference from auto-detected account types206983 -Ref: #interference-from-auto-detected-account-types207260 -Node: Old account type syntax207743 -Ref: #old-account-type-syntax207940 -Node: Account display order208240 -Ref: #account-display-order208400 -Node: Rewriting accounts209551 -Ref: #rewriting-accounts209730 -Node: Basic aliases210487 -Ref: #basic-aliases210623 -Node: Regex aliases211367 -Ref: #regex-aliases211529 -Node: Combining aliases212248 -Ref: #combining-aliases212431 -Node: Aliases and multiple files213707 -Ref: #aliases-and-multiple-files213906 -Node: end aliases214485 -Ref: #end-aliases214632 -Node: Default parent account214733 -Ref: #default-parent-account214923 -Node: Periodic transactions215807 -Ref: #periodic-transactions215990 -Node: Periodic rule syntax217907 -Ref: #periodic-rule-syntax218107 -Node: Two spaces between period expression and description!218811 -Ref: #two-spaces-between-period-expression-and-description219124 -Node: Forecasting with periodic transactions219808 -Ref: #forecasting-with-periodic-transactions220107 -Node: Budgeting with periodic transactions222162 -Ref: #budgeting-with-periodic-transactions222395 -Node: Auto postings222804 -Ref: #auto-postings222940 -Node: Auto postings and multiple files225119 -Ref: #auto-postings-and-multiple-files225317 -Node: Auto postings and dates225526 -Ref: #auto-postings-and-dates225794 -Node: Auto postings and transaction balancing / inferred amounts / balance assertions225969 -Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions226314 -Node: Auto posting tags226656 -Ref: #auto-posting-tags226865 -Node: CSV FORMAT227501 -Ref: #csv-format227629 -Node: Examples230215 -Ref: #examples230318 -Node: Basic230526 -Ref: #basic230628 -Node: Bank of Ireland231170 -Ref: #bank-of-ireland231307 -Node: Amazon232769 -Ref: #amazon232889 -Node: Paypal234608 -Ref: #paypal234704 -Node: CSV rules242348 -Ref: #csv-rules242466 -Node: skip242778 -Ref: #skip242873 -Node: fields243248 -Ref: #fields243372 -Node: Transaction field names244537 -Ref: #transaction-field-names244699 -Node: Posting field names244810 -Ref: #posting-field-names244964 -Node: field assignment247478 -Ref: #field-assignment247623 -Node: separator248441 -Ref: #separator248578 -Node: if block249118 -Ref: #if-block249245 -Node: Matching the whole record249646 -Ref: #matching-the-whole-record249823 -Node: Matching individual fields250626 -Ref: #matching-individual-fields250832 -Node: Combining matchers251056 -Ref: #combining-matchers251254 -Node: Rules applied on successful match251567 -Ref: #rules-applied-on-successful-match251760 -Node: if table252414 -Ref: #if-table252535 -Node: end254273 -Ref: #end254387 -Node: date-format254611 -Ref: #date-format254745 -Node: decimal-mark255494 -Ref: #decimal-mark255639 -Node: newest-first255978 -Ref: #newest-first256121 -Node: include256804 -Ref: #include256937 -Node: balance-type257381 -Ref: #balance-type257503 -Node: Tips258203 -Ref: #tips258294 -Node: Rapid feedback258593 -Ref: #rapid-feedback258712 -Node: Valid CSV259172 -Ref: #valid-csv259304 -Node: File Extension259496 -Ref: #file-extension259650 -Node: Reading multiple CSV files260079 -Ref: #reading-multiple-csv-files260266 -Node: Valid transactions260507 -Ref: #valid-transactions260687 -Node: Deduplicating importing261315 -Ref: #deduplicating-importing261496 -Node: Setting amounts262529 -Ref: #setting-amounts262686 -Node: Amount signs265127 -Ref: #amount-signs265281 -Node: Setting currency/commodity265968 -Ref: #setting-currencycommodity266156 -Node: Amount decimal places267330 -Ref: #amount-decimal-places267522 -Node: Referencing other fields267834 -Ref: #referencing-other-fields268033 -Node: How CSV rules are evaluated268930 -Ref: #how-csv-rules-are-evaluated269105 -Node: TIMECLOCK FORMAT270556 -Ref: #timeclock-format270696 -Node: TIMEDOT FORMAT272757 -Ref: #timedot-format272895 -Node: COMMON TASKS277171 -Ref: #common-tasks277300 -Node: Getting help277707 -Ref: #getting-help277841 -Node: Constructing command lines278394 -Ref: #constructing-command-lines278588 -Node: Starting a journal file279285 -Ref: #starting-a-journal-file279485 -Node: Setting opening balances280673 -Ref: #setting-opening-balances280871 -Node: Recording transactions284012 -Ref: #recording-transactions284194 -Node: Reconciling284750 -Ref: #reconciling284895 -Node: Reporting287152 -Ref: #reporting287294 -Node: Migrating to a new file291293 -Ref: #migrating-to-a-new-file291443 -Node: LIMITATIONS291742 -Ref: #limitations291870 -Node: TROUBLESHOOTING292613 -Ref: #troubleshooting292728 +Node: Interference from auto-detected account types206979 +Ref: #interference-from-auto-detected-account-types207256 +Node: Old account type syntax207739 +Ref: #old-account-type-syntax207936 +Node: Account display order208236 +Ref: #account-display-order208396 +Node: Rewriting accounts209547 +Ref: #rewriting-accounts209726 +Node: Basic aliases210483 +Ref: #basic-aliases210619 +Node: Regex aliases211363 +Ref: #regex-aliases211525 +Node: Combining aliases212244 +Ref: #combining-aliases212427 +Node: Aliases and multiple files213703 +Ref: #aliases-and-multiple-files213902 +Node: end aliases214481 +Ref: #end-aliases214628 +Node: Default parent account214729 +Ref: #default-parent-account214919 +Node: Periodic transactions215803 +Ref: #periodic-transactions215986 +Node: Periodic rule syntax217903 +Ref: #periodic-rule-syntax218103 +Node: Two spaces between period expression and description!218807 +Ref: #two-spaces-between-period-expression-and-description219120 +Node: Forecasting with periodic transactions219804 +Ref: #forecasting-with-periodic-transactions220103 +Node: Budgeting with periodic transactions222158 +Ref: #budgeting-with-periodic-transactions222391 +Node: Auto postings222800 +Ref: #auto-postings222936 +Node: Auto postings and multiple files225115 +Ref: #auto-postings-and-multiple-files225313 +Node: Auto postings and dates225522 +Ref: #auto-postings-and-dates225790 +Node: Auto postings and transaction balancing / inferred amounts / balance assertions225965 +Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions226310 +Node: Auto posting tags226652 +Ref: #auto-posting-tags226861 +Node: CSV FORMAT227497 +Ref: #csv-format227625 +Node: Examples230211 +Ref: #examples230314 +Node: Basic230522 +Ref: #basic230624 +Node: Bank of Ireland231166 +Ref: #bank-of-ireland231303 +Node: Amazon232765 +Ref: #amazon232885 +Node: Paypal234604 +Ref: #paypal234700 +Node: CSV rules242344 +Ref: #csv-rules242462 +Node: skip242774 +Ref: #skip242869 +Node: fields243244 +Ref: #fields243368 +Node: Transaction field names244533 +Ref: #transaction-field-names244695 +Node: Posting field names244806 +Ref: #posting-field-names244960 +Node: field assignment247474 +Ref: #field-assignment247619 +Node: separator248437 +Ref: #separator248574 +Node: if block249114 +Ref: #if-block249241 +Node: Matching the whole record249642 +Ref: #matching-the-whole-record249819 +Node: Matching individual fields250622 +Ref: #matching-individual-fields250828 +Node: Combining matchers251052 +Ref: #combining-matchers251250 +Node: Rules applied on successful match251563 +Ref: #rules-applied-on-successful-match251756 +Node: if table252410 +Ref: #if-table252531 +Node: end254269 +Ref: #end254383 +Node: date-format254607 +Ref: #date-format254741 +Node: decimal-mark255490 +Ref: #decimal-mark255635 +Node: newest-first255974 +Ref: #newest-first256117 +Node: include256800 +Ref: #include256933 +Node: balance-type257377 +Ref: #balance-type257499 +Node: Tips258199 +Ref: #tips258290 +Node: Rapid feedback258589 +Ref: #rapid-feedback258708 +Node: Valid CSV259168 +Ref: #valid-csv259300 +Node: File Extension259492 +Ref: #file-extension259646 +Node: Reading multiple CSV files260075 +Ref: #reading-multiple-csv-files260262 +Node: Valid transactions260503 +Ref: #valid-transactions260683 +Node: Deduplicating importing261311 +Ref: #deduplicating-importing261492 +Node: Setting amounts262525 +Ref: #setting-amounts262682 +Node: Amount signs265123 +Ref: #amount-signs265277 +Node: Setting currency/commodity265964 +Ref: #setting-currencycommodity266152 +Node: Amount decimal places267326 +Ref: #amount-decimal-places267518 +Node: Referencing other fields267830 +Ref: #referencing-other-fields268029 +Node: How CSV rules are evaluated268926 +Ref: #how-csv-rules-are-evaluated269101 +Node: TIMECLOCK FORMAT270552 +Ref: #timeclock-format270692 +Node: TIMEDOT FORMAT272753 +Ref: #timedot-format272891 +Node: COMMON TASKS277167 +Ref: #common-tasks277296 +Node: Getting help277703 +Ref: #getting-help277837 +Node: Constructing command lines278390 +Ref: #constructing-command-lines278584 +Node: Starting a journal file279281 +Ref: #starting-a-journal-file279481 +Node: Setting opening balances280669 +Ref: #setting-opening-balances280867 +Node: Recording transactions284008 +Ref: #recording-transactions284190 +Node: Reconciling284746 +Ref: #reconciling284891 +Node: Reporting287148 +Ref: #reporting287290 +Node: Migrating to a new file291289 +Ref: #migrating-to-a-new-file291439 +Node: LIMITATIONS291738 +Ref: #limitations291866 +Node: TROUBLESHOOTING292609 +Ref: #troubleshooting292724  End Tag Table diff --git a/hledger/hledger.txt b/hledger/hledger.txt index fdb766bd4..172d5f0ac 100644 --- a/hledger/hledger.txt +++ b/hledger/hledger.txt @@ -4786,22 +4786,15 @@ JOURNAL FORMAT not need to declare account types, as they will be detected automati- cally using the following rules: - - If name matches this regu- account type is: - lar expression: - ---------------------------------------------- - ^assets?(:|$) Asset - ^(debts?|lia- Liability - bilit(y|ies))(:|$) - ^equity(:|$) Equity - ^(income|revenue)s?(:|$) Revenue - ^expenses?(:|$) Expense - - - If account type is Asset and name does not contain this account type - regular expression: is: - -------------------------------------------------------------------------- - (investment|receivable|:A/R|:fixed) Cash + If account's name matches this regular expression: | its type is: + ------------------------------------------------------------------- | ------------ + ^assets?(:|$) | + and does not contain regexp (investment|receivable|:A/R|:fixed) | Cash + otherwise | Asset + ^(debts?|liabilit(y|ies))(:|$) | Liability + ^equity(:|$) | Equity + ^(income|revenue)s?(:|$) | Revenue + ^expenses?(:|$) | Expense Even so, explicit declarations may be a good idea, for clarity and pre- dictability.