hledger-lsp 0.1.5 → 0.1.7

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 (81) hide show
  1. package/README.md +87 -167
  2. package/out/features/codeActions.d.ts +0 -4
  3. package/out/features/codeActions.d.ts.map +1 -1
  4. package/out/features/codeActions.js +11 -25
  5. package/out/features/codeActions.js.map +1 -1
  6. package/out/features/codeLens.d.ts +29 -0
  7. package/out/features/codeLens.d.ts.map +1 -0
  8. package/out/features/codeLens.js +105 -0
  9. package/out/features/codeLens.js.map +1 -0
  10. package/out/features/completion.d.ts.map +1 -1
  11. package/out/features/completion.js +21 -9
  12. package/out/features/completion.js.map +1 -1
  13. package/out/features/definition.d.ts.map +1 -1
  14. package/out/features/definition.js.map +1 -1
  15. package/out/features/foldingRanges.d.ts.map +1 -1
  16. package/out/features/foldingRanges.js +9 -2
  17. package/out/features/foldingRanges.js.map +1 -1
  18. package/out/features/formatter.d.ts +2 -0
  19. package/out/features/formatter.d.ts.map +1 -1
  20. package/out/features/formatter.js +36 -7
  21. package/out/features/formatter.js.map +1 -1
  22. package/out/features/formattingUtils.d.ts +38 -0
  23. package/out/features/formattingUtils.d.ts.map +1 -0
  24. package/out/features/formattingUtils.js +107 -0
  25. package/out/features/formattingUtils.js.map +1 -0
  26. package/out/features/hover.d.ts +2 -5
  27. package/out/features/hover.d.ts.map +1 -1
  28. package/out/features/hover.js +60 -36
  29. package/out/features/hover.js.map +1 -1
  30. package/out/features/inlayHints.d.ts +7 -5
  31. package/out/features/inlayHints.d.ts.map +1 -1
  32. package/out/features/inlayHints.js +164 -91
  33. package/out/features/inlayHints.js.map +1 -1
  34. package/out/features/semanticTokens.d.ts.map +1 -1
  35. package/out/features/semanticTokens.js +22 -1
  36. package/out/features/semanticTokens.js.map +1 -1
  37. package/out/features/symbols.d.ts.map +1 -1
  38. package/out/features/symbols.js +9 -3
  39. package/out/features/symbols.js.map +1 -1
  40. package/out/features/validator.d.ts +0 -8
  41. package/out/features/validator.d.ts.map +1 -1
  42. package/out/features/validator.js +367 -171
  43. package/out/features/validator.js.map +1 -1
  44. package/out/parser/ast.d.ts +2 -2
  45. package/out/parser/ast.d.ts.map +1 -1
  46. package/out/parser/ast.js +10 -5
  47. package/out/parser/ast.js.map +1 -1
  48. package/out/parser/index.d.ts +8 -5
  49. package/out/parser/index.d.ts.map +1 -1
  50. package/out/parser/index.js +0 -7
  51. package/out/parser/index.js.map +1 -1
  52. package/out/server/configFile.d.ts +104 -0
  53. package/out/server/configFile.d.ts.map +1 -0
  54. package/out/server/configFile.js +231 -0
  55. package/out/server/configFile.js.map +1 -0
  56. package/out/server/settings.d.ts +9 -0
  57. package/out/server/settings.d.ts.map +1 -1
  58. package/out/server/settings.js +9 -0
  59. package/out/server/settings.js.map +1 -1
  60. package/out/server/workspace.d.ts +126 -0
  61. package/out/server/workspace.d.ts.map +1 -0
  62. package/out/server/workspace.js +605 -0
  63. package/out/server/workspace.js.map +1 -0
  64. package/out/server.js +438 -29
  65. package/out/server.js.map +1 -1
  66. package/out/types.d.ts +15 -4
  67. package/out/types.d.ts.map +1 -1
  68. package/out/types.js +11 -0
  69. package/out/types.js.map +1 -1
  70. package/out/utils/amountFormatter.d.ts +26 -0
  71. package/out/utils/amountFormatter.d.ts.map +1 -0
  72. package/out/utils/amountFormatter.js +91 -0
  73. package/out/utils/amountFormatter.js.map +1 -0
  74. package/out/utils/balanceCalculator.d.ts +32 -0
  75. package/out/utils/balanceCalculator.d.ts.map +1 -0
  76. package/out/utils/balanceCalculator.js +93 -0
  77. package/out/utils/balanceCalculator.js.map +1 -0
  78. package/out/utils/index.d.ts.map +1 -1
  79. package/out/utils/index.js +2 -1
  80. package/out/utils/index.js.map +1 -1
  81. package/package.json +1 -1
