all repos

clerk @ f9e2eff

missing tooling for ledger/hledger
20 files changed, 9 insertions(+), 76 deletions(-)
analyzer: drop unused CommodityDecimalMarks
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-08-12 16:49:20 +0300
Authored at: 2026-08-12 16:17:35 +0300
Change ID: qqwuxqltsrpmqtxwylqktuosozwkpssn
Parent: 20a67e0
M internal/analyzer/analyzer.go
···
        35
        35
         	Dates       []ast.Date // unique transaction dats in sorted order

      
        36
        36
         	DateStrings []string   // same order as Dates, "YYYY-MM-DD"

      
        37
        37
         

      
        38
        
        -	// CommodityDecimalMarks decimal mark per commodity, detected from D/amounts.

      
        39
        
        -	CommodityDecimalMarks map[string]byte

      
        40
        
        -

      
        41
        38
         	// TransactionsByKey groups transactions by [TxDuplicateKey] signature.

      
        42
        39
         	TransactionsByKey map[string][]*ast.Transaction

      
        43
        40
         }

      
M internal/analyzer/analyzer_test.go
···
        293
        293
         	for _, v := range a.TagValues {

      
        294
        294
         		fmt.Fprintf(w, "  %s\n", v)

      
        295
        295
         	}

      
        296
        
        -

      
        297
        
        -	// commodity decimal marks

      
        298
        
        -	csyms2 := make([]string, 0, len(a.CommodityDecimalMarks))

      
        299
        
        -	for sym := range a.CommodityDecimalMarks {

      
        300
        
        -		csyms2 = append(csyms2, sym)

      
        301
        
        -	}

      
        302
        
        -	sort.Strings(csyms2)

      
        303
        
        -	fmt.Fprintf(w, "\ncommodity decimal marks (%d):\n", len(a.CommodityDecimalMarks))

      
        304
        
        -	for _, sym := range csyms2 {

      
        305
        
        -		fmt.Fprintf(w, "  %s: %c\n", sym, a.CommodityDecimalMarks[sym])

      
        306
        
        -	}

      
        307
        296
         }

      
M internal/analyzer/build.go
···
        17
        17
         	}

      
        18
        18
         

      
        19
        19
         	a := &Analysis{

      
        20
        
        -		Files:                 rj.Occurrences,

      
        21
        
        -		Accounts:              make(map[string]*AccountInfo),

      
        22
        
        -		AccountAliases:        make(map[string]string),

      
        23
        
        -		Commodities:           make(map[string]*CommodityInfo),

      
        24
        
        -		Payees:                make(map[string]*PayeeInfo),

      
        25
        
        -		Tags:                  make(map[string]*TagInfo),

      
        26
        
        -		AccountsByPrefix:      make(map[string][]string),

      
        27
        
        -		PayeeTemplates:        make(map[string][]PostingTemplate),

      
        28
        
        -		CommodityDecimalMarks: make(map[string]byte),

      
        29
        
        -		TransactionsByKey:     make(map[string][]*ast.Transaction),

      
        
        20
        +		Files:             rj.Occurrences,

      
        
        21
        +		Accounts:          make(map[string]*AccountInfo),

      
        
        22
        +		AccountAliases:    make(map[string]string),

      
        
        23
        +		Commodities:       make(map[string]*CommodityInfo),

      
        
        24
        +		Payees:            make(map[string]*PayeeInfo),

      
        
        25
        +		Tags:              make(map[string]*TagInfo),

      
        
        26
        +		AccountsByPrefix:  make(map[string][]string),

      
        
        27
        +		PayeeTemplates:    make(map[string][]PostingTemplate),

      
        
        28
        +		TransactionsByKey: make(map[string][]*ast.Transaction),

      
        30
        29
         	}

      
        31
        30
         	for _, item := range rj.Items {

      
        32
        31
         		if item.IsInclude {

      ···
        95
        94
         		a.addCommentTags(fileIndex, nil, e.Comment)

      
        96
        95
         		for _, c := range e.HeaderComments {

      
        97
        96
         			a.addCommentTags(fileIndex, nil, c)

      
        98
        
        -		}

      
        99
        
        -	case *ast.DefaultCommodityDirective:

      
        100
        
        -		if e.Amount.Commodity != "" {

      
        101
        
        -			mark := e.Amount.QuantityFmt.Decimal

      
        102
        
        -			if mark != 0 {

      
        103
        
        -				a.CommodityDecimalMarks[e.Amount.Commodity] = mark

      
        104
        
        -			}

      
        105
        97
         		}

      
        106
        98
         	}

      
        107
        99
         

      ···
        234
        226
         		a.addCommentTags(fileIndex, date, posting.Comment)

      
        235
        227
         		for i := range posting.Comments {

      
        236
        228
         			a.addCommentTags(fileIndex, date, &posting.Comments[i])

      
        237
        
        -		}

      
        238
        
        -

      
        239
        
        -		// Collect decimal mark from amount formatting.

      
        240
        
        -		if posting.Amount != nil && posting.Amount.Commodity != "" && posting.Amount.QuantityFmt.Decimal != 0 {

      
        241
        
        -			if _, ok := a.CommodityDecimalMarks[posting.Amount.Commodity]; !ok {

      
        242
        
        -				a.CommodityDecimalMarks[posting.Amount.Commodity] = posting.Amount.QuantityFmt.Decimal

      
        243
        
        -			}

      
        244
        229
         		}

      
        245
        230
         	}

      
        246
        231
         }

      
