hledger-lsp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +632 -0
  3. package/out/extension.d.ts +1 -0
  4. package/out/extension.d.ts.map +1 -0
  5. package/out/extension.js +2 -0
  6. package/out/extension.js.map +1 -0
  7. package/out/features/codeActions.d.ts +73 -0
  8. package/out/features/codeActions.d.ts.map +1 -0
  9. package/out/features/codeActions.js +417 -0
  10. package/out/features/codeActions.js.map +1 -0
  11. package/out/features/completion.d.ts +94 -0
  12. package/out/features/completion.d.ts.map +1 -0
  13. package/out/features/completion.js +323 -0
  14. package/out/features/completion.js.map +1 -0
  15. package/out/features/definition.d.ts +12 -0
  16. package/out/features/definition.d.ts.map +1 -0
  17. package/out/features/definition.js +61 -0
  18. package/out/features/definition.js.map +1 -0
  19. package/out/features/documentLinks.d.ts +17 -0
  20. package/out/features/documentLinks.d.ts.map +1 -0
  21. package/out/features/documentLinks.js +68 -0
  22. package/out/features/documentLinks.js.map +1 -0
  23. package/out/features/findReferences.d.ts +33 -0
  24. package/out/features/findReferences.d.ts.map +1 -0
  25. package/out/features/findReferences.js +79 -0
  26. package/out/features/findReferences.js.map +1 -0
  27. package/out/features/foldingRanges.d.ts +27 -0
  28. package/out/features/foldingRanges.d.ts.map +1 -0
  29. package/out/features/foldingRanges.js +111 -0
  30. package/out/features/foldingRanges.js.map +1 -0
  31. package/out/features/formatter.d.ts +70 -0
  32. package/out/features/formatter.d.ts.map +1 -0
  33. package/out/features/formatter.js +373 -0
  34. package/out/features/formatter.js.map +1 -0
  35. package/out/features/hover.d.ts +66 -0
  36. package/out/features/hover.d.ts.map +1 -0
  37. package/out/features/hover.js +387 -0
  38. package/out/features/hover.js.map +1 -0
  39. package/out/features/inlayHints.d.ts +43 -0
  40. package/out/features/inlayHints.d.ts.map +1 -0
  41. package/out/features/inlayHints.js +221 -0
  42. package/out/features/inlayHints.js.map +1 -0
  43. package/out/features/selectionRange.d.ts +47 -0
  44. package/out/features/selectionRange.d.ts.map +1 -0
  45. package/out/features/selectionRange.js +273 -0
  46. package/out/features/selectionRange.js.map +1 -0
  47. package/out/features/semanticTokens.d.ts +83 -0
  48. package/out/features/semanticTokens.d.ts.map +1 -0
  49. package/out/features/semanticTokens.js +370 -0
  50. package/out/features/semanticTokens.js.map +1 -0
  51. package/out/features/symbols.d.ts +47 -0
  52. package/out/features/symbols.d.ts.map +1 -0
  53. package/out/features/symbols.js +249 -0
  54. package/out/features/symbols.js.map +1 -0
  55. package/out/features/transactionAnalyzer.d.ts +63 -0
  56. package/out/features/transactionAnalyzer.d.ts.map +1 -0
  57. package/out/features/transactionAnalyzer.js +127 -0
  58. package/out/features/transactionAnalyzer.js.map +1 -0
  59. package/out/features/validator.d.ts +142 -0
  60. package/out/features/validator.d.ts.map +1 -0
  61. package/out/features/validator.js +633 -0
  62. package/out/features/validator.js.map +1 -0
  63. package/out/parser/ast.d.ts +37 -0
  64. package/out/parser/ast.d.ts.map +1 -0
  65. package/out/parser/ast.js +606 -0
  66. package/out/parser/ast.js.map +1 -0
  67. package/out/parser/includes.d.ts +25 -0
  68. package/out/parser/includes.d.ts.map +1 -0
  69. package/out/parser/includes.js +106 -0
  70. package/out/parser/includes.js.map +1 -0
  71. package/out/parser/index.d.ts +54 -0
  72. package/out/parser/index.d.ts.map +1 -0
  73. package/out/parser/index.js +146 -0
  74. package/out/parser/index.js.map +1 -0
  75. package/out/server/deps.d.ts +19 -0
  76. package/out/server/deps.d.ts.map +1 -0
  77. package/out/server/deps.js +77 -0
  78. package/out/server/deps.js.map +1 -0
  79. package/out/server/settings.d.ts +60 -0
  80. package/out/server/settings.d.ts.map +1 -0
  81. package/out/server/settings.js +110 -0
  82. package/out/server/settings.js.map +1 -0
  83. package/out/server.d.ts +3 -0
  84. package/out/server.d.ts.map +1 -0
  85. package/out/server.js +420 -0
  86. package/out/server.js.map +1 -0
  87. package/out/types.d.ts +84 -0
  88. package/out/types.d.ts.map +1 -0
  89. package/out/types.js +6 -0
  90. package/out/types.js.map +1 -0
  91. package/out/utils/index.d.ts +38 -0
  92. package/out/utils/index.d.ts.map +1 -0
  93. package/out/utils/index.js +89 -0
  94. package/out/utils/index.js.map +1 -0
  95. package/out/utils/uri.d.ts +32 -0
  96. package/out/utils/uri.d.ts.map +1 -0
  97. package/out/utils/uri.js +215 -0
  98. package/out/utils/uri.js.map +1 -0
  99. package/package.json +58 -0
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultSettings = void 0;
4
+ exports.getDocumentSettings = getDocumentSettings;
5
+ exports.clearDocumentSettings = clearDocumentSettings;
6
+ exports.clearAllDocumentSettings = clearAllDocumentSettings;
7
+ exports.defaultSettings = {
8
+ maxNumberOfProblems: 1000,
9
+ hledgerPath: 'hledger',
10
+ validation: {
11
+ balance: true,
12
+ missingAmounts: true,
13
+ undeclaredAccounts: true,
14
+ undeclaredPayees: false,
15
+ undeclaredCommodities: true,
16
+ undeclaredTags: true,
17
+ dateOrdering: true,
18
+ balanceAssertions: true,
19
+ emptyTransactions: true,
20
+ invalidDates: true,
21
+ futureDates: true,
22
+ emptyDescriptions: true,
23
+ includeFiles: true,
24
+ circularIncludes: true,
25
+ },
26
+ severity: {
27
+ undeclaredAccounts: 'warning',
28
+ undeclaredPayees: 'warning',
29
+ undeclaredCommodities: 'warning',
30
+ undeclaredTags: 'information',
31
+ },
32
+ include: {
33
+ followIncludes: true,
34
+ maxDepth: 10,
35
+ },
36
+ completion: {
37
+ onlyDeclaredAccounts: true,
38
+ onlyDeclaredPayees: true,
39
+ onlyDeclaredCommodities: true,
40
+ onlyDeclaredTags: true,
41
+ },
42
+ formatting: {
43
+ indentation: 4,
44
+ maxAccountWidth: 42,
45
+ maxCommodityWidth: 4,
46
+ maxAmountWidth: 12,
47
+ minSpacing: 2,
48
+ decimalAlignColumn: 52,
49
+ assertionDecimalAlignColumn: 70,
50
+ },
51
+ inlayHints: {
52
+ showInferredAmounts: true,
53
+ showRunningBalances: true,
54
+ showCostConversions: true,
55
+ }
56
+ };
57
+ // Cache the settings of all open documents
58
+ const documentSettings = new Map();
59
+ /**
60
+ * Deep merge two objects, with values from 'source' overriding 'target'
61
+ */
62
+ function deepMerge(target, source) {
63
+ const result = { ...target };
64
+ for (const key in source) {
65
+ if (source.hasOwnProperty(key)) {
66
+ const sourceValue = source[key];
67
+ const targetValue = result[key];
68
+ if (sourceValue !== undefined && targetValue !== undefined &&
69
+ typeof sourceValue === 'object' && typeof targetValue === 'object' &&
70
+ !Array.isArray(sourceValue) && !Array.isArray(targetValue)) {
71
+ result[key] = deepMerge(targetValue, sourceValue);
72
+ }
73
+ else if (sourceValue !== undefined) {
74
+ result[key] = sourceValue;
75
+ }
76
+ }
77
+ }
78
+ return result;
79
+ }
80
+ /**
81
+ * Get settings for a document. If the client does not support workspace/configuration
82
+ * the default settings are returned.
83
+ */
84
+ function getDocumentSettings(connection, resource, hasConfigurationCapability) {
85
+ if (!hasConfigurationCapability) {
86
+ return Promise.resolve(exports.defaultSettings);
87
+ }
88
+ let result = documentSettings.get(resource);
89
+ if (!result) {
90
+ result = connection.workspace.getConfiguration({
91
+ scopeUri: resource,
92
+ section: 'hledgerLanguageServer'
93
+ }).then((userSettings) => {
94
+ // Merge user settings with defaults so unspecified settings use default values
95
+ const merged = deepMerge(exports.defaultSettings, userSettings || {});
96
+ // Lightweight log to verify that configuration is flowing from the client
97
+ connection.console.log(`Loaded hledgerLanguageServer settings for ${resource}: ${JSON.stringify(userSettings || {})}`);
98
+ return merged;
99
+ });
100
+ documentSettings.set(resource, result);
101
+ }
102
+ return result;
103
+ }
104
+ function clearDocumentSettings(resource) {
105
+ documentSettings.delete(resource);
106
+ }
107
+ function clearAllDocumentSettings() {
108
+ documentSettings.clear();
109
+ }
110
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/server/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":""}
package/out/server.js ADDED
@@ -0,0 +1,420 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const node_1 = require("vscode-languageserver/node");
5
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
6
+ const completion_1 = require("./features/completion");
7
+ const hover_1 = require("./features/hover");
8
+ const definition_1 = require("./features/definition");
9
+ const symbols_1 = require("./features/symbols");
10
+ const codeActions_1 = require("./features/codeActions");
11
+ const formatter_1 = require("./features/formatter");
12
+ const semanticTokens_1 = require("./features/semanticTokens");
13
+ const inlayHints_1 = require("./features/inlayHints");
14
+ const findReferences_1 = require("./features/findReferences");
15
+ const validator_1 = require("./features/validator");
16
+ const foldingRanges_1 = require("./features/foldingRanges");
17
+ const documentLinks_1 = require("./features/documentLinks");
18
+ const selectionRange_1 = require("./features/selectionRange");
19
+ const index_1 = require("./parser/index");
20
+ const settings_1 = require("./server/settings");
21
+ const uri_1 = require("./utils/uri");
22
+ // Create a connection for the server using Node's IPC as a transport
23
+ const connection = (0, node_1.createConnection)(node_1.ProposedFeatures.all);
24
+ // Create a simple text document manager
25
+ const documents = new node_1.TextDocuments(vscode_languageserver_textdocument_1.TextDocument);
26
+ let hasConfigurationCapability = false;
27
+ let hasWorkspaceFolderCapability = false;
28
+ let hasDiagnosticRelatedInformationCapability = false;
29
+ let hasDidChangeConfigurationDynamicRegistration = false;
30
+ let hasWorkspaceFoldersDynamicRegistration = false;
31
+ connection.onInitialize((params) => {
32
+ const capabilities = params.capabilities;
33
+ // Does the client support the `workspace/configuration` request?
34
+ hasConfigurationCapability = !!(capabilities.workspace && !!capabilities.workspace.configuration);
35
+ hasWorkspaceFolderCapability = !!(capabilities.workspace && !!capabilities.workspace.workspaceFolders);
36
+ hasDiagnosticRelatedInformationCapability = !!(capabilities.textDocument &&
37
+ capabilities.textDocument.publishDiagnostics &&
38
+ capabilities.textDocument.publishDiagnostics.relatedInformation);
39
+ // Check if client supports dynamic registration for didChangeConfiguration
40
+ hasDidChangeConfigurationDynamicRegistration = !!(capabilities.workspace &&
41
+ capabilities.workspace.didChangeConfiguration &&
42
+ capabilities.workspace.didChangeConfiguration.dynamicRegistration);
43
+ // Check if client supports dynamic registration for workspace folders
44
+ // (Not currently used, kept for future reference)
45
+ hasWorkspaceFoldersDynamicRegistration = false;
46
+ const result = {
47
+ capabilities: {
48
+ textDocumentSync: node_1.TextDocumentSyncKind.Incremental,
49
+ // Tell the client that this server supports code completion
50
+ completionProvider: {
51
+ resolveProvider: true,
52
+ triggerCharacters: [':', ' ']
53
+ },
54
+ hoverProvider: true,
55
+ definitionProvider: true,
56
+ referencesProvider: true,
57
+ documentSymbolProvider: true,
58
+ workspaceSymbolProvider: true,
59
+ codeActionProvider: true,
60
+ documentFormattingProvider: true,
61
+ documentRangeFormattingProvider: true,
62
+ documentOnTypeFormattingProvider: {
63
+ firstTriggerCharacter: '\n',
64
+ },
65
+ semanticTokensProvider: {
66
+ legend: {
67
+ tokenTypes: semanticTokens_1.tokenTypes,
68
+ tokenModifiers: semanticTokens_1.tokenModifiers
69
+ },
70
+ full: true
71
+ },
72
+ inlayHintProvider: true,
73
+ renameProvider: {
74
+ prepareProvider: true
75
+ },
76
+ foldingRangeProvider: true,
77
+ documentLinkProvider: {
78
+ resolveProvider: false
79
+ },
80
+ selectionRangeProvider: true
81
+ }
82
+ };
83
+ // Note: Workspace folders support removed to avoid warnings with clients
84
+ // that don't support dynamic registration (like Neovim)
85
+ return result;
86
+ });
87
+ connection.onInitialized(() => {
88
+ // Only use dynamic registration if the client supports it
89
+ if (hasConfigurationCapability && hasDidChangeConfigurationDynamicRegistration) {
90
+ // Register for all configuration changes dynamically
91
+ connection.client.register(node_1.DidChangeConfigurationNotification.type, undefined);
92
+ }
93
+ connection.console.log('hledger Language Server initialized');
94
+ });
95
+ // Global settings used when client does not support workspace/configuration
96
+ let globalSettings = settings_1.defaultSettings;
97
+ // include dependency functions are centralized in src/server/deps.ts
98
+ const deps_1 = require("./server/deps");
99
+ // Create a shared parser instance with caching
100
+ const sharedParser = new index_1.HledgerParser();
101
+ // Small helper to centralize parsing options and reduce duplication across handlers
102
+ function parseDocument(document) {
103
+ return sharedParser.parse(document, {
104
+ baseUri: document.uri,
105
+ fileReader
106
+ });
107
+ }
108
+ connection.onDidChangeConfiguration(change => {
109
+ if (hasConfigurationCapability) {
110
+ // Reset all cached document settings
111
+ (0, settings_1.clearAllDocumentSettings)();
112
+ connection.console.log('hledger Language Server: configuration changed (workspace/configuration), clearing settings cache');
113
+ }
114
+ else {
115
+ globalSettings = ((change.settings.hledgerLanguageServer || settings_1.defaultSettings));
116
+ connection.console.log('hledger Language Server: configuration changed (legacy settings), updating global settings');
117
+ }
118
+ // Revalidate all open text documents
119
+ documents.all().forEach(validateTextDocument);
120
+ });
121
+ // Wrapper around settings module to use connection and capability flag
122
+ function getDocumentSettings(resource) {
123
+ return (0, settings_1.getDocumentSettings)(connection, resource, hasConfigurationCapability);
124
+ }
125
+ // Only keep settings for open documents
126
+ documents.onDidClose(e => {
127
+ (0, settings_1.clearDocumentSettings)(e.document.uri);
128
+ (0, deps_1.clearDependencies)(e.document.uri);
129
+ });
130
+ // The content of a text document has changed
131
+ documents.onDidChangeContent(change => {
132
+ // Clear parser cache since a file changed
133
+ // This ensures we re-parse files with fresh data
134
+ sharedParser.clearCache();
135
+ validateTextDocument(change.document);
136
+ // Re-validate all files that depend on this one
137
+ const dependents = (0, deps_1.getDependents)(change.document.uri);
138
+ if (dependents) {
139
+ for (const dependentUri of dependents) {
140
+ const dependentDoc = documents.get(dependentUri);
141
+ if (dependentDoc) {
142
+ validateTextDocument(dependentDoc);
143
+ }
144
+ }
145
+ }
146
+ });
147
+ // dependency tracking moved to src/server/deps.ts
148
+ // Use centralized file reader implementation
149
+ const fileReader = uri_1.defaultFileReader;
150
+ async function validateTextDocument(textDocument) {
151
+ // Get document settings
152
+ const settings = (await getDocumentSettings(textDocument.uri)) ?? settings_1.defaultSettings;
153
+ // Parse the document with includes enabled (uses shared parser with caching)
154
+ const parsedDoc = parseDocument(textDocument);
155
+ // Track which files this document includes
156
+ const includedFiles = new Set();
157
+ for (const directive of parsedDoc.directives) {
158
+ if (directive.type === 'include') {
159
+ const resolvedPath = (0, uri_1.resolveIncludePath)(directive.value, textDocument.uri);
160
+ includedFiles.add(resolvedPath);
161
+ }
162
+ }
163
+ (0, deps_1.updateDependencies)(textDocument.uri, includedFiles);
164
+ // Update completion data from the parsed document (includes all included files)
165
+ completion_1.completionProvider.updateAccounts(parsedDoc.accounts.map(a => ({ name: a.name, declared: a.declared })));
166
+ completion_1.completionProvider.updatePayees(parsedDoc.payees.map(p => ({ name: p.name, declared: p.declared })));
167
+ completion_1.completionProvider.updateCommodities(parsedDoc.commodities.map(c => ({ name: c.name, declared: c.declared })));
168
+ completion_1.completionProvider.updateTags(parsedDoc.tags.map(t => ({ name: t.name, declared: t.declared })));
169
+ // Validate the document with settings
170
+ const validationResult = validator_1.validator.validate(textDocument, parsedDoc, {
171
+ baseUri: textDocument.uri,
172
+ fileReader,
173
+ settings: {
174
+ validation: settings?.validation,
175
+ severity: settings?.severity
176
+ }
177
+ });
178
+ // Send diagnostics to the client
179
+ connection.sendDiagnostics({
180
+ uri: textDocument.uri,
181
+ diagnostics: validationResult.diagnostics
182
+ });
183
+ }
184
+ // include path resolution moved to src/utils/uri.ts
185
+ // Provide completion items
186
+ connection.onCompletion(async (textDocumentPosition) => {
187
+ try {
188
+ const document = documents.get(textDocumentPosition.textDocument.uri);
189
+ if (!document) {
190
+ return [];
191
+ }
192
+ // Parse document for smart completions
193
+ const parsed = parseDocument(document);
194
+ // Get settings for completion filtering
195
+ const settings = await (0, settings_1.getDocumentSettings)(connection, textDocumentPosition.textDocument.uri, hasConfigurationCapability);
196
+ return completion_1.completionProvider.getCompletionItems(document, textDocumentPosition.position, parsed, settings?.completion);
197
+ }
198
+ catch (error) {
199
+ connection.console.error(`Error in completion: ${error}`);
200
+ return [];
201
+ }
202
+ });
203
+ // Resolve additional information for completion items
204
+ connection.onCompletionResolve((item) => {
205
+ // Completion items from CompletionProvider already have all necessary details
206
+ // This handler is kept for future extensibility
207
+ return item;
208
+ });
209
+ // Provide hover information
210
+ connection.onHover((params, token) => {
211
+ const document = documents.get(params.textDocument.uri);
212
+ if (!document)
213
+ return null;
214
+ const parsed = parseDocument(document);
215
+ const hover = hover_1.hoverProvider.provideHover(document, params.position.line, params.position.character, parsed);
216
+ return hover;
217
+ });
218
+ // Provide definition locations (go-to-definition)
219
+ connection.onDefinition((params) => {
220
+ const document = documents.get(params.textDocument.uri);
221
+ if (!document)
222
+ return null;
223
+ // Parse document with includes using server's fileReader
224
+ const parsed = parseDocument(document);
225
+ const loc = definition_1.definitionProvider.provideDefinition(document, params.position.line, params.position.character, parsed);
226
+ return loc ? [loc] : null;
227
+ });
228
+ // Provide references (find all usages)
229
+ connection.onReferences((params) => {
230
+ const document = documents.get(params.textDocument.uri);
231
+ if (!document)
232
+ return null;
233
+ // Parse document with includes using server's fileReader
234
+ const parsed = parseDocument(document);
235
+ return findReferences_1.findReferencesProvider.findReferences(document, params.position, parsed, params.context.includeDeclaration);
236
+ });
237
+ // Provide document symbols (outline view)
238
+ connection.onDocumentSymbol((params) => {
239
+ const document = documents.get(params.textDocument.uri);
240
+ if (!document)
241
+ return [];
242
+ // Parse document with includes using server's fileReader
243
+ const parsed = parseDocument(document);
244
+ return symbols_1.documentSymbolProvider.provideDocumentSymbols(document, parsed);
245
+ });
246
+ // Provide workspace symbols (project-wide search)
247
+ connection.onWorkspaceSymbol((params) => {
248
+ // Get any open document to serve as the entry point
249
+ // The parsed document will include all entities from all included files
250
+ const allDocuments = documents.all();
251
+ if (allDocuments.length === 0)
252
+ return [];
253
+ // Use the first document as the entry point for workspace-wide search
254
+ const document = allDocuments[0];
255
+ // Parse with includes to get all entities across the workspace
256
+ const parsed = parseDocument(document);
257
+ return symbols_1.workspaceSymbolProvider.provideWorkspaceSymbols(params.query, parsed);
258
+ });
259
+ // Provide code actions (quick fixes and refactorings)
260
+ connection.onCodeAction((params) => {
261
+ const document = documents.get(params.textDocument.uri);
262
+ if (!document)
263
+ return [];
264
+ // Parse document with includes
265
+ const parsed = parseDocument(document);
266
+ // Get diagnostics from the context
267
+ const diagnostics = params.context.diagnostics;
268
+ return codeActions_1.codeActionProvider.provideCodeActions(document, params.range, diagnostics, parsed);
269
+ });
270
+ // Provide document formatting
271
+ connection.onDocumentFormatting(async (params) => {
272
+ try {
273
+ const document = documents.get(params.textDocument.uri);
274
+ if (!document)
275
+ return [];
276
+ // Parse document
277
+ const parsed = parseDocument(document);
278
+ // Get formatting settings
279
+ const settings = await getDocumentSettings(params.textDocument.uri);
280
+ const formattingOptions = settings?.formatting || {};
281
+ return formatter_1.formattingProvider.formatDocument(document, parsed, params.options, formattingOptions);
282
+ }
283
+ catch (error) {
284
+ connection.console.error(`Error in document formatting: ${error}`);
285
+ return [];
286
+ }
287
+ });
288
+ // Provide range formatting
289
+ connection.onDocumentRangeFormatting(async (params) => {
290
+ try {
291
+ const document = documents.get(params.textDocument.uri);
292
+ if (!document)
293
+ return [];
294
+ // Parse document
295
+ const parsed = parseDocument(document);
296
+ // Get formatting settings
297
+ const settings = await getDocumentSettings(params.textDocument.uri);
298
+ const formattingOptions = settings?.formatting || {};
299
+ return formatter_1.formattingProvider.formatRange(document, params.range, parsed, params.options, formattingOptions);
300
+ }
301
+ catch (error) {
302
+ connection.console.error(`Error in range formatting: ${error}`);
303
+ return [];
304
+ }
305
+ });
306
+ // Provide on-type formatting
307
+ connection.onDocumentOnTypeFormatting(async (params) => {
308
+ try {
309
+ const document = documents.get(params.textDocument.uri);
310
+ if (!document)
311
+ return [];
312
+ // Parse document
313
+ const parsed = parseDocument(document);
314
+ // Get formatting settings
315
+ const settings = await getDocumentSettings(params.textDocument.uri);
316
+ const formattingOptions = settings?.formatting || {};
317
+ return formatter_1.formattingProvider.formatOnType(document, params.position, params.ch, parsed, params.options, formattingOptions);
318
+ }
319
+ catch (error) {
320
+ connection.console.error(`Error in on-type formatting: ${error}`);
321
+ return [];
322
+ }
323
+ });
324
+ // Provide semantic tokens
325
+ connection.languages.semanticTokens.on((params) => {
326
+ const document = documents.get(params.textDocument.uri);
327
+ if (!document)
328
+ return { data: [] };
329
+ // Parse document
330
+ const parsed = parseDocument(document);
331
+ const data = semanticTokens_1.semanticTokensProvider.provideSemanticTokens(document, parsed);
332
+ return { data };
333
+ });
334
+ // Provide inlay hints
335
+ connection.languages.inlayHint.on(async (params) => {
336
+ try {
337
+ const document = documents.get(params.textDocument.uri);
338
+ if (!document)
339
+ return [];
340
+ // Parse document
341
+ const parsed = parseDocument(document);
342
+ // Get settings for inlay hints
343
+ const settings = await getDocumentSettings(params.textDocument.uri);
344
+ const inlayHintsSettings = settings?.inlayHints || undefined;
345
+ return inlayHints_1.inlayHintsProvider.provideInlayHints(document, params.range, parsed, inlayHintsSettings);
346
+ }
347
+ catch (error) {
348
+ connection.console.error(`Error providing inlay hints: ${error}`);
349
+ return [];
350
+ }
351
+ });
352
+ // Prepare rename - validate that position is on a renameable item
353
+ connection.onPrepareRename((params) => {
354
+ const document = documents.get(params.textDocument.uri);
355
+ if (!document)
356
+ return null;
357
+ const parsed = parseDocument(document);
358
+ const item = codeActions_1.codeActionProvider.getItemAtCursor(document, params.position, parsed);
359
+ if (!item)
360
+ return null;
361
+ // Return the range and placeholder text
362
+ const line = document.getText().split('\n')[params.position.line];
363
+ if (!line)
364
+ return null;
365
+ // Find the item name in the line to get its range
366
+ const index = line.indexOf(item.name);
367
+ if (index === -1)
368
+ return null;
369
+ return {
370
+ range: {
371
+ start: { line: params.position.line, character: index },
372
+ end: { line: params.position.line, character: index + item.name.length }
373
+ },
374
+ placeholder: item.name
375
+ };
376
+ });
377
+ // Rename request - perform the actual rename
378
+ connection.onRenameRequest((params) => {
379
+ const document = documents.get(params.textDocument.uri);
380
+ if (!document)
381
+ return null;
382
+ const parsed = parseDocument(document);
383
+ const item = codeActions_1.codeActionProvider.getItemAtCursor(document, params.position, parsed);
384
+ if (!item)
385
+ return null;
386
+ // Create the workspace edit
387
+ return codeActions_1.codeActionProvider.createRenameEdit(document, item, params.newName, parsed);
388
+ });
389
+ // Provide folding ranges
390
+ connection.onFoldingRanges((params) => {
391
+ const document = documents.get(params.textDocument.uri);
392
+ if (!document)
393
+ return [];
394
+ // Parse document
395
+ const parsed = parseDocument(document);
396
+ return foldingRanges_1.foldingRangesProvider.provideFoldingRanges(document, parsed);
397
+ });
398
+ // Provide document links
399
+ connection.onDocumentLinks((params) => {
400
+ const document = documents.get(params.textDocument.uri);
401
+ if (!document)
402
+ return [];
403
+ // Parse document
404
+ const parsed = parseDocument(document);
405
+ return documentLinks_1.documentLinksProvider.provideDocumentLinks(document, parsed);
406
+ });
407
+ // Provide selection ranges
408
+ connection.onSelectionRanges((params) => {
409
+ const document = documents.get(params.textDocument.uri);
410
+ if (!document)
411
+ return [];
412
+ // Parse document
413
+ const parsed = parseDocument(document);
414
+ return selectionRange_1.selectionRangeProvider.provideSelectionRanges(document, params.positions, parsed) || [];
415
+ });
416
+ // Make the text document manager listen on the connection
417
+ documents.listen(connection);
418
+ // Listen on the connection
419
+ connection.listen();
420
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/out/types.d.ts ADDED
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Type definitions for hledger language structures
3
+ */
4
+ export interface Transaction {
5
+ date: string;
6
+ effectiveDate?: string;
7
+ status?: 'cleared' | 'pending' | 'unmarked';
8
+ code?: string;
9
+ description: string;
10
+ payee: string;
11
+ note: string;
12
+ comment?: string;
13
+ postings: Posting[];
14
+ tags?: Record<string, string>;
15
+ sourceUri?: string;
16
+ line?: number;
17
+ }
18
+ export interface Posting {
19
+ account: string;
20
+ amount?: Amount;
21
+ cost?: Cost;
22
+ assertion?: Amount;
23
+ comment?: string;
24
+ tags?: Record<string, string>;
25
+ }
26
+ export interface Amount {
27
+ quantity: number;
28
+ commodity: string;
29
+ }
30
+ export interface Cost {
31
+ type: 'unit' | 'total';
32
+ amount: Amount;
33
+ }
34
+ export interface Account {
35
+ name: string;
36
+ declared: boolean;
37
+ type?: 'asset' | 'liability' | 'expense' | 'income' | 'equity';
38
+ parent?: string;
39
+ children?: string[];
40
+ sourceUri?: string;
41
+ line?: number;
42
+ }
43
+ export interface Payee {
44
+ name: string;
45
+ declared: boolean;
46
+ sourceUri?: string;
47
+ line?: number;
48
+ }
49
+ export interface Commodity {
50
+ name: string;
51
+ declared: boolean;
52
+ sourceUri?: string;
53
+ format?: {
54
+ symbol?: string;
55
+ symbolOnLeft?: boolean;
56
+ spaceBetween?: boolean;
57
+ decimalMark?: '.' | ',';
58
+ thousandsSeparator?: string | null;
59
+ precision?: number | null;
60
+ };
61
+ line?: number;
62
+ }
63
+ export interface Tag {
64
+ name: string;
65
+ declared: boolean;
66
+ sourceUri?: string;
67
+ line?: number;
68
+ }
69
+ export interface Directive {
70
+ type: 'account' | 'commodity' | 'payee' | 'tag' | 'include' | 'alias';
71
+ value: string;
72
+ comment?: string;
73
+ sourceUri?: string;
74
+ line?: number;
75
+ }
76
+ export interface ParsedDocument {
77
+ transactions: Transaction[];
78
+ accounts: Account[];
79
+ directives: Directive[];
80
+ commodities: Commodity[];
81
+ payees: Payee[];
82
+ tags: Tag[];
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/out/types.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for hledger language structures
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map