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.
- package/README.md +91 -173
- package/out/features/codeActions.d.ts +16 -0
- package/out/features/codeActions.d.ts.map +1 -1
- package/out/features/codeActions.js +129 -0
- 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 +102 -0
- package/out/features/codeLens.js.map +1 -0
- package/out/features/completion.d.ts +16 -4
- package/out/features/completion.d.ts.map +1 -1
- package/out/features/completion.js +23 -10
- package/out/features/completion.js.map +1 -1
- package/out/features/definition.d.ts.map +1 -1
- package/out/features/definition.js +4 -4
- package/out/features/definition.js.map +1 -1
- package/out/features/foldingRanges.d.ts.map +1 -1
- package/out/features/foldingRanges.js +6 -2
- package/out/features/foldingRanges.js.map +1 -1
- package/out/features/formatter.d.ts +4 -20
- package/out/features/formatter.d.ts.map +1 -1
- package/out/features/formatter.js +271 -223
- 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 +0 -4
- package/out/features/hover.d.ts.map +1 -1
- package/out/features/hover.js +11 -20
- package/out/features/hover.js.map +1 -1
- package/out/features/inlayHints.d.ts +12 -6
- package/out/features/inlayHints.d.ts.map +1 -1
- package/out/features/inlayHints.js +202 -84
- package/out/features/inlayHints.js.map +1 -1
- package/out/features/semanticTokens.d.ts.map +1 -1
- package/out/features/semanticTokens.js +17 -14
- package/out/features/semanticTokens.js.map +1 -1
- package/out/features/symbols.d.ts.map +1 -1
- package/out/features/symbols.js +8 -5
- package/out/features/symbols.js.map +1 -1
- package/out/features/validator.d.ts +5 -4
- package/out/features/validator.d.ts.map +1 -1
- package/out/features/validator.js +145 -105
- package/out/features/validator.js.map +1 -1
- package/out/parser/ast.d.ts +48 -7
- package/out/parser/ast.d.ts.map +1 -1
- package/out/parser/ast.js +552 -363
- package/out/parser/ast.js.map +1 -1
- package/out/parser/document.d.ts +7 -0
- package/out/parser/document.d.ts.map +1 -0
- package/out/parser/document.js +70 -0
- package/out/parser/document.js.map +1 -0
- package/out/parser/includes.d.ts.map +1 -1
- package/out/parser/includes.js +21 -33
- package/out/parser/includes.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 +39 -14
- 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 +13 -0
- package/out/server/settings.d.ts.map +1 -1
- package/out/server/settings.js +13 -3
- 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 +599 -0
- package/out/server/workspace.js.map +1 -0
- package/out/server.js +435 -27
- package/out/server.js.map +1 -1
- package/out/types.d.ts +27 -12
- package/out/types.d.ts.map +1 -1
- package/out/types.js +12 -0
- package/out/types.js.map +1 -1
- package/out/utils/amountFormatter.d.ts +14 -0
- package/out/utils/amountFormatter.d.ts.map +1 -0
- package/out/utils/amountFormatter.js +55 -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.js +1 -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
|
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
239
|
-
|
|
240
|
-
- `validation.balance
|
|
241
|
-
- `validation.missingAmounts
|
|
242
|
-
|
|
243
|
-
- `validation.
|
|
244
|
-
- `validation.
|
|
245
|
-
- `validation.
|
|
246
|
-
|
|
247
|
-
- `validation.
|
|
248
|
-
- `validation.
|
|
249
|
-
|
|
250
|
-
- `validation.
|
|
251
|
-
|
|
252
|
-
- `validation.
|
|
253
|
-
- `validation.
|
|
254
|
-
- `validation.
|
|
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:
|
|
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
|
|
320
|
-
- `inlayHints.showCostConversions` (boolean, default:
|
|
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;
|
|
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"}
|