M internal/analyzer/testdata/account-indexing.txtar
···
        107
        107
         tag names (0):

      
        108
        108
         

      
        109
        109
         tag values (0):

      
        110
        
        -

      
        111
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/account-usage.txtar
···
        100
        100
         tag names (0):

      
        101
        101
         

      
        102
        102
         tag values (0):

      
        103
        
        -

      
        104
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/aliases.txtar
···
        83
        83
         tag names (0):

      
        84
        84
         

      
        85
        85
         tag values (0):

      
        86
        
        -

      
        87
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/commodity-usage.txtar
···
        110
        110
         tag names (0):

      
        111
        111
         

      
        112
        112
         tag values (0):

      
        113
        
        -

      
        114
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/cost-balance.txtar
···
        76
        76
         tag names (0):

      
        77
        77
         

      
        78
        78
         tag values (0):

      
        79
        
        -

      
        80
        
        -commodity decimal marks (1):

      
        81
        
        -  $: .

      
M internal/analyzer/testdata/dates.txtar
···
        116
        116
         tag names (0):

      
        117
        117
         

      
        118
        118
         tag values (0):

      
        119
        
        -

      
        120
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/decimal-marks.txtar
···
        69
        69
         tag names (0):

      
        70
        70
         

      
        71
        71
         tag values (0):

      
        72
        
        -

      
        73
        
        -commodity decimal marks (1):

      
        74
        
        -  $: .

      
M internal/analyzer/testdata/directives.txtar
···
        82
        82
           mytag

      
        83
        83
         

      
        84
        84
         tag values (0):

      
        85
        
        -

      
        86
        
        -commodity decimal marks (1):

      
        87
        
        -  $: .

      
M internal/analyzer/testdata/duplicate-transactions.txtar
···
        74
        74
         tag names (0):

      
        75
        75
         

      
        76
        76
         tag values (0):

      
        77
        
        -

      
        78
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/empty.txtar
···
        31
        31
         tag names (0):

      
        32
        32
         

      
        33
        33
         tag values (0):

      
        34
        
        -

      
        35
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/include.txtar
···
        74
        74
         tag names (0):

      
        75
        75
         

      
        76
        76
         tag values (0):

      
        77
        
        -

      
        78
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/journal.txtar
···
        159
        159
         tag names (0):

      
        160
        160
         

      
        161
        161
         tag values (0):

      
        162
        
        -

      
        163
        
        -commodity decimal marks (1):

      
        164
        
        -  USD: .

      
M internal/analyzer/testdata/payees.txtar
···
        99
        99
         tag names (0):

      
        100
        100
         

      
        101
        101
         tag values (0):

      
        102
        
        -

      
        103
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/periodic-automated.txtar
···
        60
        60
         tag names (0):

      
        61
        61
         

      
        62
        62
         tag values (0):

      
        63
        
        -

      
        64
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/posting-types.txtar
···
        77
        77
         tag names (0):

      
        78
        78
         

      
        79
        79
         tag values (0):

      
        80
        
        -

      
        81
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/tags.txtar
···
        133
        133
           2024-02-01

      
        134
        134
           extra

      
        135
        135
           project-xyz

      
        136
        
        -

      
        137
        
        -commodity decimal marks (0):

      
M internal/analyzer/testdata/typed-entries.txtar
···
        99
        99
         tag names (0):

      
        100
        100
         

      
        101
        101
         tag values (0):

      
        102
        
        -

      
        103
        
        -commodity decimal marks (0):