package/README.md CHANGED
@@ -127,6 +127,15 @@ cost notation (@ or @@)
127
127
  - **Range-aware** - Only show hints for visible portions of the document for
128
128
  better performance
129
129
 
130
+ ### Code Lens
131
+
132
+ - **Balance assertions** - Show running balances on each posting line in balance
133
+ assertion format (`= $50.00`)
134
+ - **Clickable** - Click a balance assertion code lens to insert it into the posting
135
+ - **Transaction counts** - Display how many transactions each account has been
136
+ involved in on transaction headers
137
+ - **Configurable** - Enable/disable each lens type independently
138
+
130
139
  ### Editor Integration
131
140
 
132
141
  - **Folding ranges** - Collapse/expand transactions to hide postings, fold
@@ -165,63 +174,15 @@ language server can be used with any LSP-compatible editor.
165
174
 
166
175
  ### Neovim
167
176
 
168
- Add this to your lazy.nvim configuration (e.g., `~/.config/nvim/lua/plugins/hledger.lua`):
169
-
170
- ```lua
171
- return {
172
- {
173
- "neovim/nvim-lspconfig",
174
- opts = {
175
- servers = {
176
- hledger_lsp = {
177
- cmd = { "hledger-lsp", "--stdio" },
178
- filetypes = { "hledger", "journal" },
179
- },
180
- },
181
- },
182
- },
183
- }
184
- ```
185
-
186
- And add this to your `init.lua` for file type detection:
177
+ Use the dedicated plugin: [ptimoney/hledger-nvim](https://github.com/ptimoney/hledger-nvim)
187
178
 
188
- ```lua
189
- vim.filetype.add({
190
- extension = {
191
- journal = "hledger",
192
- hledger = "hledger",
193
- },
194
- })
195
- ```
179
+ The plugin provides:
180
+ - Automatic LSP configuration
181
+ - Filetype detection for `.journal` and `.hledger` files
182
+ - Workspace graph visualization (`:HledgerGraph`)
183
+ - Easy configuration of all server settings
196
184
 
197
- **Optional:** Customize settings by adding a `settings` block:
198
-
199
- ```lua
200
- return {
201
- {
202
- "neovim/nvim-lspconfig",
203
- opts = {
204
- servers = {
205
- hledger_lsp = {
206
- cmd = { "hledger-lsp", "--stdio" },
207
- filetypes = { "hledger", "journal" },
208
- settings = {
209
- hledgerLanguageServer = {
210
- validation = {
211
- undeclaredPayees = true, -- Enable payee validation
212
- },
213
- inlayHints = {
214
- showRunningBalances = true, -- Show running balances
215
- },
216
- -- See settings documentation below for all options
217
- },
218
- },
219
- },
220
- },
221
- },
222
- },
223
- }
224
- ```
185
+ See the plugin repository for installation and configuration instructions.
225
186
 
226
187
  ### VS Code
227
188
 
@@ -238,28 +199,23 @@ problems to report per file
238
199
 
239
200
  ### Validation Settings
240
201
 
241
- All validation settings default to `true` and can be individually disabled:
242
-
243
- - `validation.balance`: Verify transactions balance to zero per commodity
244
- - `validation.missingAmounts`: Ensure at most one posting per transaction omits
245
- an amount
246
- - `validation.undeclaredAccounts`: Warn about accounts used but not declared
247
- - `validation.undeclaredPayees`: Warn about payees used but not declared
248
- - `validation.undeclaredCommodities`: Warn about commodities used but not
249
- declared
250
- - `validation.undeclaredTags`: Warn about tags used but not declared
251
- - `validation.dateOrdering`: Detect transactions with dates out of chronological
252
- order
253
- - `validation.balanceAssertions`: Verify balance assertions match calculated
254
- balances
255
- - `validation.emptyTransactions`: Require at least 2 postings per transaction
256
- - `validation.invalidDates`: Check for invalid dates (e.g., February 30, month 13)
257
- - `validation.futureDates`: Warn about future-dated transactions
258
- - `validation.emptyDescriptions`: Warn about transactions with no description
259
- - `validation.includeFiles`: Detect missing include files
260
- - `validation.circularIncludes`: Detect circular include dependencies
261
- - `validation.markAllUndeclaredInstances`: Mark all instances of undeclared
262
- resources with diagnostics, not just the first occurrence
202
+ Most validation settings default to `true` and can be individually disabled:
203
+
204
+ - `validation.balance` (default: true): Verify transactions balance to zero per commodity
205
+ - `validation.missingAmounts` (default: true): Ensure at most one posting per transaction omits an amount
206
+ - `validation.undeclaredAccounts` (default: true): Warn about accounts used but not declared
207
+ - `validation.undeclaredPayees` (default: **false**): Warn about payees used but not declared
208
+ - `validation.undeclaredCommodities` (default: true): Warn about commodities used but not declared
209
+ - `validation.undeclaredTags` (default: true): Warn about tags used but not declared
210
+ - `validation.dateOrdering` (default: true): Detect transactions with dates out of chronological order
211
+ - `validation.balanceAssertions` (default: true): Verify balance assertions match calculated balances
212
+ - `validation.emptyTransactions` (default: true): Require at least 2 postings per transaction
213
+ - `validation.invalidDates` (default: true): Check for invalid dates (e.g., February 30, month 13)
214
+ - `validation.futureDates` (default: true): Warn about future-dated transactions
215
+ - `validation.emptyDescriptions` (default: true): Warn about transactions with no description
216
+ - `validation.includeFiles` (default: true): Detect missing include files
217
+ - `validation.circularIncludes` (default: true): Detect circular include dependencies
218
+ - `validation.markAllUndeclaredInstances` (default: **true**): Mark all instances of undeclared resources with diagnostics, not just the first occurrence
263
219
 
264
220
  ### Severity Settings
265
221
 
@@ -278,6 +234,46 @@ journal files
278
234
  - `include.maxDepth` (number, default: 10): Maximum include depth to prevent
279
235
  infinite recursion
280
236
 
237
+ ### Workspace Settings
238
+
239
+ Enable workspace-aware parsing for features that need global context (running balances, completion, validation):
240
+
241
+ - `workspace.enabled` (boolean, default: true): Enable workspace-aware parsing. When enabled, the server discovers all journal files in your workspace, builds an include graph, and identifies a single root file. This allows features to access workspace-wide state even when working with "leaf" files that don't include other files.
242
+ - `workspace.eagerParsing` (boolean, default: true): Parse all discovered files eagerly on startup. If disabled, files are parsed on-demand.
243
+ - `workspace.autoDetectRoot` (boolean, default: true): Automatically detect the root file using heuristics (prefers files with no parents that include many others, with names like "main", "all", or "index"). If disabled, only an explicitly configured root file is used (see Configuration File Support below).
244
+
245
+ **Configuration File Support:**
246
+
247
+ You can create a `.hledger-lsp.json` file in your workspace to explicitly configure workspace behavior:
248
+
249
+ ```json
250
+ {
251
+ "rootFile": "main.journal",
252
+ "include": ["**/*.journal", "**/*.hledger"],
253
+ "exclude": ["**/archive/**", "**/temp/**"],
254
+ "workspace": {
255
+ "enabled": true,
256
+ "eagerParsing": true,
257
+ "autoDetectRoot": false
258
+ }
259
+ }
260
+ ```
261
+
262
+ Settings:
263
+ - `rootFile` (string): Explicit root file path (relative to config file location)
264
+ - `include` (array of glob patterns): File discovery patterns (default: `["**/*.journal", "**/*.hledger"]`)
265
+ - `exclude` (array of glob patterns): Files to exclude (default: `["**/node_modules/**", "**/.git/**", "**/.*"]`)
266
+ - `workspace` (object): Same workspace settings as above
267
+
268
+ **Important**: The `.hledger-lsp.json` file is ONLY for workspace structure configuration (which files to discover, which are roots, etc.). LSP feature settings like inlay hints, code lens, validation rules, and formatting preferences should be configured in your editor/IDE settings (VS Code `settings.json`, Neovim LSP config, etc.).
269
+
270
+ The configuration file will be automatically discovered by walking up the directory tree from your journal files. Settings from VS Code/editor configuration override settings from the config file.
271
+
272
+ **Performance Tips:**
273
+ - For large workspaces (>100 files), use `exclude` patterns to skip unnecessary files
274
+ - Disable `eagerParsing` if initialization is slow
275
+ - Check LSP server logs for performance warnings and metrics
276
+
281
277
  ### Completion Settings
282
278
 
283
279
  Control which items appear in auto-completion suggestions. All settings default
@@ -313,6 +309,11 @@ account names and amounts
313
309
  for aligning decimal points in amounts
314
310
  - `formatting.assertionDecimalAlignColumn` (number, default: 70): Target column
315
311
  position for aligning decimal points in balance assertions
312
+ - `formatting.signPosition` (string, default: "after-symbol"): Where to place the
313
+ negative sign for prefix commodities. Options: `"after-symbol"` (e.g., `$-100.00`)
314
+ or `"before-symbol"` (e.g., `-$100.00`). This affects how amounts are displayed in
315
+ hover information, inlay hints, and other LSP features. Does not affect postfix
316
+ commodities (e.g., `-100.00 EUR`), which always show the sign before the number.
316
317
 
317
318
  ### Inlay Hints Settings
318
319
 
@@ -325,6 +326,14 @@ balance after each posting
325
326
  - `inlayHints.showCostConversions` (boolean, default: false): Show total cost in
326
327
  target commodity for postings with @ or @@ notation
327
328
 
329
+ ### Code Lens Settings
330
+
331
+ Configure which code lenses to display (disabled by default):
332
+
333
+ - `codeLens.showTransactionCounts` (boolean, default: false): Show transaction counts for each account on transaction headers
334
+
335
+ **Note:** Running balances are now exclusively shown via inlay hints (`inlayHints.showRunningBalances`), which is a more natural place for position-sensitive information that appears inline with postings.
336
+
328
337
  ## Development
329
338
 
330
339
  ### Building from Source
@@ -402,96 +411,7 @@ npx jest tests/parser/index.test.ts
402
411
  npx jest --testNamePattern="balance"
403
412
  ```
404
413
 
405
- Test files mirror the `src/` directory structure (515 test cases total):
406
-
407
- - `tests/utils/index.test.ts` - Utility function tests
408
- - `tests/utils/uri.test.ts` - URI encoding/decoding tests for paths with spaces
409
- - `tests/parser/index.test.ts` - Parser tests
410
- - `tests/parser/parentInclude.test.ts` - Parent directory include tests
411
- - `tests/parser/includeGlob.test.ts` - Glob pattern include tests
412
- - `tests/features/completion.test.ts` - Completion provider tests
413
- - `tests/features/validator.test.ts` - Validation tests
414
- - `tests/features/validator-includes.test.ts` - Include directive validation
415
- tests
416
- - `tests/features/formatter.test.ts` - Formatting tests (30 test cases including
417
- decimal alignment)
418
- - `tests/features/symbols.test.ts` - Symbol provider tests
419
- - `tests/features/codeActions.test.ts` - Code action tests (including rename
420
- refactoring)
421
- - `tests/features/hover.test.ts` - Hover provider tests
422
- - `tests/features/definition.test.ts` - Definition provider tests
423
- - `tests/features/findReferences.test.ts` - Find references tests
424
- - `tests/features/inlayHints.test.ts` - Inlay hints tests
425
- - `tests/features/semanticTokens.test.ts` - Semantic highlighting tests (20 test
426
- cases)
427
- - `tests/features/foldingRanges.test.ts` - Folding ranges tests (9 test cases)
428
- - `tests/features/documentLinks.test.ts` - Document links tests (9 test cases)
429
- - `tests/features/selectionRange.test.ts` - Selection range tests (11 test
430
- cases)
431
- - `tests/features/transactionAnalyzer.test.ts` - Transaction pattern analysis
432
- tests
433
- - `tests/features/smartCompletion.integration.test.ts` - Smart completion
434
- integration tests
435
- - `tests/integration/spaces-in-path.test.ts` - Integration tests for file paths
436
- with spaces
437
-
438
- ## Roadmap
439
-
440
- ### Completed Features
441
-
442
- - [x] Basic LSP server setup
443
- - [x] Project scaffolding
444
- - [x] Journal file parser with full hledger syntax support
445
- - [x] Comprehensive validation (11+ validation rules)
446
- - [x] Account name completion
447
- - [x] Payee completion
448
- - [x] Commodity completion
449
- - [x] Tag completion
450
- - [x] Directive completion
451
- - [x] Include path completion
452
- - [x] Configurable completion filtering (declared items only vs. all items)
453
- - [x] Transaction balance validation
454
- - [x] Balance assertions validation
455
- - [x] Date validation and ordering
456
- - [x] Undeclared items detection
457
- - [x] Include directive support with circular detection
458
- - [x] Multi-file journal support with dependency tracking
459
- - [x] User-configurable validation and severity levels
460
- - [x] Hover information
461
- - [x] Source location tracking
462
- - [x] Go to definition (accounts, payees, commodities, tags)
463
- - [x] Document symbols (outline view showing directives and transactions)
464
- - [x] Workspace symbols (project-wide search for accounts, payees, commodities,
465
- tags, transactions)
466
- - [x] Code actions and quick fixes (add declarations for undeclared items)
467
- - [x] Rename refactoring (rename accounts, payees, commodities, tags across all
468
- references)
469
- - [x] Formatting support (document, range, and on-type formatting)
470
- - [x] Enhanced formatting (amount alignment, commodity format support, precision
471
- preservation)
472
- - [x] Semantic highlighting (context-aware token highlighting with types and
473
- modifiers)
474
-
475
- ### Recently Added
476
-
477
- - [x] Folding ranges (collapse transactions and comment blocks)
478
- - [x] Document links (clickable include paths)
479
- - [x] Selection range (smart text selection expansion)
480
- - [x] URI encoding/decoding support for file paths with spaces and special
481
- characters
482
- - [x] Find references (show all usages of accounts, payees, commodities, tags)
483
- - [x] Inlay hints (inferred amounts, running balances, cost conversions)
484
- - [x] Transaction pattern analysis for smart completions
485
- - [x] Comprehensive test coverage (515 tests)
486
-
487
- ### Planned Features
488
-
489
- - [ ] Integration with hledger CLI for validation
490
- - [ ] Code lens (show account balances, transaction counts)
491
- - [ ] More sophisticated hover information (balances, commodity info)
492
-
493
- See [ROADMAP.md](ROADMAP.md) for a comprehensive list of proposed features and
494
- future development ideas.
414
+ Test files mirror the `src/` directory structure (515 test cases total)
495
415
 
496
416
  ## Contributing
497
417
 
@@ -84,10 +84,6 @@ export declare class CodeActionProvider {
84
84
  * Split an amount into N equal parts
85
85
  */
86
86
  private splitAmountEqually;
87
- /**
88
- * Format an amount for display
89
- */
90
- private formatAmount;
91
87
  }
92
88
  export declare const codeActionProvider: CodeActionProvider;
93
89
  //# sourceMappingURL=codeActions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeActions.d.ts","sourceRoot":"","sources":["../../src/features/codeActions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EAEV,UAAU,EAEV,aAAa,EACb,KAAK,EACL,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,UAAU,EAAE;IAkDf;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAyBzC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAyBvC;;OAEG;IACH,OAAO,CAAC,mCAAmC;IAyB3C;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IA4CtC;;OAEG;IACI,eAAe,CACpB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,GACxB;QAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA4F3E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACI,qBAAqB,CAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA6BV;;OAEG;IACI,mBAAmB,CACxB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA6BV;;OAEG;IACI,uBAAuB,CAC5B,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA8BV;;OAEG;IACI,iBAAiB,CACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA2BV;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACI,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE;QAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EACvE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,GACxB,aAAa;IA2BhB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqD5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAcjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqDhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,YAAY;CAgBrB;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
1
+ {"version":3,"file":"codeActions.d.ts","sourceRoot":"","sources":["../../src/features/codeActions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EAEV,UAAU,EAEV,aAAa,EACb,KAAK,EACL,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,UAAU,EAAE;IAkDf;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAyBzC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAyBvC;;OAEG;IACH,OAAO,CAAC,mCAAmC;IAyB3C;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAyBrC;;;OAGG;IACH,OAAO,CAAC,8BAA8B;IA6CtC;;OAEG;IACI,eAAe,CACpB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,cAAc,GACxB;QAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA4F3E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACI,qBAAqB,CAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA6BV;;OAEG;IACI,mBAAmB,CACxB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA6BV;;OAEG;IACI,uBAAuB,CAC5B,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA8BV;;OAEG;IACI,iBAAiB,CACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,GACxB,KAAK,EAAE;IA2BV;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACI,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE;QAAE,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EACvE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,GACxB,aAAa;IA2BhB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqD5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAejC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsDhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA+B3B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -5,6 +5,8 @@
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.codeActionProvider = exports.CodeActionProvider = void 0;
7
7
  const vscode_languageserver_1 = require("vscode-languageserver");
8
+ const amountFormatter_1 = require("../utils/amountFormatter");
9
+ const uri_1 = require("../utils/uri");
8
10
  class CodeActionProvider {
9
11
  /**
10
12
  * Provide code actions for the given range and diagnostics
@@ -45,7 +47,7 @@ class CodeActionProvider {
45
47
  // Check for split posting refactoring actions
46
48
  const postingInfo = this.getPostingAtPosition(document, range.start);
47
49
  if (postingInfo) {
48
- actions.push(...this.createSplitPostingActions(document, postingInfo));
50
+ actions.push(...this.createSplitPostingActions(document, postingInfo, parsedDoc));
49
51
  }
50
52
  // Note: Rename refactoring is now handled via the LSP rename provider
51
53
  // (vim.lsp.buf.rename() or F2), not through code actions
@@ -138,8 +140,9 @@ class CodeActionProvider {
138
140
  findInsertPositionForDirective(document, parsedDoc, directiveType) {
139
141
  const lines = document.getText().split('\n');
140
142
  // Find the last directive of the same type
143
+ const normalizedDocUri = (0, uri_1.toFileUri)((0, uri_1.toFilePath)(document.uri));
141
144
  const directivesOfType = parsedDoc.directives
142
- .filter(d => d.type === directiveType && d.sourceUri === document.uri);
145
+ .filter(d => d.type === directiveType && d.sourceUri === normalizedDocUri);
143
146
  if (directivesOfType.length > 0) {
144
147
  // Insert after the last directive of the same type
145
148
  for (let i = lines.length - 1; i >= 0; i--) {
@@ -151,7 +154,7 @@ class CodeActionProvider {
151
154
  }
152
155
  // Find the last directive of any type
153
156
  const allDirectives = parsedDoc.directives
154
- .filter(d => d.sourceUri === document.uri);
157
+ .filter(d => d.sourceUri === normalizedDocUri);
155
158
  if (allDirectives.length > 0) {
156
159
  // Insert after the last directive
157
160
  for (let i = lines.length - 1; i >= 0; i--) {
@@ -463,18 +466,18 @@ class CodeActionProvider {
463
466
  /**
464
467
  * Create code actions for splitting a posting
465
468
  */
466
- createSplitPostingActions(document, postingInfo) {
469
+ createSplitPostingActions(document, postingInfo, parsedDoc) {
467
470
  const actions = [];
468
471
  // Add split actions for 2, 3, and 4 parts
469
472
  for (const parts of [2, 3, 4]) {
470
- actions.push(this.createSplitPostingAction(document, postingInfo, parts));
473
+ actions.push(this.createSplitPostingAction(document, postingInfo, parts, parsedDoc));
471
474
  }
472
475
  return actions;
473
476
  }
474
477
  /**
475
478
  * Create a single split posting action
476
479
  */
477
- createSplitPostingAction(document, postingInfo, parts) {
480
+ createSplitPostingAction(document, postingInfo, parts, parsedDoc) {
478
481
  const splitAmounts = this.splitAmountEqually(postingInfo.amount, parts);
479
482
  const lines = document.getText().split('\n');
480
483
  const originalLine = lines[postingInfo.line];
@@ -484,7 +487,7 @@ class CodeActionProvider {
484
487
  // Generate new posting lines
485
488
  const newPostings = [];
486
489
  // Leave the first account unchanged
487
- const formattedFirstAmount = this.formatAmount(splitAmounts[0]);
490
+ const formattedFirstAmount = (0, amountFormatter_1.formatAmount)(splitAmounts[0].quantity, splitAmounts[0].commodity, parsedDoc);
488
491
  const firstPosting = `${indent}${postingInfo.account}${' '.repeat(Math.max(2, 40 - postingInfo.account.length))}${formattedFirstAmount}`;
489
492
  newPostings.push(firstPosting);
490
493
  for (let i = 1; i < parts; i++) {
@@ -492,7 +495,7 @@ class CodeActionProvider {
492
495
  const newAccount = `${postingInfo.account}:${suffix}`;
493
496
  const amount = splitAmounts[i];
494
497
  // Format the amount
495
- const formattedAmount = this.formatAmount(amount);
498
+ const formattedAmount = (0, amountFormatter_1.formatAmount)(amount.quantity, amount.commodity, parsedDoc);
496
499
  const newPosting = `${indent}${newAccount}${' '.repeat(Math.max(2, 40 - newAccount.length))}${formattedAmount}`;
497
500
  newPostings.push(newPosting);
498
501
  }
@@ -539,23 +542,6 @@ class CodeActionProvider {
539
542
  }
540
543
  return result;
541
544
  }
542
- /**
543
- * Format an amount for display
544
- */
545
- formatAmount(amount) {
546
- const absQuantity = Math.abs(amount.quantity);
547
- const sign = amount.quantity < 0 ? '-' : '';
548
- // Format with 2 decimal places
549
- const formatted = absQuantity.toFixed(2);
550
- // Common commodity symbols that go before the number
551
- const symbolsBeforeNumber = ['$', '£', '€', '¥', '₹'];
552
- if (symbolsBeforeNumber.includes(amount.commodity)) {
553
- return `${sign}${amount.commodity}${formatted}`;
554
- }
555
- else {
556
- return `${sign}${formatted} ${amount.commodity}`;
557
- }
558
- }
559
545
  }
560
546
  exports.CodeActionProvider = CodeActionProvider;
561
547
  exports.codeActionProvider = new CodeActionProvider();
@@ -1 +1 @@
1
- {"version":3,"file":"codeActions.js","sourceRoot":"","sources":["../../src/features/codeActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codeActions.js","sourceRoot":"","sources":["../../src/features/codeActions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Code lens provider for hledger language server
3
+ *
4
+ * Provides clickable inline information:
5
+ * - Transaction counts for accounts
6
+ *
7
+ * Note: Running balances are handled by inlay hints, which is a more natural
8
+ * place for position-sensitive information.
9
+ */
10
+ import { CodeLens } from 'vscode-languageserver';
11
+ import { TextDocument } from 'vscode-languageserver-textdocument';
12
+ import { ParsedDocument } from '../types';
13
+ export interface CodeLensSettings {
14
+ /** Show transaction count for each account */
15
+ showTransactionCounts?: boolean;
16
+ }
17
+ export declare class CodeLensProvider {
18
+ /**
19
+ * Calculate transaction counts per account up to each transaction
20
+ * Returns a map of transaction index -> account -> count up to that transaction
21
+ */
22
+ private calculateTransactionCounts;
23
+ /**
24
+ * Provide code lenses for a document
25
+ */
26
+ provideCodeLenses(document: TextDocument, parsed: ParsedDocument, settings?: CodeLensSettings): CodeLens[];
27
+ }
28
+ export declare const codeLensProvider: CodeLensProvider;
29
+ //# sourceMappingURL=codeLens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeLens.d.ts","sourceRoot":"","sources":["../../src/features/codeLens.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAmB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAe,MAAM,UAAU,CAAC;AAGvD,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAMD,qBAAa,gBAAgB;IAC3B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAsClC;;OAEG;IACH,iBAAiB,CACf,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,QAAQ,EAAE;CA2Dd;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ /**
3
+ * Code lens provider for hledger language server
4
+ *
5
+ * Provides clickable inline information:
6
+ * - Transaction counts for accounts
7
+ *
8
+ * Note: Running balances are handled by inlay hints, which is a more natural
9
+ * place for position-sensitive information.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.codeLensProvider = exports.CodeLensProvider = void 0;
13
+ const vscode_languageserver_1 = require("vscode-languageserver");
14
+ const uri_1 = require("../utils/uri");
15
+ const DEFAULT_SETTINGS = {
16
+ showTransactionCounts: false
17
+ };
18
+ class CodeLensProvider {
19
+ /**
20
+ * Calculate transaction counts per account up to each transaction
21
+ * Returns a map of transaction index -> account -> count up to that transaction
22
+ */
23
+ calculateTransactionCounts(parsed) {
24
+ const result = new Map();
25
+ const globalCounts = new Map();
26
+ // Sort transactions by date to count in chronological order
27
+ const sortedTransactions = [...parsed.transactions].sort((a, b) => {
28
+ return a.date.localeCompare(b.date);
29
+ });
30
+ // Create a map from sorted index to original index
31
+ const sortedToOriginalIndex = new Map();
32
+ sortedTransactions.forEach((tx, sortedIdx) => {
33
+ const originalIdx = parsed.transactions.indexOf(tx);
34
+ sortedToOriginalIndex.set(sortedIdx, originalIdx);
35
+ });
36
+ for (let sortedIdx = 0; sortedIdx < sortedTransactions.length; sortedIdx++) {
37
+ const transaction = sortedTransactions[sortedIdx];
38
+ const txIndex = sortedToOriginalIndex.get(sortedIdx);
39
+ const accountsInTransaction = new Set();
40
+ // Count each account once per transaction
41
+ for (const posting of transaction.postings) {
42
+ accountsInTransaction.add(posting.account);
43
+ }
44
+ // Increment count for each unique account in this transaction
45
+ for (const account of accountsInTransaction) {
46
+ globalCounts.set(account, (globalCounts.get(account) || 0) + 1);
47
+ }
48
+ // Store snapshot of counts for this transaction
49
+ result.set(txIndex, new Map(globalCounts));
50
+ }
51
+ return result;
52
+ }
53
+ /**
54
+ * Provide code lenses for a document
55
+ */
56
+ provideCodeLenses(document, parsed, settings) {
57
+ const config = { ...DEFAULT_SETTINGS, ...settings };
58
+ const lenses = [];
59
+ // If transaction counts are not enabled, return early
60
+ if (!config.showTransactionCounts) {
61
+ return lenses;
62
+ }
63
+ // Calculate transaction counts
64
+ const transactionCounts = this.calculateTransactionCounts(parsed);
65
+ // Add code lenses for each transaction
66
+ for (let txIndex = 0; txIndex < parsed.transactions.length; txIndex++) {
67
+ const transaction = parsed.transactions[txIndex];
68
+ // Only show code lenses for transactions in the current document
69
+ // Normalize document URI to match internal storage format
70
+ const normalizedDocUri = (0, uri_1.toFileUri)((0, uri_1.toFilePath)(document.uri));
71
+ if (transaction.sourceUri !== normalizedDocUri) {
72
+ continue;
73
+ }
74
+ const txLine = transaction.line ?? 0;
75
+ // Transaction count code lens
76
+ const countsAtTx = transactionCounts.get(txIndex);
77
+ if (countsAtTx) {
78
+ // Show counts for accounts in this transaction
79
+ const accountsInTx = new Set();
80
+ for (const posting of transaction.postings) {
81
+ accountsInTx.add(posting.account);
82
+ }
83
+ const countTexts = [];
84
+ for (const account of accountsInTx) {
85
+ const count = countsAtTx.get(account) || 0;
86
+ countTexts.push(`${account}: ${count} tx`);
87
+ }
88
+ if (countTexts.length > 0) {
89
+ // Code lens - display only (command field is optional and unused)
90
+ lenses.push({
91
+ range: vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(txLine, 0), vscode_languageserver_1.Position.create(txLine, 0)),
92
+ command: {
93
+ title: `📊 ${countTexts.join(' | ')}`,
94
+ command: '' // Empty command means display-only
95
+ }
96
+ });
97
+ }
98
+ }
99
+ }
100
+ return lenses;
101
+ }
102
+ }
103
+ exports.CodeLensProvider = CodeLensProvider;
104
+ exports.codeLensProvider = new CodeLensProvider();
105
+ //# sourceMappingURL=codeLens.js.map