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
|
@@ -0,0 +1,102 @@
|
|
|
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 DEFAULT_SETTINGS = {
|
|
15
|
+
showTransactionCounts: false
|
|
16
|
+
};
|
|
17
|
+
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
|
+
calculateTransactionCounts(parsed) {
|
|
23
|
+
const result = new Map();
|
|
24
|
+
const globalCounts = new Map();
|
|
25
|
+
// Sort transactions by date to count in chronological order
|
|
26
|
+
const sortedTransactions = [...parsed.transactions].sort((a, b) => {
|
|
27
|
+
return a.date.localeCompare(b.date);
|
|
28
|
+
});
|
|
29
|
+
// Create a map from sorted index to original index
|
|
30
|
+
const sortedToOriginalIndex = new Map();
|
|
31
|
+
sortedTransactions.forEach((tx, sortedIdx) => {
|
|
32
|
+
const originalIdx = parsed.transactions.indexOf(tx);
|
|
33
|
+
sortedToOriginalIndex.set(sortedIdx, originalIdx);
|
|
34
|
+
});
|
|
35
|
+
for (let sortedIdx = 0; sortedIdx < sortedTransactions.length; sortedIdx++) {
|
|
36
|
+
const transaction = sortedTransactions[sortedIdx];
|
|
37
|
+
const txIndex = sortedToOriginalIndex.get(sortedIdx);
|
|
38
|
+
const accountsInTransaction = new Set();
|
|
39
|
+
// Count each account once per transaction
|
|
40
|
+
for (const posting of transaction.postings) {
|
|
41
|
+
accountsInTransaction.add(posting.account);
|
|
42
|
+
}
|
|
43
|
+
// Increment count for each unique account in this transaction
|
|
44
|
+
for (const account of accountsInTransaction) {
|
|
45
|
+
globalCounts.set(account, (globalCounts.get(account) || 0) + 1);
|
|
46
|
+
}
|
|
47
|
+
// Store snapshot of counts for this transaction
|
|
48
|
+
result.set(txIndex, new Map(globalCounts));
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Provide code lenses for a document
|
|
54
|
+
*/
|
|
55
|
+
provideCodeLenses(document, parsed, settings) {
|
|
56
|
+
const config = { ...DEFAULT_SETTINGS, ...settings };
|
|
57
|
+
const lenses = [];
|
|
58
|
+
// If transaction counts are not enabled, return early
|
|
59
|
+
if (!config.showTransactionCounts) {
|
|
60
|
+
return lenses;
|
|
61
|
+
}
|
|
62
|
+
// Calculate transaction counts
|
|
63
|
+
const transactionCounts = this.calculateTransactionCounts(parsed);
|
|
64
|
+
// Add code lenses for each transaction
|
|
65
|
+
for (let txIndex = 0; txIndex < parsed.transactions.length; txIndex++) {
|
|
66
|
+
const transaction = parsed.transactions[txIndex];
|
|
67
|
+
// Only show code lenses for transactions in the current document
|
|
68
|
+
if (transaction.sourceUri !== document.uri) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const txLine = transaction.line ?? 0;
|
|
72
|
+
// Transaction count code lens
|
|
73
|
+
const countsAtTx = transactionCounts.get(txIndex);
|
|
74
|
+
if (countsAtTx) {
|
|
75
|
+
// Show counts for accounts in this transaction
|
|
76
|
+
const accountsInTx = new Set();
|
|
77
|
+
for (const posting of transaction.postings) {
|
|
78
|
+
accountsInTx.add(posting.account);
|
|
79
|
+
}
|
|
80
|
+
const countTexts = [];
|
|
81
|
+
for (const account of accountsInTx) {
|
|
82
|
+
const count = countsAtTx.get(account) || 0;
|
|
83
|
+
countTexts.push(`${account}: ${count} tx`);
|
|
84
|
+
}
|
|
85
|
+
if (countTexts.length > 0) {
|
|
86
|
+
// Code lens - display only (command field is optional and unused)
|
|
87
|
+
lenses.push({
|
|
88
|
+
range: vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(txLine, 0), vscode_languageserver_1.Position.create(txLine, 0)),
|
|
89
|
+
command: {
|
|
90
|
+
title: `📊 ${countTexts.join(' | ')}`,
|
|
91
|
+
command: '' // Empty command means display-only
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return lenses;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.CodeLensProvider = CodeLensProvider;
|
|
101
|
+
exports.codeLensProvider = new CodeLensProvider();
|
|
102
|
+
//# sourceMappingURL=codeLens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeLens.js","sourceRoot":"","sources":["../../src/features/codeLens.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,iEAAkE;AASlE,MAAM,gBAAgB,GAA+B;IACnD,qBAAqB,EAAE,KAAK;CAC7B,CAAC;AAEF,MAAa,gBAAgB;IAC3B;;;OAGG;IACK,0BAA0B,CAAC,MAAsB;QACvD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;QACtD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE/C,4DAA4D;QAC5D,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,mDAAmD;QACnD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACxD,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpD,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3E,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACtD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;YAEhD,0CAA0C;YAC1C,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC3C,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YAED,8DAA8D;YAC9D,KAAK,MAAM,OAAO,IAAI,qBAAqB,EAAE,CAAC;gBAC5C,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,CAAC;YAED,gDAAgD;YAChD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,QAAsB,EACtB,MAAsB,EACtB,QAA2B;QAE3B,MAAM,MAAM,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,QAAQ,EAAE,CAAC;QACpD,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,sDAAsD;QACtD,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,+BAA+B;QAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAElE,uCAAuC;QACvC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAEjD,iEAAiE;YACjE,IAAI,WAAW,CAAC,SAAS,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;YAErC,8BAA8B;YAC9B,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAElD,IAAI,UAAU,EAAE,CAAC;gBACf,+CAA+C;gBAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBACvC,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;oBAC3C,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,UAAU,GAAa,EAAE,CAAC;gBAChC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC3C,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC;gBAC7C,CAAC;gBAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,kEAAkE;oBAClE,MAAM,CAAC,IAAI,CAAC;wBACV,KAAK,EAAE,6BAAK,CAAC,MAAM,CACjB,gCAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAC1B,gCAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAC3B;wBACD,OAAO,EAAE;4BACP,KAAK,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;4BACrC,OAAO,EAAE,EAAE,CAAE,mCAAmC;yBACjD;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA3GD,4CA2GC;AAEY,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -27,28 +27,40 @@ export declare class CompletionProvider {
|
|
|
27
27
|
/**
|
|
28
28
|
* Update the list of known accounts
|
|
29
29
|
*/
|
|
30
|
-
updateAccounts(accounts:
|
|
30
|
+
updateAccounts(accounts: Map<string, {
|
|
31
|
+
name: string;
|
|
32
|
+
declared: boolean;
|
|
33
|
+
}> | Array<{
|
|
31
34
|
name: string;
|
|
32
35
|
declared: boolean;
|
|
33
36
|
}>): void;
|
|
34
37
|
/**
|
|
35
38
|
* Update the list of known payees
|
|
36
39
|
*/
|
|
37
|
-
updatePayees(payees:
|
|
40
|
+
updatePayees(payees: Map<string, {
|
|
41
|
+
name: string;
|
|
42
|
+
declared: boolean;
|
|
43
|
+
}> | Array<{
|
|
38
44
|
name: string;
|
|
39
45
|
declared: boolean;
|
|
40
46
|
}>): void;
|
|
41
47
|
/**
|
|
42
48
|
* Update the list of known commodities
|
|
43
49
|
*/
|
|
44
|
-
updateCommodities(commodities:
|
|
50
|
+
updateCommodities(commodities: Map<string, {
|
|
51
|
+
name: string;
|
|
52
|
+
declared: boolean;
|
|
53
|
+
}> | Array<{
|
|
45
54
|
name: string;
|
|
46
55
|
declared: boolean;
|
|
47
56
|
}>): void;
|
|
48
57
|
/**
|
|
49
58
|
* Update the list of known tags
|
|
50
59
|
*/
|
|
51
|
-
updateTags(tags:
|
|
60
|
+
updateTags(tags: Map<string, {
|
|
61
|
+
name: string;
|
|
62
|
+
declared: boolean;
|
|
63
|
+
}> | Array<{
|
|
52
64
|
name: string;
|
|
53
65
|
declared: boolean;
|
|
54
66
|
}>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/features/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/features/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAsB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAmB,MAAM,gCAAgC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,UAAU,kBAAkB;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAkD;IAClE,OAAO,CAAC,MAAM,CAAkD;IAChE,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,IAAI,CAAkD;IAE9D;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAItH;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAIlH;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAI5H;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAI9G;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,cAAc,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,cAAc,EAAE;IAiEnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiB/B;;OAEG;IACH,uBAAuB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,cAAc,EAAE;IAWxE;;OAEG;IACH,iBAAiB,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,cAAc,EAAE;IAYlE;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkEjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsBlC;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAgDnC;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -46,6 +46,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
exports.completionProvider = exports.CompletionProvider = void 0;
|
|
48
48
|
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
49
|
+
const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
|
|
49
50
|
const fs = __importStar(require("fs"));
|
|
50
51
|
const path = __importStar(require("path"));
|
|
51
52
|
const transactionAnalyzer_1 = require("./transactionAnalyzer");
|
|
@@ -60,25 +61,25 @@ class CompletionProvider {
|
|
|
60
61
|
* Update the list of known accounts
|
|
61
62
|
*/
|
|
62
63
|
updateAccounts(accounts) {
|
|
63
|
-
this.accounts = accounts;
|
|
64
|
+
this.accounts = Array.isArray(accounts) ? accounts : Array.from(accounts.values());
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* Update the list of known payees
|
|
67
68
|
*/
|
|
68
69
|
updatePayees(payees) {
|
|
69
|
-
this.payees = payees;
|
|
70
|
+
this.payees = Array.isArray(payees) ? payees : Array.from(payees.values());
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
72
73
|
* Update the list of known commodities
|
|
73
74
|
*/
|
|
74
75
|
updateCommodities(commodities) {
|
|
75
|
-
this.commodities = commodities;
|
|
76
|
+
this.commodities = Array.isArray(commodities) ? commodities : Array.from(commodities.values());
|
|
76
77
|
}
|
|
77
78
|
/**
|
|
78
79
|
* Update the list of known tags
|
|
79
80
|
*/
|
|
80
81
|
updateTags(tags) {
|
|
81
|
-
this.tags = tags;
|
|
82
|
+
this.tags = Array.isArray(tags) ? tags : Array.from(tags.values());
|
|
82
83
|
}
|
|
83
84
|
/**
|
|
84
85
|
* Get completion items for the current position
|
|
@@ -111,13 +112,23 @@ class CompletionProvider {
|
|
|
111
112
|
}
|
|
112
113
|
// Otherwise, suggest accounts for posting line
|
|
113
114
|
// Try to get smart suggestions based on current transaction context
|
|
115
|
+
// Calculate range for replacement
|
|
116
|
+
const accountMatch = line.match(/^\s+(.*)$/);
|
|
117
|
+
let range;
|
|
118
|
+
if (accountMatch) {
|
|
119
|
+
const startChar = line.length - accountMatch[1].length;
|
|
120
|
+
range = {
|
|
121
|
+
start: { line: position.line, character: startChar },
|
|
122
|
+
end: position
|
|
123
|
+
};
|
|
124
|
+
}
|
|
114
125
|
if (parsed) {
|
|
115
126
|
const payee = this.getCurrentTransactionPayee(document, position);
|
|
116
127
|
if (payee) {
|
|
117
|
-
return this.getSmartAccountCompletions(payee, parsed, settings);
|
|
128
|
+
return this.getSmartAccountCompletions(payee, parsed, settings, range);
|
|
118
129
|
}
|
|
119
130
|
}
|
|
120
|
-
return this.getAccountCompletions(settings);
|
|
131
|
+
return this.getAccountCompletions(settings, range);
|
|
121
132
|
}
|
|
122
133
|
// Transaction header - suggest payees
|
|
123
134
|
if (/^\d{4}[-/]\d{2}[-/]\d{2}/.test(line) && !commentMatch) {
|
|
@@ -132,13 +143,14 @@ class CompletionProvider {
|
|
|
132
143
|
/**
|
|
133
144
|
* Get account name completions
|
|
134
145
|
*/
|
|
135
|
-
getAccountCompletions(settings) {
|
|
146
|
+
getAccountCompletions(settings, range) {
|
|
136
147
|
const onlyDeclared = settings?.onlyDeclaredAccounts ?? true;
|
|
137
148
|
const filtered = onlyDeclared ? this.accounts.filter(a => a.declared) : this.accounts;
|
|
138
149
|
return filtered.map(account => ({
|
|
139
150
|
label: account.name,
|
|
140
151
|
kind: vscode_languageserver_1.CompletionItemKind.Field,
|
|
141
|
-
detail: 'Account'
|
|
152
|
+
detail: 'Account',
|
|
153
|
+
textEdit: range ? vscode_languageserver_protocol_1.TextEdit.replace(range, account.name) : undefined
|
|
142
154
|
}));
|
|
143
155
|
}
|
|
144
156
|
/**
|
|
@@ -283,7 +295,7 @@ class CompletionProvider {
|
|
|
283
295
|
/**
|
|
284
296
|
* Get smart account completions based on payee history
|
|
285
297
|
*/
|
|
286
|
-
getSmartAccountCompletions(payee, parsed, settings) {
|
|
298
|
+
getSmartAccountCompletions(payee, parsed, settings, range) {
|
|
287
299
|
// Analyze the parsed document to build patterns
|
|
288
300
|
transactionAnalyzer_1.transactionAnalyzer.analyze(parsed);
|
|
289
301
|
// Get accounts historically used with this payee
|
|
@@ -299,7 +311,8 @@ class CompletionProvider {
|
|
|
299
311
|
const item = {
|
|
300
312
|
label: account.name,
|
|
301
313
|
kind: vscode_languageserver_1.CompletionItemKind.Field,
|
|
302
|
-
detail: 'Account'
|
|
314
|
+
detail: 'Account',
|
|
315
|
+
textEdit: range ? vscode_languageserver_protocol_1.TextEdit.replace(range, account.name) : undefined
|
|
303
316
|
};
|
|
304
317
|
// Add sort text to prioritize suggested accounts
|
|
305
318
|
if (suggestedAccounts.has(account.name)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/features/completion.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iEAA2E;
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/features/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/features/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/features/definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,QAAQ,GAAG,IAAI;CAkDpH;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|
|
@@ -30,25 +30,25 @@ class DefinitionProvider {
|
|
|
30
30
|
if (!token)
|
|
31
31
|
return null;
|
|
32
32
|
// Search accounts
|
|
33
|
-
const account = parsed.accounts.
|
|
33
|
+
const account = parsed.accounts.get(token);
|
|
34
34
|
if (account && account.sourceUri) {
|
|
35
35
|
const lineNum = account.line ?? 0;
|
|
36
36
|
return vscode_languageserver_1.Location.create(account.sourceUri, vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(lineNum, 0), vscode_languageserver_1.Position.create(lineNum, 0)));
|
|
37
37
|
}
|
|
38
38
|
// Search payees
|
|
39
|
-
const payee = parsed.payees.
|
|
39
|
+
const payee = parsed.payees.get(token);
|
|
40
40
|
if (payee && payee.sourceUri) {
|
|
41
41
|
const lineNum = payee.line ?? 0;
|
|
42
42
|
return vscode_languageserver_1.Location.create(payee.sourceUri, vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(lineNum, 0), vscode_languageserver_1.Position.create(lineNum, 0)));
|
|
43
43
|
}
|
|
44
44
|
// Search commodities
|
|
45
|
-
const commodity = parsed.commodities.find(c => c.
|
|
45
|
+
const commodity = parsed.commodities.get(token) || Array.from(parsed.commodities.values()).find(c => c.format?.symbol === token);
|
|
46
46
|
if (commodity && commodity.sourceUri) {
|
|
47
47
|
const lineNum = commodity.line ?? 0;
|
|
48
48
|
return vscode_languageserver_1.Location.create(commodity.sourceUri, vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(lineNum, 0), vscode_languageserver_1.Position.create(lineNum, 0)));
|
|
49
49
|
}
|
|
50
50
|
// Search tags
|
|
51
|
-
const tag = parsed.tags.
|
|
51
|
+
const tag = parsed.tags.get(token);
|
|
52
52
|
if (tag && tag.sourceUri) {
|
|
53
53
|
const lineNum = tag.line ?? 0;
|
|
54
54
|
return vscode_languageserver_1.Location.create(tag.sourceUri, vscode_languageserver_1.Range.create(vscode_languageserver_1.Position.create(lineNum, 0), vscode_languageserver_1.Position.create(lineNum, 0)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/features/definition.ts"],"names":[],"mappings":";;;AAAA,iEAAkE;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/features/definition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foldingRanges.d.ts","sourceRoot":"","sources":["../../src/features/foldingRanges.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAoB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,qBAAa,qBAAqB;IAChC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,GAAG,YAAY,EAAE;IAavF;;;OAGG;IACH,OAAO,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"foldingRanges.d.ts","sourceRoot":"","sources":["../../src/features/foldingRanges.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAoB,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,qBAAa,qBAAqB;IAChC;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,GAAG,YAAY,EAAE;IAavF;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAiDnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAwChC;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
|
|
@@ -18,7 +18,7 @@ class FoldingRangesProvider {
|
|
|
18
18
|
const foldingRanges = [];
|
|
19
19
|
const lines = document.getText().split('\n');
|
|
20
20
|
// Add folding ranges for transactions
|
|
21
|
-
foldingRanges.push(...this.getTransactionFoldingRanges(lines, parsedDoc));
|
|
21
|
+
foldingRanges.push(...this.getTransactionFoldingRanges(document, lines, parsedDoc));
|
|
22
22
|
// Add folding ranges for comment blocks
|
|
23
23
|
foldingRanges.push(...this.getCommentFoldingRanges(lines));
|
|
24
24
|
return foldingRanges;
|
|
@@ -27,11 +27,15 @@ class FoldingRangesProvider {
|
|
|
27
27
|
* Get folding ranges for transactions
|
|
28
28
|
* Transactions can be folded to hide their postings
|
|
29
29
|
*/
|
|
30
|
-
getTransactionFoldingRanges(lines, parsedDoc) {
|
|
30
|
+
getTransactionFoldingRanges(document, lines, parsedDoc) {
|
|
31
31
|
const ranges = [];
|
|
32
32
|
for (const transaction of parsedDoc.transactions) {
|
|
33
33
|
if (transaction.line === undefined)
|
|
34
34
|
continue;
|
|
35
|
+
// Only fold transactions from the current document (skip if from workspace parsing)
|
|
36
|
+
if (transaction.sourceUri !== document.uri) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
35
39
|
// Find the last posting line for this transaction
|
|
36
40
|
const startLine = transaction.line;
|
|
37
41
|
let endLine = startLine;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foldingRanges.js","sourceRoot":"","sources":["../../src/features/foldingRanges.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,qDAA4E;AAG5E,0CAA2E;AAE3E,MAAa,qBAAqB;IAChC;;OAEG;IACH,oBAAoB,CAAC,QAAsB,EAAE,SAAyB;QACpE,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,sCAAsC;QACtC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"foldingRanges.js","sourceRoot":"","sources":["../../src/features/foldingRanges.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,10 @@ export declare class FormattingProvider {
|
|
|
25
25
|
* Format an entire document
|
|
26
26
|
*/
|
|
27
27
|
formatDocument(document: TextDocument, parsed: ParsedDocument, _lspOptions: LSPFormattingOptions, userOptions?: Partial<FormattingOptions>): TextEdit[];
|
|
28
|
+
private formatTransactionLines;
|
|
29
|
+
private layoutAmount;
|
|
30
|
+
private formatIntegerAmount;
|
|
31
|
+
private formatDecimalAmount;
|
|
28
32
|
/**
|
|
29
33
|
* Format a range of lines
|
|
30
34
|
*/
|
|
@@ -41,26 +45,6 @@ export declare class FormattingProvider {
|
|
|
41
45
|
* Format a directive
|
|
42
46
|
*/
|
|
43
47
|
private formatDirective;
|
|
44
|
-
/**
|
|
45
|
-
* Parse a posting into its layout components
|
|
46
|
-
*/
|
|
47
|
-
private parsePostingLayout;
|
|
48
|
-
/**
|
|
49
|
-
* Parse an amount into its components for column alignment
|
|
50
|
-
*/
|
|
51
|
-
private parseAmount;
|
|
52
|
-
/**
|
|
53
|
-
* Parse a cost into its components for formatting
|
|
54
|
-
*/
|
|
55
|
-
private parseCost;
|
|
56
|
-
/**
|
|
57
|
-
* Format all postings in a transaction with column alignment
|
|
58
|
-
*/
|
|
59
|
-
private formatTransactionPostings;
|
|
60
|
-
/**
|
|
61
|
-
* Get the number of decimal places in a number
|
|
62
|
-
*/
|
|
63
|
-
private getDecimalPlaces;
|
|
64
48
|
/**
|
|
65
49
|
* Find the commodity format from parsed document
|
|
66
50
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/features/formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAU,cAAc,EAA2C,MAAM,UAAU,CAAC;AAI3F,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AA8BD,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,cAAc,CACZ,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAoEb,OAAO,CAAC,sBAAsB;IA0N9B,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAMb;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,QAAQ,EACnB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,oBAAoB,EACjC,WAAW,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC3C,QAAQ,EAAE;IAUb;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB;AAED,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|