hledger-lsp 0.1.2 → 0.1.6

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 (89) hide show
  1. package/README.md +91 -173
  2. package/out/features/codeActions.d.ts +16 -0
  3. package/out/features/codeActions.d.ts.map +1 -1
  4. package/out/features/codeActions.js +129 -0
  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 +102 -0
  9. package/out/features/codeLens.js.map +1 -0
  10. package/out/features/completion.d.ts +16 -4
  11. package/out/features/completion.d.ts.map +1 -1
  12. package/out/features/completion.js +23 -10
  13. package/out/features/completion.js.map +1 -1
  14. package/out/features/definition.d.ts.map +1 -1
  15. package/out/features/definition.js +4 -4
  16. package/out/features/definition.js.map +1 -1
  17. package/out/features/foldingRanges.d.ts.map +1 -1
  18. package/out/features/foldingRanges.js +6 -2
  19. package/out/features/foldingRanges.js.map +1 -1
  20. package/out/features/formatter.d.ts +4 -20
  21. package/out/features/formatter.d.ts.map +1 -1
  22. package/out/features/formatter.js +271 -223
  23. package/out/features/formatter.js.map +1 -1
  24. package/out/features/formattingUtils.d.ts +38 -0
  25. package/out/features/formattingUtils.d.ts.map +1 -0
  26. package/out/features/formattingUtils.js +107 -0
  27. package/out/features/formattingUtils.js.map +1 -0
  28. package/out/features/hover.d.ts +0 -4
  29. package/out/features/hover.d.ts.map +1 -1
  30. package/out/features/hover.js +11 -20
  31. package/out/features/hover.js.map +1 -1
  32. package/out/features/inlayHints.d.ts +12 -6
  33. package/out/features/inlayHints.d.ts.map +1 -1
  34. package/out/features/inlayHints.js +202 -84
  35. package/out/features/inlayHints.js.map +1 -1
  36. package/out/features/semanticTokens.d.ts.map +1 -1
  37. package/out/features/semanticTokens.js +17 -14
  38. package/out/features/semanticTokens.js.map +1 -1
  39. package/out/features/symbols.d.ts.map +1 -1
  40. package/out/features/symbols.js +8 -5
  41. package/out/features/symbols.js.map +1 -1
  42. package/out/features/validator.d.ts +5 -4
  43. package/out/features/validator.d.ts.map +1 -1
  44. package/out/features/validator.js +145 -105
  45. package/out/features/validator.js.map +1 -1
  46. package/out/parser/ast.d.ts +48 -7
  47. package/out/parser/ast.d.ts.map +1 -1
  48. package/out/parser/ast.js +552 -363
  49. package/out/parser/ast.js.map +1 -1
  50. package/out/parser/document.d.ts +7 -0
  51. package/out/parser/document.d.ts.map +1 -0
  52. package/out/parser/document.js +70 -0
  53. package/out/parser/document.js.map +1 -0
  54. package/out/parser/includes.d.ts.map +1 -1
  55. package/out/parser/includes.js +21 -33
  56. package/out/parser/includes.js.map +1 -1
  57. package/out/parser/index.d.ts +8 -5
  58. package/out/parser/index.d.ts.map +1 -1
  59. package/out/parser/index.js +39 -14
  60. package/out/parser/index.js.map +1 -1
  61. package/out/server/configFile.d.ts +104 -0
  62. package/out/server/configFile.d.ts.map +1 -0
  63. package/out/server/configFile.js +231 -0
  64. package/out/server/configFile.js.map +1 -0
  65. package/out/server/settings.d.ts +13 -0
  66. package/out/server/settings.d.ts.map +1 -1
  67. package/out/server/settings.js +13 -3
  68. package/out/server/settings.js.map +1 -1
  69. package/out/server/workspace.d.ts +126 -0
  70. package/out/server/workspace.d.ts.map +1 -0
  71. package/out/server/workspace.js +599 -0
  72. package/out/server/workspace.js.map +1 -0
  73. package/out/server.js +435 -27
  74. package/out/server.js.map +1 -1
  75. package/out/types.d.ts +27 -12
  76. package/out/types.d.ts.map +1 -1
  77. package/out/types.js +12 -0
  78. package/out/types.js.map +1 -1
  79. package/out/utils/amountFormatter.d.ts +14 -0
  80. package/out/utils/amountFormatter.d.ts.map +1 -0
  81. package/out/utils/amountFormatter.js +55 -0
  82. package/out/utils/amountFormatter.js.map +1 -0
  83. package/out/utils/balanceCalculator.d.ts +32 -0
  84. package/out/utils/balanceCalculator.d.ts.map +1 -0
  85. package/out/utils/balanceCalculator.js +93 -0
  86. package/out/utils/balanceCalculator.js.map +1 -0
  87. package/out/utils/index.js +1 -1
  88. package/out/utils/index.js.map +1 -1
  89. 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
