hledger-lsp 0.1.0

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.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +632 -0
  3. package/out/extension.d.ts +1 -0
  4. package/out/extension.d.ts.map +1 -0
  5. package/out/extension.js +2 -0
  6. package/out/extension.js.map +1 -0
  7. package/out/features/codeActions.d.ts +73 -0
  8. package/out/features/codeActions.d.ts.map +1 -0
  9. package/out/features/codeActions.js +417 -0
  10. package/out/features/codeActions.js.map +1 -0
  11. package/out/features/completion.d.ts +94 -0
  12. package/out/features/completion.d.ts.map +1 -0
  13. package/out/features/completion.js +323 -0
  14. package/out/features/completion.js.map +1 -0
  15. package/out/features/definition.d.ts +12 -0
  16. package/out/features/definition.d.ts.map +1 -0
  17. package/out/features/definition.js +61 -0
  18. package/out/features/definition.js.map +1 -0
  19. package/out/features/documentLinks.d.ts +17 -0
  20. package/out/features/documentLinks.d.ts.map +1 -0
  21. package/out/features/documentLinks.js +68 -0
  22. package/out/features/documentLinks.js.map +1 -0
  23. package/out/features/findReferences.d.ts +33 -0
  24. package/out/features/findReferences.d.ts.map +1 -0
  25. package/out/features/findReferences.js +79 -0
  26. package/out/features/findReferences.js.map +1 -0
  27. package/out/features/foldingRanges.d.ts +27 -0
  28. package/out/features/foldingRanges.d.ts.map +1 -0
  29. package/out/features/foldingRanges.js +111 -0
  30. package/out/features/foldingRanges.js.map +1 -0
  31. package/out/features/formatter.d.ts +70 -0
  32. package/out/features/formatter.d.ts.map +1 -0
  33. package/out/features/formatter.js +373 -0
  34. package/out/features/formatter.js.map +1 -0
  35. package/out/features/hover.d.ts +66 -0
  36. package/out/features/hover.d.ts.map +1 -0
  37. package/out/features/hover.js +387 -0
  38. package/out/features/hover.js.map +1 -0
  39. package/out/features/inlayHints.d.ts +43 -0
  40. package/out/features/inlayHints.d.ts.map +1 -0
  41. package/out/features/inlayHints.js +221 -0
  42. package/out/features/inlayHints.js.map +1 -0
  43. package/out/features/selectionRange.d.ts +47 -0
  44. package/out/features/selectionRange.d.ts.map +1 -0
  45. package/out/features/selectionRange.js +273 -0
  46. package/out/features/selectionRange.js.map +1 -0
  47. package/out/features/semanticTokens.d.ts +83 -0
  48. package/out/features/semanticTokens.d.ts.map +1 -0
  49. package/out/features/semanticTokens.js +370 -0
  50. package/out/features/semanticTokens.js.map +1 -0
  51. package/out/features/symbols.d.ts +47 -0
  52. package/out/features/symbols.d.ts.map +1 -0
  53. package/out/features/symbols.js +249 -0
  54. package/out/features/symbols.js.map +1 -0
  55. package/out/features/transactionAnalyzer.d.ts +63 -0
  56. package/out/features/transactionAnalyzer.d.ts.map +1 -0
  57. package/out/features/transactionAnalyzer.js +127 -0
  58. package/out/features/transactionAnalyzer.js.map +1 -0
  59. package/out/features/validator.d.ts +142 -0
  60. package/out/features/validator.d.ts.map +1 -0
  61. package/out/features/validator.js +633 -0
  62. package/out/features/validator.js.map +1 -0
  63. package/out/parser/ast.d.ts +37 -0
  64. package/out/parser/ast.d.ts.map +1 -0
  65. package/out/parser/ast.js +606 -0
  66. package/out/parser/ast.js.map +1 -0
  67. package/out/parser/includes.d.ts +25 -0
  68. package/out/parser/includes.d.ts.map +1 -0
  69. package/out/parser/includes.js +106 -0
  70. package/out/parser/includes.js.map +1 -0
  71. package/out/parser/index.d.ts +54 -0
  72. package/out/parser/index.d.ts.map +1 -0
  73. package/out/parser/index.js +146 -0
  74. package/out/parser/index.js.map +1 -0
  75. package/out/server/deps.d.ts +19 -0
  76. package/out/server/deps.d.ts.map +1 -0
  77. package/out/server/deps.js +77 -0
  78. package/out/server/deps.js.map +1 -0
  79. package/out/server/settings.d.ts +60 -0
  80. package/out/server/settings.d.ts.map +1 -0
  81. package/out/server/settings.js +110 -0
  82. package/out/server/settings.js.map +1 -0
  83. package/out/server.d.ts +3 -0
  84. package/out/server.d.ts.map +1 -0
  85. package/out/server.js +420 -0
  86. package/out/server.js.map +1 -0
  87. package/out/types.d.ts +84 -0
  88. package/out/types.d.ts.map +1 -0
  89. package/out/types.js +6 -0
  90. package/out/types.js.map +1 -0
  91. package/out/utils/index.d.ts +38 -0
  92. package/out/utils/index.d.ts.map +1 -0
  93. package/out/utils/index.js +89 -0
  94. package/out/utils/index.js.map +1 -0
  95. package/out/utils/uri.d.ts +32 -0
  96. package/out/utils/uri.d.ts.map +1 -0
  97. package/out/utils/uri.js +215 -0
  98. package/out/utils/uri.js.map +1 -0
  99. package/package.json +58 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Hover provider for hledger language server
