hledger-lsp 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,9 +28,9 @@ export declare class FormattingProvider {
28
28
  */
29
29
  formatDocument(document: TextDocument, parsed: ParsedDocument, _lspOptions: LSPFormattingOptions, userOptions?: Partial<FormattingOptions>): TextEdit[];
30
30
  private formatTransactionLines;
31
- private layoutAmount;
32
- private formatIntegerAmount;
33
- private formatDecimalAmount;
31
+ private calculateTransactionWidths;
32
+ private emptyAmountWidths;
33
+ private updateAmountWidths;
34
34
  /**
35
35
  * Format a range of lines
36
36
  */
@@ -47,10 +47,6 @@ export declare class FormattingProvider {
47
47
  * Format a directive
48
48
  */
49
49
  private formatDirective;
50
- /**
51
- * Find the commodity format from parsed document
52
- */
53
- private findCommodity;
54
50
  }
55
51
  export declare const formattingProvider: FormattingProvider;
56
52
  //# sourceMappingURL=formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAU,cAAc,EAA2C,MAAM,UAAU,CAAC;AAM3F,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,kFAAkF;IAClF,YAAY,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC;CACjD;AAgCD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAsEb,OAAO,CAAC,sBAAsB;IAwP9B,OAAO,CAAC,YAAY;IAmDpB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAMb;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,QAAQ,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAUb;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,cAAc,EAA0B,MAAM,UAAU,CAAC;AAMlE,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,kFAAkF;IAClF,YAAY,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC;CACjD;AAqBD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAwEb,OAAO,CAAC,sBAAsB;IAsH9B,OAAO,CAAC,0BAA0B;IAqClC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAMb;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,QAAQ,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAUb;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,eAAe;CAoBxB;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -4,8 +4,10 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.formattingProvider = exports.FormattingProvider = void 0;
7
+ const vscode_uri_1 = require("vscode-uri");
7
8
  const ast_1 = require("../parser/ast");
8
9
  const index_1 = require("../utils/index");
10
+ const amountFormatter_1 = require("../utils/amountFormatter");
9
11
  const DEFAULT_OPTIONS = {
10
12
  indentation: 4,
11
13
  maxAccountWidth: 42,
@@ -22,6 +24,8 @@ class FormattingProvider {
22
24
  */
23
25
  formatDocument(document, parsed, _lspOptions, userOptions = {}) {
24
26
  const options = { ...DEFAULT_OPTIONS, ...userOptions };
27
+ // Normalize document URI to ensure proper encoding
28
+ const documentUri = vscode_uri_1.URI.parse(document.uri).toString();
25
29
  const text = document.getText();
26
30
  const lines = text.split('\n');
27
31
  // Format line by line, tracking transactions
@@ -35,7 +39,7 @@ class FormattingProvider {
35
39
  formattedLines.push(this.formatTransactionHeader(trimmed));
36
40
  // Find the corresponding transaction in the parsed document
37
41
  // to get inferred costs and other parsing results
38
- const transaction = parsed.transactions.find(t => (t.line === i && t.sourceUri?.toString() === document.uri));
42
+ const transaction = parsed.transactions.find(t => (t.line === i && t.sourceUri?.toString() === documentUri));
39
43
  // Collect and format all postings in this transaction
40
44
  const transactionLines = [];
41
45
  i++;
@@ -85,204 +89,78 @@ class FormattingProvider {
85
89
  formattedLines = lines.map(line => line.trimEnd());
86
90
  return formattedLines;
87
91
  }
88
- let indentColumnWidth = 0;
89
- let accountColumnWidth = 0;
90
- let commodityBeforeColumnWidth = 0;
91
- let spaceBetweenCommodityBeforeAndAmount = 0;
92
- let negativeSignColumnWidth = 0;
93
- let amountIntegerColumnWidth = 0;
94
- let amountDecimalMarkColumnWidth = 0;
95
- let amountDecimalColumnWidth = 0;
96
- let spaceBetweenAmountAndCommodityAfterColumnWidth = 0;
97
- let commodityAfterColumnWidth = 0;
98
- let costColumnWidth = 0;
99
- let costCommodityBeforeColumnWidth = 0;
100
- let spaceBetweenCostCommodityBeforeAndAmount = 0;
101
- let costNegativeSignColumnWidth = 0;
102
- let costAmountIntegerColumnWidth = 0;
103
- let costAmountDecimalMarkColumnWidth = 0;
104
- let costAmountDecimalColumnWidth = 0;
105
- let spaceBetweenCostAmountAndCommodityAfterColumnWidth = 0;
106
- let costCommodityAfterColumnWidth = 0;
107
- let assertionColumnWidth = 0;
108
- let assertionCommodityBeforeColumnWidth = 0;
109
- let spaceBetweenAssertionCommodityBeforeAndAmount = 0;
110
- let assertionNegativeSignColumnWidth = 0;
111
- let assertionAmountIntegerColumnWidth = 0;
112
- let assertionAmountDecimalMarkColumnWidth = 0;
113
- let assertionAmountDecimalColumnWidth = 0;
114
- let spaceBetweenAssertionAmountAndCommodityAfterColumnWidth = 0;
115
- let assertionCommodityAfterColumnWidth = 0;
116
- // First pass: determine column widths and cache layouts
117
- const postingLayouts = [];
118
- for (let posting of transaction.postings) {
119
- let postingLayout = {};
120
- indentColumnWidth = Math.max(indentColumnWidth, options.indentation);
121
- accountColumnWidth = Math.max(accountColumnWidth, posting.account.length);
122
- // Skip layouting inferred amounts since they don't exist in the source
123
- if (posting.amount && !posting.amount.inferred) {
124
- const layout = this.layoutAmount(posting.amount, parsed, options);
125
- postingLayout.amountLayout = layout;
126
- commodityBeforeColumnWidth = Math.max(commodityBeforeColumnWidth, layout.commodityBefore.length);
127
- negativeSignColumnWidth = Math.max(negativeSignColumnWidth, layout.isNegative ? 1 : 0);
128
- spaceBetweenCommodityBeforeAndAmount = Math.max(spaceBetweenCommodityBeforeAndAmount, (layout.spaceBetweenCommodityAndAmount && layout.commodityBefore.length) ? 1 : 0);
129
- amountIntegerColumnWidth = Math.max(amountIntegerColumnWidth, layout.amountIntegerString.length);
130
- amountDecimalMarkColumnWidth = Math.max(amountDecimalMarkColumnWidth, layout.amountDecimalString ? 1 : 0);
131
- amountDecimalColumnWidth = Math.max(amountDecimalColumnWidth, layout.amountDecimalString.length);
132
- spaceBetweenAmountAndCommodityAfterColumnWidth = Math.max(spaceBetweenAmountAndCommodityAfterColumnWidth, (layout.spaceBetweenCommodityAndAmount && layout.commodityAfter.length) ? 1 : 0);
133
- commodityAfterColumnWidth = Math.max(commodityAfterColumnWidth, layout.commodityAfter.length);
134
- }
135
- // Skip layouting inferred costs since they don't exist in the source
136
- if (posting.cost && !posting.cost.inferred) {
137
- const layout = this.layoutAmount(posting.cost.amount, parsed, options);
138
- postingLayout.costLayout = layout;
139
- costColumnWidth = Math.max(costColumnWidth, posting.cost.type === 'unit' ? 3 : 4);
140
- costCommodityBeforeColumnWidth = Math.max(costCommodityBeforeColumnWidth, layout.commodityBefore.length);
141
- costNegativeSignColumnWidth = Math.max(costNegativeSignColumnWidth, layout.isNegative ? 1 : 0);
142
- spaceBetweenCostCommodityBeforeAndAmount = Math.max(spaceBetweenCostCommodityBeforeAndAmount, (layout.spaceBetweenCommodityAndAmount && layout.commodityBefore.length) ? 1 : 0);
143
- costAmountIntegerColumnWidth = Math.max(costAmountIntegerColumnWidth, layout.amountIntegerString.length);
144
- costAmountDecimalMarkColumnWidth = Math.max(costAmountDecimalMarkColumnWidth, layout.amountDecimalString ? 1 : 0);
145
- costAmountDecimalColumnWidth = Math.max(costAmountDecimalColumnWidth, layout.amountDecimalString.length);
146
- spaceBetweenCostAmountAndCommodityAfterColumnWidth = Math.max(spaceBetweenCostAmountAndCommodityAfterColumnWidth, (layout.spaceBetweenCommodityAndAmount && layout.commodityAfter.length) ? 1 : 0);
147
- costCommodityAfterColumnWidth = Math.max(costCommodityAfterColumnWidth, layout.commodityAfter.length);
148
- }
149
- if (posting.assertion) {
150
- const layout = this.layoutAmount(posting.assertion, parsed, options);
151
- postingLayout.assertionLayout = layout;
152
- assertionColumnWidth = Math.max(assertionColumnWidth, 3); // for the assertion operator with spaces
153
- assertionCommodityBeforeColumnWidth = Math.max(assertionCommodityBeforeColumnWidth, layout.commodityBefore.length);
154
- assertionNegativeSignColumnWidth = Math.max(assertionNegativeSignColumnWidth, layout.isNegative ? 1 : 0);
155
- spaceBetweenAssertionCommodityBeforeAndAmount = Math.max(spaceBetweenAssertionCommodityBeforeAndAmount, layout.isNegative ? 1 : 0);
156
- assertionAmountIntegerColumnWidth = Math.max(assertionAmountIntegerColumnWidth, layout.amountIntegerString.length);
157
- assertionAmountDecimalMarkColumnWidth = Math.max(assertionAmountDecimalMarkColumnWidth, layout.amountDecimalString ? 1 : 0);
158
- assertionAmountDecimalColumnWidth = Math.max(assertionAmountDecimalColumnWidth, layout.amountDecimalString.length);
159
- spaceBetweenAssertionAmountAndCommodityAfterColumnWidth = Math.max(spaceBetweenAssertionAmountAndCommodityAfterColumnWidth, (layout.spaceBetweenCommodityAndAmount && layout.commodityAfter.length) ? 1 : 0);
160
- assertionCommodityAfterColumnWidth = Math.max(assertionCommodityAfterColumnWidth, layout.commodityAfter.length);
161
- }
162
- postingLayouts.push(postingLayout);
163
- }
92
+ // First pass: Calculate all column widths
93
+ const widths = this.calculateTransactionWidths(transaction, parsed, options);
164
94
  // Second pass: format each posting line
165
95
  const formattedPostingLines = [];
166
- for (let idx = 0; idx < transaction.postings.length; idx++) {
167
- const posting = transaction.postings[idx];
168
- const postingLayout = postingLayouts[idx];
96
+ for (let posting of transaction.postings) {
169
97
  let line = ' '.repeat(options.indentation);
170
- line += posting.account.padEnd(accountColumnWidth, ' ');
98
+ line += posting.account.padEnd(widths.account, ' ');
171
99
  line += ' '.repeat(options.minSpacing);
172
- // Skip formatting inferred amounts since they don't exist in the source
100
+ // 1. Amount
173
101
  if (posting.amount && !posting.amount.inferred) {
174
- const lengthAtPaddingLocation = line.length;
175
- const layout = postingLayout.amountLayout;
176
- // Handle sign position based on layout.negativeSignBefore
177
- if (layout.negativeSignBefore) {
178
- // Format as: -$100 (sign before commodity)
179
- line += layout.isNegative ? '-'.padStart(negativeSignColumnWidth, ' ') : ' '.repeat(negativeSignColumnWidth);
180
- line += layout.commodityBefore.padStart(commodityBeforeColumnWidth, ' ');
181
- }
182
- else {
183
- // Format as: $-100 (commodity before sign, default)
184
- line += layout.commodityBefore.padStart(commodityBeforeColumnWidth, ' ');
185
- line += layout.isNegative ? '-'.padStart(negativeSignColumnWidth, ' ') : ' '.repeat(negativeSignColumnWidth);
186
- }
187
- line += ' '.repeat(spaceBetweenCommodityBeforeAndAmount);
188
- line += layout.amountIntegerString.padStart(amountIntegerColumnWidth, ' ');
189
- const lengthAtDecimalLocation = line.length;
190
- const targetDecimalColumn = options.decimalAlignColumn;
191
- const linePrePadding = line.substring(0, lengthAtPaddingLocation);
192
- const linePostPadding = line.substring(lengthAtPaddingLocation);
193
- const currentDecimalColumn = lengthAtDecimalLocation;
194
- const neededPadding = targetDecimalColumn - currentDecimalColumn;
195
- line = linePrePadding + ' '.repeat(Math.max(0, neededPadding)) + linePostPadding;
196
- if (layout.demicalMark) {
197
- line += layout.demicalMark.padEnd(amountDecimalMarkColumnWidth, ' ');
198
- line += layout.amountDecimalString.padEnd(amountDecimalColumnWidth, ' ');
199
- }
200
- else {
201
- line += ' '.repeat(amountDecimalMarkColumnWidth + amountDecimalColumnWidth);
202
- }
203
- line += ' '.repeat(spaceBetweenAmountAndCommodityAfterColumnWidth);
204
- line += layout.commodityAfter.padEnd(commodityAfterColumnWidth, ' ');
102
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.amount, parsed, options);
103
+ const amountBlock = (0, amountFormatter_1.renderAmountLayout)(layout, widths.amount);
104
+ // Calculate decimal alignment padding
105
+ const preDecimalWidth = widths.amount.commodityBefore +
106
+ widths.amount.spaceBetweenCommodityBeforeAndAmount +
107
+ widths.amount.negativeSign +
108
+ widths.amount.integer;
109
+ const currentLen = line.length;
110
+ const targetLen = options.decimalAlignColumn;
111
+ const padding = Math.max(0, targetLen - currentLen - preDecimalWidth);
112
+ line += ' '.repeat(padding) + amountBlock;
205
113
  }
206
114
  else {
207
- const lengthAtPaddingLocation = line.length;
208
- const neededPadding = options.decimalAlignColumn - lengthAtPaddingLocation;
209
- line += ' '.repeat(Math.max(0, neededPadding));
210
- line += ' '.repeat(amountDecimalMarkColumnWidth +
211
- amountDecimalColumnWidth +
212
- spaceBetweenAmountAndCommodityAfterColumnWidth +
213
- commodityAfterColumnWidth); // space for missing amount
115
+ // Space for missing amount
116
+ const preDecimalWidth = widths.amount.commodityBefore +
117
+ widths.amount.spaceBetweenCommodityBeforeAndAmount +
118
+ widths.amount.negativeSign +
119
+ widths.amount.integer;
120
+ const postDecimalWidth = widths.amount.decimalMark +
121
+ widths.amount.decimal +
122
+ widths.amount.spaceBetweenAmountAndCommodityAfter +
123
+ widths.amount.commodityAfter;
124
+ const currentLen = line.length;
125
+ const targetLen = options.decimalAlignColumn;
126
+ const padding = Math.max(0, targetLen - currentLen - preDecimalWidth);
127
+ line += ' '.repeat(padding + preDecimalWidth + postDecimalWidth);
214
128
  }
215
- // Skip formatting inferred costs since they don't exist in the source
129
+ // 2. Cost
216
130
  if (posting.cost && !posting.cost.inferred) {
217
- const layout = postingLayout.costLayout;
218
- line += posting.cost.type === 'unit' ? ' @'.padEnd(costColumnWidth, ' ') : ' @@'.padEnd(costColumnWidth, ' ');
219
- // Handle sign position for cost
220
- if (layout.negativeSignBefore) {
221
- line += layout.isNegative ? '-'.padStart(costNegativeSignColumnWidth, ' ') : ' '.repeat(costNegativeSignColumnWidth);
222
- line += layout.commodityBefore.padStart(costCommodityBeforeColumnWidth, ' ');
223
- }
224
- else {
225
- line += layout.commodityBefore.padStart(costCommodityBeforeColumnWidth, ' ');
226
- line += layout.isNegative ? '-'.padStart(costNegativeSignColumnWidth, ' ') : ' '.repeat(costNegativeSignColumnWidth);
227
- }
228
- line += ' '.repeat(spaceBetweenCostCommodityBeforeAndAmount);
229
- line += layout.amountIntegerString.padStart(costAmountIntegerColumnWidth, ' ');
230
- if (layout.demicalMark) {
231
- line += layout.demicalMark.padEnd(costAmountDecimalMarkColumnWidth, ' ');
232
- line += layout.amountDecimalString.padEnd(costAmountDecimalColumnWidth, ' ');
233
- }
234
- else {
235
- line += ' '.repeat(costAmountDecimalColumnWidth + costAmountDecimalMarkColumnWidth);
236
- }
237
- line += ' '.repeat(spaceBetweenCostAmountAndCommodityAfterColumnWidth);
238
- line += layout.commodityAfter.padEnd(costCommodityAfterColumnWidth, ' ');
131
+ line += (posting.cost.type === 'unit' ? ' @ ' : ' @@ ').padEnd(widths.cost.marker, ' ');
132
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.cost.amount, parsed, options);
133
+ line += (0, amountFormatter_1.renderAmountLayout)(layout, widths.cost);
239
134
  }
240
135
  else {
241
- line += ' '.repeat(costColumnWidth +
242
- costCommodityBeforeColumnWidth +
243
- spaceBetweenCostCommodityBeforeAndAmount +
244
- costNegativeSignColumnWidth +
245
- costAmountIntegerColumnWidth +
246
- costAmountDecimalMarkColumnWidth +
247
- costAmountDecimalColumnWidth +
248
- spaceBetweenCostAmountAndCommodityAfterColumnWidth +
249
- costCommodityAfterColumnWidth); // space for missing cost
136
+ const totalWidth = widths.cost.marker +
137
+ widths.cost.commodityBefore +
138
+ widths.cost.spaceBetweenCommodityBeforeAndAmount +
139
+ widths.cost.negativeSign +
140
+ widths.cost.integer +
141
+ widths.cost.decimalMark +
142
+ widths.cost.decimal +
143
+ widths.cost.spaceBetweenAmountAndCommodityAfter +
144
+ widths.cost.commodityAfter;
145
+ line += ' '.repeat(totalWidth);
250
146
  }
147
+ // 3. Assertion
251
148
  if (posting.assertion) {
252
- const layout = postingLayout.assertionLayout;
253
- line += ' ='.padEnd(assertionColumnWidth, ' ');
254
- // Handle sign position for assertion
255
- if (layout.negativeSignBefore) {
256
- line += layout.isNegative ? '-'.padStart(assertionNegativeSignColumnWidth, ' ') : ' '.repeat(assertionNegativeSignColumnWidth);
257
- line += layout.commodityBefore.padStart(assertionCommodityBeforeColumnWidth, ' ');
258
- }
259
- else {
260
- line += layout.commodityBefore.padStart(assertionCommodityBeforeColumnWidth, ' ');
261
- line += layout.isNegative ? '-'.padStart(assertionNegativeSignColumnWidth, ' ') : ' '.repeat(assertionNegativeSignColumnWidth);
262
- }
263
- line += ' '.repeat(spaceBetweenAssertionCommodityBeforeAndAmount);
264
- line += layout.amountIntegerString.padStart(assertionAmountIntegerColumnWidth, ' ');
265
- if (layout.demicalMark) {
266
- line += layout.demicalMark.padEnd(assertionAmountDecimalMarkColumnWidth, ' ');
267
- line += layout.amountDecimalString.padEnd(assertionAmountDecimalColumnWidth, ' ');
268
- }
269
- else {
270
- line += ' '.repeat(assertionAmountDecimalColumnWidth + assertionAmountDecimalMarkColumnWidth);
271
- }
272
- line += ' '.repeat(spaceBetweenAssertionAmountAndCommodityAfterColumnWidth);
273
- line += layout.commodityAfter.padEnd(assertionCommodityAfterColumnWidth, ' ');
149
+ line += ' = '.padEnd(widths.assertion.marker, ' ');
150
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.assertion, parsed, options);
151
+ line += (0, amountFormatter_1.renderAmountLayout)(layout, widths.assertion);
274
152
  }
275
153
  else {
276
- line += ' '.repeat(2 + // space for spaces around assertion indicator
277
- assertionColumnWidth +
278
- assertionCommodityBeforeColumnWidth +
279
- spaceBetweenAssertionCommodityBeforeAndAmount +
280
- assertionNegativeSignColumnWidth +
281
- assertionAmountIntegerColumnWidth +
282
- assertionAmountDecimalColumnWidth +
283
- assertionAmountDecimalMarkColumnWidth +
284
- spaceBetweenAssertionAmountAndCommodityAfterColumnWidth +
285
- assertionCommodityAfterColumnWidth); // space for missing assertion
154
+ const totalWidth = widths.assertion.marker +
155
+ widths.assertion.commodityBefore +
156
+ widths.assertion.spaceBetweenCommodityBeforeAndAmount +
157
+ widths.assertion.negativeSign +
158
+ widths.assertion.integer +
159
+ widths.assertion.decimalMark +
160
+ widths.assertion.decimal +
161
+ widths.assertion.spaceBetweenAmountAndCommodityAfter +
162
+ widths.assertion.commodityAfter;
163
+ line += ' '.repeat(totalWidth);
286
164
  }
287
165
  if (posting.comment) {
288
166
  line = line.trimEnd();
@@ -304,78 +182,54 @@ class FormattingProvider {
304
182
  }
305
183
  return formattedLines;
306
184
  }
307
- layoutAmount(amount, parsed, options) {
308
- const commodity = this.findCommodity(amount.commodity, parsed);
309
- let format = {};
310
- let declaredPrecision = undefined;
311
- if (commodity && commodity.format) {
312
- format = commodity.format;
313
- declaredPrecision = commodity.format.precision ?? undefined;
314
- }
315
- else if (amount.format) {
316
- format = amount.format;
317
- }
318
- else {
319
- format = {};
320
- }
321
- // Determine the actual precision to use based on the rules:
322
- // 1. Never reduce precision if posting has higher precision than declared
323
- // 2. Add zeros to match declared precision when actual < declared
324
- // 3. Don't change formatting when commodity is not declared
325
- const actualPrecision = amount.format?.precision ?? undefined;
326
- let targetPrecision = undefined;
327
- if (declaredPrecision !== undefined) {
328
- // Commodity is declared - use max of actual and declared precision
329
- if (actualPrecision !== undefined) {
330
- targetPrecision = Math.max(actualPrecision, declaredPrecision);
185
+ calculateTransactionWidths(transaction, parsed, options) {
186
+ const widths = {
187
+ indent: options.indentation,
188
+ account: 0,
189
+ amount: this.emptyAmountWidths(),
190
+ cost: { ...this.emptyAmountWidths(), marker: 0 },
191
+ assertion: { ...this.emptyAmountWidths(), marker: 0 }
192
+ };
193
+ for (const posting of transaction.postings) {
194
+ widths.account = Math.max(widths.account, posting.account.length);
195
+ if (posting.amount && !posting.amount.inferred) {
196
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.amount, parsed, options);
197
+ this.updateAmountWidths(widths.amount, layout);
331
198
  }
332
- else {
333
- targetPrecision = declaredPrecision;
199
+ if (posting.cost && !posting.cost.inferred) {
200
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.cost.amount, parsed, options);
201
+ this.updateAmountWidths(widths.cost, layout);
202
+ widths.cost.marker = Math.max(widths.cost.marker, posting.cost.type === 'unit' ? 3 : 4);
203
+ }
204
+ if (posting.assertion) {
205
+ const layout = (0, amountFormatter_1.getAmountLayout)(posting.assertion, parsed, options);
206
+ this.updateAmountWidths(widths.assertion, layout);
207
+ widths.assertion.marker = Math.max(widths.assertion.marker, 3);
334
208
  }
335
209
  }
336
- else {
337
- // Commodity is not declared - preserve original precision
338
- targetPrecision = actualPrecision;
339
- }
340
- // Determine if negative sign should be before commodity symbol
341
- // This only applies when commodity is on left
342
- const symbolOnLeft = format.symbolOnLeft || false;
343
- const negativeSignBefore = symbolOnLeft && options.signPosition === 'before-symbol';
210
+ return widths;
211
+ }
212
+ emptyAmountWidths() {
344
213
  return {
345
- commodityBefore: format.symbolOnLeft ? format.symbol || '' : '',
346
- isNegative: amount.quantity < 0,
347
- negativeSignBefore,
348
- amountIntegerString: this.formatIntegerAmount(amount, format),
349
- amountDecimalString: this.formatDecimalAmount(amount, format, targetPrecision),
350
- demicalMark: targetPrecision && targetPrecision > 0 ? (format.decimalMark || '.') : '',
351
- spaceBetweenCommodityAndAmount: format.spaceBetween || false,
352
- commodityAfter: !format.symbolOnLeft ? format.symbol || '' : ''
214
+ commodityBefore: 0,
215
+ spaceBetweenCommodityBeforeAndAmount: 0,
216
+ negativeSign: 0,
217
+ integer: 0,
218
+ decimalMark: 0,
219
+ decimal: 0,
220
+ spaceBetweenAmountAndCommodityAfter: 0,
221
+ commodityAfter: 0
353
222
  };
354
223
  }
355
- formatIntegerAmount(amount, format) {
356
- const integerPart = Math.floor(Math.abs(amount.quantity)).toString();
357
- // Format integer part with grouping if specified
358
- let integerString = '';
359
- if (format.thousandsSeparator) {
360
- const regex = /\B(?=(\d{3})+(?!\d))/g;
361
- integerString = integerPart.replace(regex, format.thousandsSeparator);
362
- }
363
- else {
364
- integerString = integerPart;
365
- }
366
- return integerString;
367
- }
368
- formatDecimalAmount(amount, format, targetPrecision) {
369
- const decimalPart = Math.abs(amount.quantity) % 1;
370
- // Format decimal part based on target precision
371
- let decimalString = '';
372
- if (targetPrecision !== undefined && targetPrecision > 0) {
373
- decimalString = decimalPart.toFixed(targetPrecision).substring(2); // Skip "0."
374
- }
375
- else if (decimalPart > 0) {
376
- decimalString = decimalPart.toString().substring(2); // Skip "0."
377
- }
378
- return decimalString;
224
+ updateAmountWidths(widths, layout) {
225
+ widths.commodityBefore = Math.max(widths.commodityBefore, layout.commodityBefore.length);
226
+ widths.spaceBetweenCommodityBeforeAndAmount = Math.max(widths.spaceBetweenCommodityBeforeAndAmount, (layout.spaceBetweenCommodityAndAmount && layout.commodityBefore.length) ? 1 : 0);
227
+ widths.negativeSign = Math.max(widths.negativeSign, layout.isNegative ? 1 : 0);
228
+ widths.integer = Math.max(widths.integer, layout.amountIntegerString.length);
229
+ widths.decimalMark = Math.max(widths.decimalMark, layout.amountDecimalString ? 1 : 0);
230
+ widths.decimal = Math.max(widths.decimal, layout.amountDecimalString.length);
231
+ widths.spaceBetweenAmountAndCommodityAfter = Math.max(widths.spaceBetweenAmountAndCommodityAfter, (layout.spaceBetweenCommodityAndAmount && layout.commodityAfter.length) ? 1 : 0);
232
+ widths.commodityAfter = Math.max(widths.commodityAfter, layout.commodityAfter.length);
379
233
  }
380
234
  /**
381
235
  * Format a range of lines
@@ -442,12 +296,6 @@ class FormattingProvider {
442
296
  }
443
297
  return result;
444
298
  }
445
- /**
446
- * Find the commodity format from parsed document
447
- */
448
- findCommodity(commodityName, parsed) {
449
- return parsed.commodities.get(commodityName);
450
- }
451
299
  }
452
300
  exports.FormattingProvider = FormattingProvider;
453
301
  exports.formattingProvider = new FormattingProvider();
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"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"}
@@ -27,17 +27,6 @@ export declare class InlayHintsProvider {
27
27
  * Get hints for inferred amounts (postings with amounts marked as inferred)
28
28
  */
29
29
  private getInferredAmountHints;
30
- /**
31
- * Get inferred amounts for a transaction from the AST.
32
- * Returns a map of posting index to inferred amounts (commodity -> quantity)
33
- * This is no longer calculated - it uses the amounts already inferred during parsing.
34
- */
35
- private getInferredAmountsFromAST;
36
- /**
37
- * Calculate running balances for all transactions
38
- * Returns a map of transaction->posting index->account->commodity->balance
39
- */
40
- private calculateRunningBalances;
41
30
  /**
42
31
  * Get hints for running balances after each posting (with pre-calculated state)
43
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"inlayHints.d.ts","sourceRoot":"","sources":["../../src/features/inlayHints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAA+C,KAAK,EAAW,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAC;AAKhE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAQD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,eAAe,GACzB,SAAS,EAAE;IA4Cd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsD9B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAejC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAwEhC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAgFvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAsD/B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
1
+ {"version":3,"file":"inlayHints.d.ts","sourceRoot":"","sources":["../../src/features/inlayHints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAA+C,KAAK,EAAW,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAC;AAMhE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAQD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,eAAe,GACzB,SAAS,EAAE;IA6Cd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsD9B;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAgFvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAsD/B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}