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.
- package/README.md +87 -167
- package/out/features/codeActions.d.ts +0 -4
- package/out/features/codeActions.d.ts.map +1 -1
- package/out/features/codeActions.js +11 -25
- package/out/features/codeActions.js.map +1 -1
- package/out/features/codeLens.d.ts +29 -0
- package/out/features/codeLens.d.ts.map +1 -0
- package/out/features/codeLens.js +105 -0
- package/out/features/codeLens.js.map +1 -0
- package/out/features/completion.d.ts.map +1 -1
- package/out/features/completion.js +21 -9
- package/out/features/completion.js.map +1 -1
- package/out/features/definition.d.ts.map +1 -1
- package/out/features/definition.js.map +1 -1
- package/out/features/foldingRanges.d.ts.map +1 -1
- package/out/features/foldingRanges.js +9 -2
- package/out/features/foldingRanges.js.map +1 -1
- package/out/features/formatter.d.ts +2 -0
- package/out/features/formatter.d.ts.map +1 -1
- package/out/features/formatter.js +36 -7
- package/out/features/formatter.js.map +1 -1
- package/out/features/formattingUtils.d.ts +38 -0
- package/out/features/formattingUtils.d.ts.map +1 -0
- package/out/features/formattingUtils.js +107 -0
- package/out/features/formattingUtils.js.map +1 -0
- package/out/features/hover.d.ts +2 -5
- package/out/features/hover.d.ts.map +1 -1
- package/out/features/hover.js +60 -36
- package/out/features/hover.js.map +1 -1
- package/out/features/inlayHints.d.ts +7 -5
- package/out/features/inlayHints.d.ts.map +1 -1
- package/out/features/inlayHints.js +164 -91
- package/out/features/inlayHints.js.map +1 -1
- package/out/features/semanticTokens.d.ts.map +1 -1
- package/out/features/semanticTokens.js +22 -1
- package/out/features/semanticTokens.js.map +1 -1
- package/out/features/symbols.d.ts.map +1 -1
- package/out/features/symbols.js +9 -3
- package/out/features/symbols.js.map +1 -1
- package/out/features/validator.d.ts +0 -8
- package/out/features/validator.d.ts.map +1 -1
- package/out/features/validator.js +367 -171
- package/out/features/validator.js.map +1 -1
- package/out/parser/ast.d.ts +2 -2
- package/out/parser/ast.d.ts.map +1 -1
- package/out/parser/ast.js +10 -5
- package/out/parser/ast.js.map +1 -1
- package/out/parser/index.d.ts +8 -5
- package/out/parser/index.d.ts.map +1 -1
- package/out/parser/index.js +0 -7
- package/out/parser/index.js.map +1 -1
- package/out/server/configFile.d.ts +104 -0
- package/out/server/configFile.d.ts.map +1 -0
- package/out/server/configFile.js +231 -0
- package/out/server/configFile.js.map +1 -0
- package/out/server/settings.d.ts +9 -0
- package/out/server/settings.d.ts.map +1 -1
- package/out/server/settings.js +9 -0
- package/out/server/settings.js.map +1 -1
- package/out/server/workspace.d.ts +126 -0
- package/out/server/workspace.d.ts.map +1 -0
- package/out/server/workspace.js +605 -0
- package/out/server/workspace.js.map +1 -0
- package/out/server.js +438 -29
- package/out/server.js.map +1 -1
- package/out/types.d.ts +15 -4
- package/out/types.d.ts.map +1 -1
- package/out/types.js +11 -0
- package/out/types.js.map +1 -1
- package/out/utils/amountFormatter.d.ts +26 -0
- package/out/utils/amountFormatter.d.ts.map +1 -0
- package/out/utils/amountFormatter.js +91 -0
- package/out/utils/amountFormatter.js.map +1 -0
- package/out/utils/balanceCalculator.d.ts +32 -0
- package/out/utils/balanceCalculator.d.ts.map +1 -0
- package/out/utils/balanceCalculator.js +93 -0
- package/out/utils/balanceCalculator.js.map +1 -0
- package/out/utils/index.d.ts.map +1 -1
- package/out/utils/index.js +2 -1
- package/out/utils/index.js.map +1 -1
- 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
|
-
|
|
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
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
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
|
-
|
|
242
|
-
|
|
243
|
-
- `validation.balance
|
|
244
|
-
- `validation.missingAmounts
|
|
245
|
-
|
|
246
|
-
- `validation.
|
|
247
|
-
- `validation.
|
|
248
|
-
- `validation.
|
|
249
|
-
|
|
250
|
-
- `validation.
|
|
251
|
-
- `validation.
|
|
252
|
-
|
|
253
|
-
- `validation.
|
|
254
|
-
|
|
255
|
-
- `validation.
|
|
256
|
-
- `validation.
|
|
257
|
-
- `validation.
|
|
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;
|
|
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 ===
|
|
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 ===
|
|
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 =
|
|
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 =
|
|
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
|