3
+ *
4
+ * Provides comprehensive hover information for:
5
+ * - Accounts (type, declaration location, usage count)
6
+ * - Payees (declaration location, usage count)
7
+ * - Commodities (format information, declaration location)
8
+ * - Tags (declaration location, usage statistics)
9
+ * - Transaction headers (totals per commodity)
10
+ * - Dates (formatted date information)
11
+ */
12
+ import { Hover } from 'vscode-languageserver';
13
+ import { TextDocument } from 'vscode-languageserver-textdocument';
14
+ import { ParsedDocument } from '../types';
15
+ export declare class HoverProvider {
16
+ /**
17
+ * Provide hover information at the given document position
18
+ */
19
+ provideHover(document: TextDocument, line: number, character: number, parsed?: ParsedDocument): Hover | null;
20
+ /**
21
+ * Get the token at a specific character position
22
+ */
23
+ private getTokenAtPosition;
24
+ /**
25
+ * Check if token is a date
26
+ */
27
+ private isDate;
28
+ /**
29
+ * Provide hover for dates
30
+ */
31
+ private provideDateHover;
32
+ /**
33
+ * Provide hover for accounts
34
+ */
35
+ private provideAccountHover;
36
+ /**
37
+ * Provide hover for commodities
38
+ */
39
+ private provideCommodityHover;
40
+ /**
41
+ * Provide hover for payees
42
+ */
43
+ private providePayeeHover;
44
+ /**
45
+ * Provide hover for tags
46
+ */
47
+ private provideTagHover;
48
+ /**
49
+ * Provide hover for transaction headers
50
+ */
51
+ private provideTransactionHover;
52
+ /**
53
+ * Calculate transaction totals per commodity
54
+ */
55
+ private calculateTransactionTotals;
56
+ /**
57
+ * Count how many times an account is used
58
+ */
59
+ private countAccountUsage;
60
+ /**
61
+ * Provide basic hover without parsed data
62
+ */
63
+ private provideBasicHover;
64
+ }
65
+ export declare const hoverProvider: HoverProvider;
66
+ //# sourceMappingURL=hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/features/hover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,KAAK,EAAc,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAe,MAAM,UAAU,CAAC;AAGvD,qBAAa,aAAa;IACxB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,IAAI;IAwE5G;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsD7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0C/B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAalC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAwB1B;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,387 @@
1
+ "use strict";
2
+ /**
3
+ * Hover provider for hledger language server
4
+ *
5
+ * Provides comprehensive hover information for:
6
+ * - Accounts (type, declaration location, usage count)
7
+ * - Payees (declaration location, usage count)
8
+ * - Commodities (format information, declaration location)
9
+ * - Tags (declaration location, usage statistics)
10
+ * - Transaction headers (totals per commodity)
11
+ * - Dates (formatted date information)
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.hoverProvider = exports.HoverProvider = void 0;
15
+ const vscode_languageserver_1 = require("vscode-languageserver");
16
+ const index_1 = require("../utils/index");
17
+ class HoverProvider {
18
+ /**
19
+ * Provide hover information at the given document position
20
+ */
21
+ provideHover(document, line, character, parsed) {
22
+ if (!parsed) {
23
+ return this.provideBasicHover(document, line, character);
24
+ }
25
+ const fullLine = document.getText({
26
+ start: { line, character: 0 },
27
+ end: { line, character: Number.MAX_SAFE_INTEGER }
28
+ });
29
+ // Get token at cursor position
30
+ const token = this.getTokenAtPosition(fullLine, character);
31
+ if (!token)
32
+ return null;
33
+ // Check for date first (highest priority)
34
+ if (this.isDate(token)) {
35
+ return this.provideDateHover(token);
36
+ }
37
+ // Check for tag (in comments) before other checks
38
+ if (fullLine.includes(';') || fullLine.includes('#')) {
39
+ // Check if cursor is after the comment marker
40
+ const semicolonPos = fullLine.indexOf(';');
41
+ const hashPos = fullLine.indexOf('#');
42
+ const commentStart = Math.min(semicolonPos >= 0 ? semicolonPos : Infinity, hashPos >= 0 ? hashPos : Infinity);
43
+ if (character > commentStart) {
44
+ // If token contains ':', extract just the tag name part
45
+ let tagName = token;
46
+ if (token.includes(':')) {
47
+ tagName = token.substring(0, token.indexOf(':'));
48
+ }
49
+ // Check if this is a tag (tag name followed by colon in the line)
50
+ if (tagName && fullLine.includes(`${tagName}:`)) {
51
+ return this.provideTagHover(tagName, parsed);
52
+ }
53
+ // If in comment but not a tag, return null
54
+ return null;
55
+ }
56
+ }
57
+ // Check for account (contains ':')
58
+ if (token.includes(':')) {
59
+ return this.provideAccountHover(token, parsed);
60
+ }
61
+ // Check for commodity
62
+ const commodity = parsed.commodities.find(c => c.name === token);
63
+ if (commodity) {
64
+ return this.provideCommodityHover(commodity);
65
+ }
66
+ // Check for payee - only if token is part of payee name
67
+ const payee = parsed.payees.find(p => p.name.toLowerCase().includes(token.toLowerCase()));
68
+ if (payee?.declared) {
69
+ return this.providePayeeHover(payee, parsed);
70
+ }
71
+ // Check if we're on a transaction header (lowest priority)
72
+ const trimmedLine = fullLine.trim();
73
+ if ((0, index_1.isTransactionHeader)(trimmedLine)) {
74
+ return this.provideTransactionHover(fullLine, line, parsed);
75
+ }
76
+ return null;
77
+ }
78
+ /**
79
+ * Get the token at a specific character position
80
+ */
81
+ getTokenAtPosition(line, character) {
82
+ const col = Math.min(character, line.length);
83
+ // Find token boundaries
84
+ let start = col - 1;
85
+ while (start >= 0) {
86
+ const ch = line[start];
87
+ if (/\s|;|#|\|/.test(ch))
88
+ break;
89
+ start--;
90
+ }
91
+ start++;
92
+ let end = col;
93
+ while (end < line.length) {
94
+ const ch = line[end];
95
+ if (/\s|;|#|\|/.test(ch))
96
+ break;
97
+ end++;
98
+ }
99
+ const token = line.substring(start, end).trim();
100
+ return token || null;
101
+ }
102
+ /**
103
+ * Check if token is a date
104
+ */
105
+ isDate(token) {
106
+ return /^\d{4}[-/]\d{2}[-/]\d{2}$/.test(token);
107
+ }
108
+ /**
109
+ * Provide hover for dates
110
+ */
111
+ provideDateHover(dateStr) {
112
+ const date = new Date(dateStr.replace(/\//g, '-'));
113
+ const formatted = date.toLocaleDateString('en-US', {
114
+ weekday: 'long',
115
+ year: 'numeric',
116
+ month: 'long',
117
+ day: 'numeric'
118
+ });
119
+ return {
120
+ contents: {
121
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
122
+ value: `**Date**\n\n${formatted}`
123
+ }
124
+ };
125
+ }
126
+ /**
127
+ * Provide hover for accounts
128
+ */
129
+ provideAccountHover(accountName, parsed) {
130
+ const account = parsed.accounts.find(a => a.name === accountName);
131
+ if (!account) {
132
+ return {
133
+ contents: {
134
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
135
+ value: `**Account**\n\n\`${accountName}\``
136
+ }
137
+ };
138
+ }
139
+ const parts = [`**Account**\n\n\`${accountName}\``];
140
+ // Add account type if available
141
+ if (account.type) {
142
+ const typeCapitalized = account.type.charAt(0).toUpperCase() + account.type.slice(1);
143
+ parts.push(`**Type:** ${typeCapitalized}`);
144
+ }
145
+ // Add declaration status and location
146
+ if (account.declared) {
147
+ parts.push(`**Status:** Declared`);
148
+ if (account.sourceUri) {
149
+ const fileName = account.sourceUri.split('/').pop() || account.sourceUri;
150
+ const lineNum = (account.line ?? 0) + 1;
151
+ parts.push(`**Location:** ${fileName}:${lineNum}`);
152
+ }
153
+ }
154
+ else {
155
+ parts.push(`**Status:** Undeclared (inferred from usage)`);
156
+ }
157
+ // Count usage
158
+ const usageCount = this.countAccountUsage(accountName, parsed);
159
+ if (usageCount > 0) {
160
+ parts.push(`**Usage:** ${usageCount} posting${usageCount !== 1 ? 's' : ''}`);
161
+ }
162
+ return {
163
+ contents: {
164
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
165
+ value: parts.join('\n\n')
166
+ }
167
+ };
168
+ }
169
+ /**
170
+ * Provide hover for commodities
171
+ */
172
+ provideCommodityHover(commodity) {
173
+ const parts = [`**Commodity**\n\n\`${commodity.name}\``];
174
+ // Add declaration status
175
+ if (commodity.declared) {
176
+ parts.push(`**Status:** Declared`);
177
+ if (commodity.sourceUri) {
178
+ const fileName = commodity.sourceUri.split('/').pop() || commodity.sourceUri;
179
+ const lineNum = (commodity.line ?? 0) + 1;
180
+ parts.push(`**Location:** ${fileName}:${lineNum}`);
181
+ }
182
+ }
183
+ else {
184
+ parts.push(`**Status:** Undeclared (inferred from usage)`);
185
+ }
186
+ // Add format information if available
187
+ if (commodity.format) {
188
+ const fmt = commodity.format;
189
+ const formatParts = ['**Format:**'];
190
+ if (fmt.symbolOnLeft !== undefined) {
191
+ formatParts.push(`- Symbol position: ${fmt.symbolOnLeft ? 'Left' : 'Right'}`);
192
+ }
193
+ if (fmt.spaceBetween !== undefined) {
194
+ formatParts.push(`- Space between: ${fmt.spaceBetween ? 'Yes' : 'No'}`);
195
+ }
196
+ if (fmt.decimalMark) {
197
+ formatParts.push(`- Decimal mark: \`${fmt.decimalMark}\``);
198
+ }
199
+ if (fmt.thousandsSeparator !== undefined) {
200
+ const sep = fmt.thousandsSeparator === null ? 'None' : `\`${fmt.thousandsSeparator}\``;
201
+ formatParts.push(`- Thousands separator: ${sep}`);
202
+ }
203
+ if (fmt.precision !== null && fmt.precision !== undefined) {
204
+ formatParts.push(`- Precision: ${fmt.precision} decimal place${fmt.precision !== 1 ? 's' : ''}`);
205
+ }
206
+ if (formatParts.length > 1) {
207
+ parts.push(formatParts.join('\n'));
208
+ }
209
+ }
210
+ return {
211
+ contents: {
212
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
213
+ value: parts.join('\n\n')
214
+ }
215
+ };
216
+ }
217
+ /**
218
+ * Provide hover for payees
219
+ */
220
+ providePayeeHover(payee, parsed) {
221
+ const parts = [`**Payee**\n\n\`${payee.name}\``];
222
+ // Add declaration status
223
+ if (payee.declared) {
224
+ parts.push(`**Status:** Declared`);
225
+ if (payee.sourceUri) {
226
+ const fileName = payee.sourceUri.split('/').pop() || payee.sourceUri;
227
+ const lineNum = (payee.line ?? 0) + 1;
228
+ parts.push(`**Location:** ${fileName}:${lineNum}`);
229
+ }
230
+ }
231
+ else {
232
+ parts.push(`**Status:** Undeclared (inferred from usage)`);
233
+ }
234
+ // Count transactions with this payee
235
+ const transactionCount = parsed.transactions.filter(t => t.payee === payee.name).length;
236
+ if (transactionCount > 0) {
237
+ parts.push(`**Transactions:** ${transactionCount}`);
238
+ }
239
+ return {
240
+ contents: {
241
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
242
+ value: parts.join('\n\n')
243
+ }
244
+ };
245
+ }
246
+ /**
247
+ * Provide hover for tags
248
+ */
249
+ provideTagHover(tagName, parsed) {
250
+ const tag = parsed.tags.find(t => t.name === tagName);
251
+ if (!tag) {
252
+ return {
253
+ contents: {
254
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
255
+ value: `**Tag**\n\n\`${tagName}:\``
256
+ }
257
+ };
258
+ }
259
+ const parts = [`**Tag**\n\n\`${tagName}:\``];
260
+ // Add declaration status
261
+ if (tag.declared) {
262
+ parts.push(`**Status:** Declared`);
263
+ if (tag.sourceUri) {
264
+ const fileName = tag.sourceUri.split('/').pop() || tag.sourceUri;
265
+ const lineNum = (tag.line ?? 0) + 1;
266
+ parts.push(`**Location:** ${fileName}:${lineNum}`);
267
+ }
268
+ }
269
+ else {
270
+ parts.push(`**Status:** Undeclared (inferred from usage)`);
271
+ }
272
+ // Count tag usage across transactions and postings
273
+ let usageCount = 0;
274
+ for (const transaction of parsed.transactions) {
275
+ if (transaction.tags && tagName in transaction.tags) {
276
+ usageCount++;
277
+ }
278
+ for (const posting of transaction.postings) {
279
+ if (posting.tags && tagName in posting.tags) {
280
+ usageCount++;
281
+ }
282
+ }
283
+ }
284
+ if (usageCount > 0) {
285
+ parts.push(`**Usage:** ${usageCount} time${usageCount !== 1 ? 's' : ''}`);
286
+ }
287
+ return {
288
+ contents: {
289
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
290
+ value: parts.join('\n\n')
291
+ }
292
+ };
293
+ }
294
+ /**
295
+ * Provide hover for transaction headers
296
+ */
297
+ provideTransactionHover(line, lineNumber, parsed) {
298
+ // Find the transaction at this line
299
+ const transaction = parsed.transactions.find(t => t.line === lineNumber);
300
+ if (!transaction)
301
+ return null;
302
+ const parts = [`**Transaction**\n\n\`${transaction.description}\``];
303
+ // Add status if present
304
+ if (transaction.status) {
305
+ const statusText = transaction.status === 'cleared' ? 'Cleared (*)' :
306
+ transaction.status === 'pending' ? 'Pending (!)' : 'Unmarked';
307
+ parts.push(`**Status:** ${statusText}`);
308
+ }
309
+ // Add code if present
310
+ if (transaction.code) {
311
+ parts.push(`**Code:** \`${transaction.code}\``);
312
+ }
313
+ // Calculate totals per commodity
314
+ const totals = this.calculateTransactionTotals(transaction);
315
+ if (Object.keys(totals).length > 0) {
316
+ const totalLines = ['**Totals:**'];
317
+ for (const [commodity, total] of Object.entries(totals)) {
318
+ const sign = total >= 0 ? '+' : '';
319
+ const commodityStr = commodity || '(no commodity)';
320
+ totalLines.push(`- ${sign}${total.toFixed(2)} ${commodityStr}`);
321
+ }
322
+ parts.push(totalLines.join('\n'));
323
+ }
324
+ // Add posting count
325
+ parts.push(`**Postings:** ${transaction.postings.length}`);
326
+ return {
327
+ contents: {
328
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
329
+ value: parts.join('\n\n')
330
+ }
331
+ };
332
+ }
333
+ /**
334
+ * Calculate transaction totals per commodity
335
+ */
336
+ calculateTransactionTotals(transaction) {
337
+ const totals = {};
338
+ for (const posting of transaction.postings) {
339
+ if (posting.amount) {
340
+ const commodity = posting.amount.commodity || '';
341
+ totals[commodity] = (totals[commodity] || 0) + posting.amount.quantity;
342
+ }
343
+ }
344
+ return totals;
345
+ }
346
+ /**
347
+ * Count how many times an account is used
348
+ */
349
+ countAccountUsage(accountName, parsed) {
350
+ let count = 0;
351
+ for (const transaction of parsed.transactions) {
352
+ for (const posting of transaction.postings) {
353
+ if (posting.account === accountName) {
354
+ count++;
355
+ }
356
+ }
357
+ }
358
+ return count;
359
+ }
360
+ /**
361
+ * Provide basic hover without parsed data
362
+ */
363
+ provideBasicHover(document, line, character) {
364
+ const fullLine = document.getText({
365
+ start: { line, character: 0 },
366
+ end: { line, character: Number.MAX_SAFE_INTEGER }
367
+ });
368
+ const token = this.getTokenAtPosition(fullLine, character);
369
+ if (!token)
370
+ return null;
371
+ if (this.isDate(token)) {
372
+ return this.provideDateHover(token);
373
+ }
374
+ if (token.includes(':')) {
375
+ return {
376
+ contents: {
377
+ kind: vscode_languageserver_1.MarkupKind.Markdown,
378
+ value: `**Account**\n\n\`${token}\``
379
+ }
380
+ };
381
+ }
382
+ return null;
383
+ }
384
+ }
385
+ exports.HoverProvider = HoverProvider;
386
+ exports.hoverProvider = new HoverProvider();
387
+ //# sourceMappingURL=hover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/features/hover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Inlay hints provider for hledger language server
3
+ *
4
+ * Provides inline, non-intrusive information:
5
+ * - Inferred amounts on postings without explicit amounts
6
+ * - Running balances after each posting
7
+ * - Cost conversions when costs are involved
8
+ */
9
+ import { InlayHint, Range } from 'vscode-languageserver';
10
+ import { TextDocument } from 'vscode-languageserver-textdocument';
11
+ import { ParsedDocument } from '../types';
12
+ export interface InlayHintsSettings {
13
+ /** Show inferred amounts on postings without explicit amounts */
14
+ showInferredAmounts?: boolean;
15
+ /** Show running balance after each posting */
16
+ showRunningBalances?: boolean;
17
+ /** Show cost conversions (e.g., "= $135") */
18
+ showCostConversions?: boolean;
19
+ }
20
+ export declare class InlayHintsProvider {
21
+ /**
22
+ * Format an amount with proper commodity placement
23
+ */
24
+ private formatAmount;
25
+ /**
26
+ * Provide inlay hints for a document
27
+ */
28
+ provideInlayHints(document: TextDocument, range: Range, parsed: ParsedDocument, settings?: InlayHintsSettings): InlayHint[];
29
+ /**
30
+ * Get hints for inferred amounts (postings without explicit amounts)
31
+ */
32
+ private getInferredAmountHints;
33
+ /**
34
+ * Get hints for running balances after each posting
35
+ */
36
+ private getRunningBalanceHints;
37
+ /**
38
+ * Get hints for cost conversions
39
+ */
40
+ private getCostConversionHints;
41
+ }
42
+ export declare const inlayHintsProvider: InlayHintsProvider;
43
+ //# sourceMappingURL=inlayHints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inlayHints.d.ts","sourceRoot":"","sources":["../../src/features/inlayHints.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAA2B,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAwB,MAAM,UAAU,CAAC;AAEhE,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,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,SAAS,EAAE;IAgCd;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyE9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6C9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAyC/B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}