@@ -158,73 +167,28 @@ items or all items (declared + undeclared)
158
167
  npm install -g hledger-lsp
159
168
  ```
160
169
 
161
- This provides the `hledger-lsp` command globally. After installation, the language server can be used with any LSP-compatible editor.
170
+ This provides the `hledger-lsp` command globally. After installation, the
171
+ language server can be used with any LSP-compatible editor.
162
172
 
163
173
  ## Editor Configuration
164
174
 
165
175
  ### Neovim
166
176
 
167
- Add this to your lazy.nvim configuration (e.g., `~/.config/nvim/lua/plugins/hledger.lua`):
168
-
169
- ```lua
170
- return {
171
- {
172
- "neovim/nvim-lspconfig",
173
- opts = {
174
- servers = {
175
- hledger_lsp = {
176
- cmd = { "hledger-lsp", "--stdio" },
177
- filetypes = { "hledger", "journal" },
178
- },
179
- },
180
- },
181
- },
182
- }
183
- ```
177
+ Use the dedicated plugin: [ptimoney/hledger-nvim](https://github.com/ptimoney/hledger-nvim)
184
178
 
185
- And add this to your `init.lua` for file type detection:
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
186
184
 
187
- ```lua
188
- vim.filetype.add({
189
- extension = {
190
- journal = "hledger",
191
- hledger = "hledger",
192
- },
193
- })
194
- ```
195
-
196
- **Optional:** Customize settings by adding a `settings` block:
197
-
198
- ```lua
199
- return {
200
- {
201
- "neovim/nvim-lspconfig",
202
- opts = {
203
- servers = {
204
- hledger_lsp = {
205
- cmd = { "hledger-lsp", "--stdio" },
206
- filetypes = { "hledger", "journal" },
207
- settings = {
208
- hledgerLanguageServer = {
209
- validation = {
210
- undeclaredPayees = true, -- Enable payee validation
211
- },
212
- inlayHints = {
213
- showRunningBalances = true, -- Show running balances
214
- },
215
- -- See settings documentation below for all options
216
- },
217
- },
218
- },
219
- },
220
- },
221
- },
222
- }
223
- ```
185
+ See the plugin repository for installation and configuration instructions.
224
186
 
225
187
  ### VS Code
226
188
 
227
- The VS Code extension is published separately. Install it from the VS Code marketplace or see the `vscode-client/` directory in the repository for development instructions.
189
+ The VS Code extension is published separately. Install it from the VS Code
190
+ marketplace or see the `vscode-client/` directory in the repository for
191
+ development instructions.
228
192
 
229
193
  ### General Settings
230
194
 
@@ -235,26 +199,23 @@ problems to report per file
235
199
 
236
200
  ### Validation Settings
237
201
 
238
- All validation settings default to `true` and can be individually disabled:
239
-
240
- - `validation.balance`: Verify transactions balance to zero per commodity
241
- - `validation.missingAmounts`: Ensure at most one posting per transaction omits
242
- an amount
243
- - `validation.undeclaredAccounts`: Warn about accounts used but not declared
244
- - `validation.undeclaredPayees`: Warn about payees used but not declared
245
- - `validation.undeclaredCommodities`: Warn about commodities used but not
246
- declared
247
- - `validation.undeclaredTags`: Warn about tags used but not declared
248
- - `validation.dateOrdering`: Detect transactions with dates out of chronological
249
- order
250
- - `validation.balanceAssertions`: Verify balance assertions match calculated
251
- balances
252
- - `validation.emptyTransactions`: Require at least 2 postings per transaction
253
- - `validation.invalidDates`: Check for invalid dates (e.g., February 30, month 13)
254
- - `validation.futureDates`: Warn about future-dated transactions
255
- - `validation.emptyDescriptions`: Warn about transactions with no description
256
- - `validation.includeFiles`: Detect missing include files
257
- - `validation.circularIncludes`: Detect circular include dependencies
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
258
219
 
259
220
  ### Severity Settings
260
221
 
@@ -273,6 +234,46 @@ journal files
273
234
  - `include.maxDepth` (number, default: 10): Maximum include depth to prevent
274
235
  infinite recursion
275
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
+
276
277
  ### Completion Settings
277
278
 
278
279
  Control which items appear in auto-completion suggestions. All settings default
@@ -311,15 +312,23 @@ position for aligning decimal points in balance assertions
311
312
 
312
313
  ### Inlay Hints Settings
313
314
 
314
- Configure which inline hints to display:
315
+ Configure which inline hints to display (all disabled by default):
315
316
 
316
- - `inlayHints.showInferredAmounts` (boolean, default: true): Show calculated
317
+ - `inlayHints.showInferredAmounts` (boolean, default: false): Show calculated
317
318
  amounts for postings that omit explicit amounts
318
319
  - `inlayHints.showRunningBalances` (boolean, default: false): Display running
319
- balance after each posting (can be noisy for large files)
320
- - `inlayHints.showCostConversions` (boolean, default: true): Show total cost in
320
+ balance after each posting
321
+ - `inlayHints.showCostConversions` (boolean, default: false): Show total cost in
321
322
  target commodity for postings with @ or @@ notation
322
323
 
324
+ ### Code Lens Settings
325
+
326
+ Configure which code lenses to display (disabled by default):
327
+
328
+ - `codeLens.showTransactionCounts` (boolean, default: false): Show transaction counts for each account on transaction headers
329
+
330
+ **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.
331
+
323
332
  ## Development
324
333
 
325
334
  ### Building from Source
@@ -343,7 +352,6 @@ node server/out/server.js --stdio
343
352
 
344
353
  ### Project Structure
345
354
 
346
- ```
347
355
  hledger_lsp/
348
356
  ├── server/
349
357
  │ ├── src/
@@ -355,7 +363,6 @@ hledger_lsp/
355
363
  │ ├── out/ # Compiled JavaScript output
356
364
  │ └── package.json
357
365
  └── vscode-client/ # VS Code extension
358
- ```
359
366
 
360
367
  ### Development Commands
361
368
 
@@ -399,96 +406,7 @@ npx jest tests/parser/index.test.ts
399
406
  npx jest --testNamePattern="balance"
400
407
  ```
401
408
 
402
- Test files mirror the `src/` directory structure (515 test cases total):
403
-
404
- - `tests/utils/index.test.ts` - Utility function tests
405
- - `tests/utils/uri.test.ts` - URI encoding/decoding tests for paths with spaces
406
- - `tests/parser/index.test.ts` - Parser tests
407
- - `tests/parser/parentInclude.test.ts` - Parent directory include tests
408
- - `tests/parser/includeGlob.test.ts` - Glob pattern include tests
409
- - `tests/features/completion.test.ts` - Completion provider tests
410
- - `tests/features/validator.test.ts` - Validation tests
411
- - `tests/features/validator-includes.test.ts` - Include directive validation
412
- tests
413
- - `tests/features/formatter.test.ts` - Formatting tests (30 test cases including
414
- decimal alignment)
415
- - `tests/features/symbols.test.ts` - Symbol provider tests
416
- - `tests/features/codeActions.test.ts` - Code action tests (including rename
417
- refactoring)
418
- - `tests/features/hover.test.ts` - Hover provider tests
419
- - `tests/features/definition.test.ts` - Definition provider tests
420
- - `tests/features/findReferences.test.ts` - Find references tests
421
- - `tests/features/inlayHints.test.ts` - Inlay hints tests
422
- - `tests/features/semanticTokens.test.ts` - Semantic highlighting tests (20 test
423
- cases)
424
- - `tests/features/foldingRanges.test.ts` - Folding ranges tests (9 test cases)
425
- - `tests/features/documentLinks.test.ts` - Document links tests (9 test cases)
426
- - `tests/features/selectionRange.test.ts` - Selection range tests (11 test
427
- cases)
428
- - `tests/features/transactionAnalyzer.test.ts` - Transaction pattern analysis
429
- tests
430
- - `tests/features/smartCompletion.integration.test.ts` - Smart completion
431
- integration tests
432
- - `tests/integration/spaces-in-path.test.ts` - Integration tests for file paths
433
- with spaces
434
-
435
- ## Roadmap
436
-
437
- ### Completed Features
438
-
439
- - [x] Basic LSP server setup
440
- - [x] Project scaffolding
441
- - [x] Journal file parser with full hledger syntax support
442
- - [x] Comprehensive validation (11+ validation rules)
443
- - [x] Account name completion
444
- - [x] Payee completion
445
- - [x] Commodity completion
446
- - [x] Tag completion
447
- - [x] Directive completion
448
- - [x] Include path completion
449
- - [x] Configurable completion filtering (declared items only vs. all items)
450
- - [x] Transaction balance validation
451
- - [x] Balance assertions validation
452
- - [x] Date validation and ordering
453
- - [x] Undeclared items detection
454
- - [x] Include directive support with circular detection
455
- - [x] Multi-file journal support with dependency tracking
456
- - [x] User-configurable validation and severity levels
457
- - [x] Hover information
458
- - [x] Source location tracking
459
- - [x] Go to definition (accounts, payees, commodities, tags)
460
- - [x] Document symbols (outline view showing directives and transactions)
461
- - [x] Workspace symbols (project-wide search for accounts, payees, commodities,
462
- tags, transactions)
463
- - [x] Code actions and quick fixes (add declarations for undeclared items)
464
- - [x] Rename refactoring (rename accounts, payees, commodities, tags across all
465
- references)
466
- - [x] Formatting support (document, range, and on-type formatting)
467
- - [x] Enhanced formatting (amount alignment, commodity format support, precision
468
- preservation)
469
- - [x] Semantic highlighting (context-aware token highlighting with types and
470
- modifiers)
471
-
472
- ### Recently Added
473
-
474
- - [x] Folding ranges (collapse transactions and comment blocks)
475
- - [x] Document links (clickable include paths)
476
- - [x] Selection range (smart text selection expansion)
477
- - [x] URI encoding/decoding support for file paths with spaces and special
478
- characters
479
- - [x] Find references (show all usages of accounts, payees, commodities, tags)
480
- - [x] Inlay hints (inferred amounts, running balances, cost conversions)
481
- - [x] Transaction pattern analysis for smart completions
482
- - [x] Comprehensive test coverage (515 tests)
483
-
484
- ### Planned Features
485
-
486
- - [ ] Integration with hledger CLI for validation
487
- - [ ] Code lens (show account balances, transaction counts)
488
- - [ ] More sophisticated hover information (balances, commodity info)
489
-
490
- See [ROADMAP.md](ROADMAP.md) for a comprehensive list of proposed features and
491
- future development ideas.
409
+ Test files mirror the `src/` directory structure (515 test cases total)
492
410
 
493
411
  ## Contributing
494
412
 
@@ -68,6 +68,22 @@ export declare class CodeActionProvider {
68
68
  type: 'account' | 'payee' | 'commodity' | 'tag';
69
69
  name: string;
70
70
  }, newName: string, parsedDoc: ParsedDocument): WorkspaceEdit;
71
+ /**
72
+ * Get posting information at a given position
73
+ */
74
+ private getPostingAtPosition;
75
+ /**
76
+ * Create code actions for splitting a posting
77
+ */
78
+ private createSplitPostingActions;
79
+ /**
80
+ * Create a single split posting action
81
+ */
82
+ private createSplitPostingAction;
83
+ /**
84
+ * Split an amount into N equal parts
85
+ */
86
+ private splitAmountEqually;
71
87
  }
72
88
  export declare const codeActionProvider: CodeActionProvider;
73
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;IA4Cf;;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;CA0BjB;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;AAG1C,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;IAejC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsDhC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CA+B3B;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
@@ -5,6 +5,7 @@
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");
8
9
  class CodeActionProvider {
9
10
  /**
10
11
  * Provide code actions for the given range and diagnostics
@@ -42,6 +43,11 @@ class CodeActionProvider {
42
43
  }
43
44
  }
44
45
  }
46
+ // Check for split posting refactoring actions
47
+ const postingInfo = this.getPostingAtPosition(document, range.start);
48
+ if (postingInfo) {
49
+ actions.push(...this.createSplitPostingActions(document, postingInfo, parsedDoc));
50
+ }
45
51
  // Note: Rename refactoring is now handled via the LSP rename provider
46
52
  // (vim.lsp.buf.rename() or F2), not through code actions
47
53
  return actions;
@@ -411,6 +417,129 @@ class CodeActionProvider {
411
417
  }
412
418
  };
413
419
  }
420
+ /**
421
+ * Get posting information at a given position
422
+ */
423
+ getPostingAtPosition(document, position) {
424
+ const lines = document.getText().split('\n');
425
+ if (position.line >= lines.length) {
426
+ return null;
427
+ }
428
+ const line = lines[position.line];
429
+ if (!line || !line.match(/^\s+\S/)) {
430
+ // Not an indented line (not a posting)
431
+ return null;
432
+ }
433
+ // Parse the posting line to extract account and amount
434
+ // Format: " account name amount"
435
+ const match = line.match(/^\s+([^;\s]+(?:\s+[^;\s]+)*?)(?:\s{2,})([-+]?)([^;\s]*?)([$£€¥₹]|[A-Z]{3,4})?\s*([-+]?\d+(?:[.,]\d+)?)\s*([$£€¥₹]|[A-Z]{3,4})?/);
436
+ if (!match) {
437
+ return null;
438
+ }
439
+ const account = match[1].trim();
440
+ const signBefore = match[2];
441
+ const commodityBefore = match[4];
442
+ const quantityStr = match[5];
443
+ const commodityAfter = match[6];
444
+ // Determine commodity and quantity
445
+ const commodity = commodityBefore || commodityAfter;
446
+ if (!commodity) {
447
+ return null; // No commodity found
448
+ }
449
+ const quantity = parseFloat(quantityStr.replace(',', '.'));
450
+ if (isNaN(quantity)) {
451
+ return null;
452
+ }
453
+ // Apply sign
454
+ const signedQuantity = signBefore === '-' ? -quantity : quantity;
455
+ return {
456
+ line: position.line,
457
+ account,
458
+ amount: {
459
+ quantity: signedQuantity,
460
+ commodity
461
+ }
462
+ };
463
+ }
464
+ /**
465
+ * Create code actions for splitting a posting
466
+ */
467
+ createSplitPostingActions(document, postingInfo, parsedDoc) {
468
+ const actions = [];
469
+ // Add split actions for 2, 3, and 4 parts
470
+ for (const parts of [2, 3, 4]) {
471
+ actions.push(this.createSplitPostingAction(document, postingInfo, parts, parsedDoc));
472
+ }
473
+ return actions;
474
+ }
475
+ /**
476
+ * Create a single split posting action
477
+ */
478
+ createSplitPostingAction(document, postingInfo, parts, parsedDoc) {
479
+ const splitAmounts = this.splitAmountEqually(postingInfo.amount, parts);
480
+ const lines = document.getText().split('\n');
481
+ const originalLine = lines[postingInfo.line];
482
+ // Get the indentation from the original line
483
+ const indentMatch = originalLine.match(/^(\s+)/);
484
+ const indent = indentMatch ? indentMatch[1] : ' ';
485
+ // Generate new posting lines
486
+ const newPostings = [];
487
+ // Leave the first account unchanged
488
+ const formattedFirstAmount = (0, amountFormatter_1.formatAmount)(splitAmounts[0].quantity, splitAmounts[0].commodity, parsedDoc);
489
+ const firstPosting = `${indent}${postingInfo.account}${' '.repeat(Math.max(2, 40 - postingInfo.account.length))}${formattedFirstAmount}`;
490
+ newPostings.push(firstPosting);
491
+ for (let i = 1; i < parts; i++) {
492
+ const suffix = i + 1;
493
+ const newAccount = `${postingInfo.account}:${suffix}`;
494
+ const amount = splitAmounts[i];
495
+ // Format the amount
496
+ const formattedAmount = (0, amountFormatter_1.formatAmount)(amount.quantity, amount.commodity, parsedDoc);
497
+ const newPosting = `${indent}${newAccount}${' '.repeat(Math.max(2, 40 - newAccount.length))}${formattedAmount}`;
498
+ newPostings.push(newPosting);
499
+ }
500
+ const newText = newPostings.join('\n');
501
+ const edit = {
502
+ changes: {
503
+ [document.uri]: [
504
+ vscode_languageserver_1.TextEdit.replace(vscode_languageserver_1.Range.create(postingInfo.line, 0, postingInfo.line, originalLine.length), newText)
505
+ ]
506
+ }
507
+ };
508
+ const action = {
509
+ title: `Split posting into ${parts} equal parts`,
510
+ kind: vscode_languageserver_1.CodeActionKind.Refactor,
511
+ edit
512
+ };
513
+ return action;
514
+ }
515
+ /**
516
+ * Split an amount into N equal parts
517
+ */
518
+ splitAmountEqually(amount, parts) {
519
+ // Calculate base amount by dividing and rounding to 2 decimal places
520
+ const baseAmount = Math.round((amount.quantity / parts) * 100) / 100;
521
+ const result = [];
522
+ let runningTotal = 0;
523
+ for (let i = 0; i < parts; i++) {
524
+ if (i === parts - 1) {
525
+ // Last part: use the difference to ensure exact sum
526
+ const quantity = Math.round((amount.quantity - runningTotal) * 100) / 100;
527
+ result.push({
528
+ quantity,
529
+ commodity: amount.commodity
530
+ });
531
+ }
532
+ else {
533
+ // Use base amount for all but last part
534
+ result.push({
535
+ quantity: baseAmount,
536
+ commodity: amount.commodity
537
+ });
538
+ runningTotal += baseAmount;
539
+ }
540
+ }
541
+ return result;
542
+ }
414
543
  }
415
544
  exports.CodeActionProvider = CodeActionProvider;
416
545
  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;AAEvD,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;CAyDd;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}