driftdetect-lsp 0.9.32 → 0.9.34

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 (61) hide show
  1. package/dist/capabilities.d.ts.map +1 -0
  2. package/dist/capabilities.js +183 -0
  3. package/dist/capabilities.js.map +1 -0
  4. package/dist/commands/show-patterns.d.ts +30 -0
  5. package/dist/commands/show-patterns.d.ts.map +1 -1
  6. package/dist/commands/show-patterns.js +175 -0
  7. package/dist/commands/show-patterns.js.map +1 -0
  8. package/dist/handlers/code-actions.d.ts +32 -0
  9. package/dist/handlers/code-actions.d.ts.map +1 -1
  10. package/dist/handlers/code-actions.js +184 -0
  11. package/dist/handlers/code-actions.js.map +1 -0
  12. package/dist/handlers/code-lens.d.ts +32 -0
  13. package/dist/handlers/code-lens.d.ts.map +1 -1
  14. package/dist/handlers/code-lens.js +162 -0
  15. package/dist/handlers/code-lens.js.map +1 -0
  16. package/dist/handlers/commands.d.ts +48 -0
  17. package/dist/handlers/commands.d.ts.map +1 -1
  18. package/dist/handlers/commands.js +360 -0
  19. package/dist/handlers/commands.js.map +1 -0
  20. package/dist/handlers/diagnostics.d.ts +73 -0
  21. package/dist/handlers/diagnostics.d.ts.map +1 -1
  22. package/dist/handlers/diagnostics.js +259 -0
  23. package/dist/handlers/diagnostics.js.map +1 -0
  24. package/dist/handlers/document-sync.d.ts +37 -0
  25. package/dist/handlers/document-sync.d.ts.map +1 -1
  26. package/dist/handlers/document-sync.js +49 -0
  27. package/dist/handlers/document-sync.js.map +1 -0
  28. package/dist/handlers/hover.d.ts +30 -0
  29. package/dist/handlers/hover.d.ts.map +1 -1
  30. package/dist/handlers/hover.js +119 -0
  31. package/dist/handlers/hover.js.map +1 -0
  32. package/dist/integration/core-scanner.d.ts.map +1 -1
  33. package/dist/integration/core-scanner.js +309 -0
  34. package/dist/integration/core-scanner.js.map +1 -0
  35. package/dist/integration/pattern-store-adapter.d.ts +117 -0
  36. package/dist/integration/pattern-store-adapter.d.ts.map +1 -1
  37. package/dist/integration/pattern-store-adapter.js +349 -0
  38. package/dist/integration/pattern-store-adapter.js.map +1 -0
  39. package/dist/integration/types.d.ts +134 -0
  40. package/dist/integration/types.d.ts.map +1 -1
  41. package/dist/integration/types.js +39 -0
  42. package/dist/integration/types.js.map +1 -0
  43. package/dist/server/types.d.ts +139 -0
  44. package/dist/server/types.d.ts.map +1 -1
  45. package/dist/server/types.js +8 -0
  46. package/dist/server/types.js.map +1 -0
  47. package/dist/server.d.ts.map +1 -1
  48. package/dist/server.js +208 -0
  49. package/dist/server.js.map +1 -0
  50. package/dist/utils/diagnostic.js +263 -0
  51. package/dist/utils/diagnostic.js.map +1 -0
  52. package/dist/utils/document.d.ts +40 -0
  53. package/dist/utils/document.d.ts.map +1 -0
  54. package/dist/utils/document.js +138 -0
  55. package/dist/utils/document.js.map +1 -0
  56. package/dist/utils/index.d.ts.map +1 -0
  57. package/dist/utils/workspace.d.ts.map +1 -1
  58. package/dist/utils/workspace.js +241 -0
  59. package/dist/utils/workspace.js.map +1 -0
  60. package/package.json +13 -13
  61. package/LICENSE +0 -121
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Server Types - Core types for the LSP server
3
+ *
4
+ * These types define the server context, state, and interfaces
5
+ * used throughout the LSP implementation.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAGL,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,uBAAuB,CAAC;AAe/B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,gBAAgB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,0BAA0B;IAC1B,0BAA0B,EAAE,OAAO,CAAC;IACpC,4BAA4B,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,sBAAsB;IACtB,IAAI,IAAI,IAAI,CAAC;IACb,6BAA6B;IAC7B,aAAa,IAAI,UAAU,CAAC;IAC5B,+BAA+B;IAC/B,YAAY,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,iCAAiC;IACjC,SAAS,IAAI,OAAO,CAAC;CACtB;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAkN1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAIzE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAGL,aAAa,EAEd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAYlE,OAAO,KAAK,EACV,UAAU,EAIX,MAAM,uBAAuB,CAAC;AAM/B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,WAAW,EAAE,OAAO,CAAC;IACrB,wBAAwB;IACxB,gBAAgB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,0BAA0B;IAC1B,0BAA0B,EAAE,OAAO,CAAC;IACpC,4BAA4B,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,KAAK,IAAI,IAAI,CAAC;IACd,sBAAsB;IACtB,IAAI,IAAI,IAAI,CAAC;IACb,6BAA6B;IAC7B,aAAa,IAAI,UAAU,CAAC;IAC5B,+BAA+B;IAC/B,YAAY,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,iCAAiC;IACjC,SAAS,IAAI,OAAO,CAAC;CACtB;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAkN1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,aAAkB,GAAG,WAAW,CAIzE"}
package/dist/server.js ADDED
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Drift LSP Server
3
+ *
4
+ * Main entry point for the Language Server Protocol implementation.
5
+ * Creates and manages the LSP connection, registers handlers, and
6
+ * coordinates between the editor and Drift core engine.
7
+ *
8
+ * @requirements 27.1 - THE LSP_Server SHALL implement the Language Server Protocol specification
9
+ * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
10
+ */
11
+ import { createConnection, ProposedFeatures, TextDocuments, DidChangeConfigurationNotification, } from 'vscode-languageserver/node.js';
12
+ import { TextDocument } from 'vscode-languageserver-textdocument';
13
+ import { buildInitializeResult, clientSupportsConfiguration, clientSupportsWorkspaceFolders } from './capabilities.js';
14
+ import { createCodeActionsHandler } from './handlers/code-actions.js';
15
+ import { createCodeLensHandler } from './handlers/code-lens.js';
16
+ import { createCommandsHandler } from './handlers/commands.js';
17
+ import { createDiagnosticsHandler } from './handlers/diagnostics.js';
18
+ import { createDocumentSyncHandler } from './handlers/document-sync.js';
19
+ import { createHoverHandler } from './handlers/hover.js';
20
+ import { createInitializeHandler } from './handlers/initialize.js';
21
+ function createLogger(connection, debug) {
22
+ return {
23
+ error: (msg) => connection.console.error(`[drift-lsp] ${msg}`),
24
+ warn: (msg) => connection.console.warn(`[drift-lsp] ${msg}`),
25
+ info: (msg) => connection.console.info(`[drift-lsp] ${msg}`),
26
+ debug: (msg) => {
27
+ if (debug) {
28
+ connection.console.log(`[drift-lsp] DEBUG: ${msg}`);
29
+ }
30
+ },
31
+ };
32
+ }
33
+ // ============================================================================
34
+ // Server Factory
35
+ // ============================================================================
36
+ /**
37
+ * Create a new Drift LSP server instance
38
+ */
39
+ export function createDriftServer(options = {}) {
40
+ // Create connection
41
+ const connection = options.connection ?? createConnection(ProposedFeatures.all);
42
+ // Create document manager
43
+ const documents = new TextDocuments(TextDocument);
44
+ // Create logger
45
+ const logger = createLogger(connection, options.debug ?? false);
46
+ // Server state
47
+ const state = {
48
+ initialized: false,
49
+ workspaceFolders: [],
50
+ hasConfigurationCapability: false,
51
+ hasWorkspaceFolderCapability: false,
52
+ };
53
+ // Track running state
54
+ let isServerRunning = false;
55
+ // Diagnostic timers for debouncing
56
+ const diagnosticTimers = new Map();
57
+ // ============================================================================
58
+ // Initialize Handler
59
+ // ============================================================================
60
+ connection.onInitialize((params) => {
61
+ logger.info('Initializing Drift LSP server...');
62
+ // Check client capabilities
63
+ state.hasConfigurationCapability = clientSupportsConfiguration(params.capabilities);
64
+ state.hasWorkspaceFolderCapability = clientSupportsWorkspaceFolders(params.capabilities);
65
+ // Store workspace folders
66
+ if (params.workspaceFolders) {
67
+ state.workspaceFolders = params.workspaceFolders.map((f) => ({
68
+ uri: f.uri,
69
+ name: f.name,
70
+ }));
71
+ }
72
+ else if (params.rootUri) {
73
+ state.workspaceFolders = [{ uri: params.rootUri, name: 'workspace' }];
74
+ }
75
+ logger.info(`Workspace folders: ${state.workspaceFolders.map((f) => f.name).join(', ')}`);
76
+ return buildInitializeResult();
77
+ });
78
+ connection.onInitialized(() => {
79
+ logger.info('Drift LSP server initialized');
80
+ state.initialized = true;
81
+ // Register for configuration changes
82
+ if (state.hasConfigurationCapability) {
83
+ connection.client.register(DidChangeConfigurationNotification.type, undefined);
84
+ }
85
+ // Register for workspace folder changes
86
+ if (state.hasWorkspaceFolderCapability) {
87
+ connection.workspace.onDidChangeWorkspaceFolders((event) => {
88
+ for (const removed of event.removed) {
89
+ const idx = state.workspaceFolders.findIndex((f) => f.uri === removed.uri);
90
+ if (idx !== -1) {
91
+ state.workspaceFolders.splice(idx, 1);
92
+ }
93
+ }
94
+ for (const added of event.added) {
95
+ state.workspaceFolders.push({ uri: added.uri, name: added.name });
96
+ }
97
+ logger.info(`Workspace folders changed: +${event.added.length}, -${event.removed.length}`);
98
+ });
99
+ }
100
+ });
101
+ // ============================================================================
102
+ // Shutdown Handlers
103
+ // ============================================================================
104
+ connection.onShutdown(() => {
105
+ logger.info('Drift LSP server shutting down...');
106
+ state.initialized = false;
107
+ // Clear all diagnostic timers
108
+ for (const timer of diagnosticTimers.values()) {
109
+ clearTimeout(timer);
110
+ }
111
+ diagnosticTimers.clear();
112
+ });
113
+ connection.onExit(() => {
114
+ logger.info('Drift LSP server exiting');
115
+ isServerRunning = false;
116
+ });
117
+ // ============================================================================
118
+ // Create Handlers
119
+ // ============================================================================
120
+ // Note: Initialize handler is created for potential future use but initialization
121
+ // is currently handled inline in connection.onInitialize and connection.onInitialized
122
+ createInitializeHandler(connection, state, logger);
123
+ const diagnosticsHandler = createDiagnosticsHandler(connection, documents, state, logger);
124
+ const documentSyncHandler = createDocumentSyncHandler(connection, documents, diagnosticsHandler, logger);
125
+ const codeActionsHandler = createCodeActionsHandler(connection, documents, diagnosticsHandler, logger);
126
+ const hoverHandler = createHoverHandler(connection, documents, diagnosticsHandler, logger);
127
+ const codeLensHandler = createCodeLensHandler(connection, documents, diagnosticsHandler, logger);
128
+ const commandsHandler = createCommandsHandler(connection, documents, diagnosticsHandler, logger);
129
+ // ============================================================================
130
+ // Register Handlers
131
+ // ============================================================================
132
+ function registerHandlers() {
133
+ logger.debug('Registering LSP handlers...');
134
+ // Document sync events
135
+ documents.onDidChangeContent((event) => {
136
+ documentSyncHandler.onDidChangeContent(event);
137
+ });
138
+ documents.onDidOpen((event) => {
139
+ documentSyncHandler.onDidOpen(event.document);
140
+ });
141
+ documents.onDidSave((event) => {
142
+ documentSyncHandler.onDidSave(event.document);
143
+ });
144
+ documents.onDidClose((event) => {
145
+ documentSyncHandler.onDidClose(event.document);
146
+ });
147
+ // Code actions
148
+ connection.onCodeAction(codeActionsHandler.onCodeAction);
149
+ connection.onCodeActionResolve(codeActionsHandler.onCodeActionResolve);
150
+ // Hover
151
+ connection.onHover(hoverHandler.onHover);
152
+ // Code lens
153
+ connection.onCodeLens(codeLensHandler.onCodeLens);
154
+ connection.onCodeLensResolve(codeLensHandler.onCodeLensResolve);
155
+ // Commands
156
+ connection.onExecuteCommand(commandsHandler.onExecuteCommand);
157
+ // Start listening on documents
158
+ documents.listen(connection);
159
+ logger.debug('LSP handlers registered');
160
+ }
161
+ // ============================================================================
162
+ // Server Interface
163
+ // ============================================================================
164
+ return {
165
+ start() {
166
+ if (isServerRunning) {
167
+ logger.warn('Server already running');
168
+ return;
169
+ }
170
+ logger.info('Starting Drift LSP server...');
171
+ registerHandlers();
172
+ connection.listen();
173
+ isServerRunning = true;
174
+ },
175
+ stop() {
176
+ if (!isServerRunning) {
177
+ logger.warn('Server not running');
178
+ return;
179
+ }
180
+ logger.info('Stopping Drift LSP server...');
181
+ // Clear diagnostic timers
182
+ for (const timer of diagnosticTimers.values()) {
183
+ clearTimeout(timer);
184
+ }
185
+ diagnosticTimers.clear();
186
+ connection.dispose();
187
+ isServerRunning = false;
188
+ },
189
+ getConnection() {
190
+ return connection;
191
+ },
192
+ getDocuments() {
193
+ return documents;
194
+ },
195
+ isRunning() {
196
+ return isServerRunning;
197
+ },
198
+ };
199
+ }
200
+ /**
201
+ * Create and start a Drift LSP server
202
+ */
203
+ export function startDriftServer(options = {}) {
204
+ const server = createDriftServer(options);
205
+ server.start();
206
+ return server;
207
+ }
208
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Diagnostic Utilities - Diagnostic helpers
3
+ * @requirements 27.3
4
+ */
5
+ // ============================================================================
6
+ // Diagnostic Creation
7
+ // ============================================================================
8
+ /**
9
+ * Create a drift diagnostic
10
+ */
11
+ export function createDiagnostic(violationId, patternId, message, range, severity = 'warning') {
12
+ return {
13
+ violationId,
14
+ patternId,
15
+ severity,
16
+ message,
17
+ range,
18
+ source: 'drift',
19
+ code: patternId,
20
+ quickFixes: [],
21
+ };
22
+ }
23
+ /**
24
+ * Create an error diagnostic
25
+ */
26
+ export function createErrorDiagnostic(violationId, patternId, message, range) {
27
+ return createDiagnostic(violationId, patternId, message, range, 'error');
28
+ }
29
+ /**
30
+ * Create a warning diagnostic
31
+ */
32
+ export function createWarningDiagnostic(violationId, patternId, message, range) {
33
+ return createDiagnostic(violationId, patternId, message, range, 'warning');
34
+ }
35
+ /**
36
+ * Create an info diagnostic
37
+ */
38
+ export function createInfoDiagnostic(violationId, patternId, message, range) {
39
+ return createDiagnostic(violationId, patternId, message, range, 'info');
40
+ }
41
+ /**
42
+ * Create a hint diagnostic
43
+ */
44
+ export function createHintDiagnostic(violationId, patternId, message, range) {
45
+ return createDiagnostic(violationId, patternId, message, range, 'hint');
46
+ }
47
+ // ============================================================================
48
+ // Diagnostic Filtering
49
+ // ============================================================================
50
+ /**
51
+ * Filter diagnostics by severity
52
+ */
53
+ export function filterBySeverity(diagnostics, severities) {
54
+ return diagnostics.filter((d) => severities.includes(d.severity));
55
+ }
56
+ /**
57
+ * Filter diagnostics by pattern
58
+ */
59
+ export function filterByPattern(diagnostics, patternIds) {
60
+ return diagnostics.filter((d) => patternIds.includes(d.patternId));
61
+ }
62
+ /**
63
+ * Filter diagnostics by range
64
+ */
65
+ export function filterByRange(diagnostics, range) {
66
+ return diagnostics.filter((d) => rangesOverlap(d.range, range));
67
+ }
68
+ /**
69
+ * Filter diagnostics by line
70
+ */
71
+ export function filterByLine(diagnostics, line) {
72
+ return diagnostics.filter((d) => d.range.start.line <= line && d.range.end.line >= line);
73
+ }
74
+ // ============================================================================
75
+ // Diagnostic Sorting
76
+ // ============================================================================
77
+ /**
78
+ * Sort diagnostics by position
79
+ */
80
+ export function sortByPosition(diagnostics) {
81
+ return [...diagnostics].sort((a, b) => {
82
+ const lineDiff = a.range.start.line - b.range.start.line;
83
+ if (lineDiff !== 0) {
84
+ return lineDiff;
85
+ }
86
+ return a.range.start.character - b.range.start.character;
87
+ });
88
+ }
89
+ /**
90
+ * Sort diagnostics by severity
91
+ */
92
+ export function sortBySeverity(diagnostics) {
93
+ const severityOrder = {
94
+ error: 0,
95
+ warning: 1,
96
+ info: 2,
97
+ hint: 3,
98
+ };
99
+ return [...diagnostics].sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
100
+ }
101
+ /**
102
+ * Sort diagnostics by pattern
103
+ */
104
+ export function sortByPattern(diagnostics) {
105
+ return [...diagnostics].sort((a, b) => a.patternId.localeCompare(b.patternId));
106
+ }
107
+ // ============================================================================
108
+ // Diagnostic Grouping
109
+ // ============================================================================
110
+ /**
111
+ * Group diagnostics by severity
112
+ */
113
+ export function groupBySeverity(diagnostics) {
114
+ const groups = new Map();
115
+ for (const diagnostic of diagnostics) {
116
+ const group = groups.get(diagnostic.severity) ?? [];
117
+ group.push(diagnostic);
118
+ groups.set(diagnostic.severity, group);
119
+ }
120
+ return groups;
121
+ }
122
+ /**
123
+ * Group diagnostics by pattern
124
+ */
125
+ export function groupByPattern(diagnostics) {
126
+ const groups = new Map();
127
+ for (const diagnostic of diagnostics) {
128
+ const group = groups.get(diagnostic.patternId) ?? [];
129
+ group.push(diagnostic);
130
+ groups.set(diagnostic.patternId, group);
131
+ }
132
+ return groups;
133
+ }
134
+ /**
135
+ * Group diagnostics by line
136
+ */
137
+ export function groupByLine(diagnostics) {
138
+ const groups = new Map();
139
+ for (const diagnostic of diagnostics) {
140
+ const line = diagnostic.range.start.line;
141
+ const group = groups.get(line) ?? [];
142
+ group.push(diagnostic);
143
+ groups.set(line, group);
144
+ }
145
+ return groups;
146
+ }
147
+ // ============================================================================
148
+ // Diagnostic Statistics
149
+ // ============================================================================
150
+ /**
151
+ * Get diagnostic statistics
152
+ */
153
+ export function getDiagnosticStats(diagnostics) {
154
+ const bySeverity = {
155
+ error: 0,
156
+ warning: 0,
157
+ info: 0,
158
+ hint: 0,
159
+ };
160
+ const byPattern = {};
161
+ const affectedLines = new Set();
162
+ for (const diagnostic of diagnostics) {
163
+ bySeverity[diagnostic.severity]++;
164
+ byPattern[diagnostic.patternId] = (byPattern[diagnostic.patternId] ?? 0) + 1;
165
+ for (let line = diagnostic.range.start.line; line <= diagnostic.range.end.line; line++) {
166
+ affectedLines.add(line);
167
+ }
168
+ }
169
+ return {
170
+ total: diagnostics.length,
171
+ bySeverity,
172
+ byPattern,
173
+ uniquePatterns: Object.keys(byPattern).length,
174
+ affectedLines: affectedLines.size,
175
+ };
176
+ }
177
+ // ============================================================================
178
+ // Helper Functions
179
+ // ============================================================================
180
+ /**
181
+ * Check if two ranges overlap
182
+ */
183
+ function rangesOverlap(a, b) {
184
+ // a ends before b starts
185
+ if (a.end.line < b.start.line) {
186
+ return false;
187
+ }
188
+ if (a.end.line === b.start.line && a.end.character < b.start.character) {
189
+ return false;
190
+ }
191
+ // b ends before a starts
192
+ if (b.end.line < a.start.line) {
193
+ return false;
194
+ }
195
+ if (b.end.line === a.start.line && b.end.character < a.start.character) {
196
+ return false;
197
+ }
198
+ return true;
199
+ }
200
+ /**
201
+ * Merge overlapping diagnostics
202
+ */
203
+ export function mergeOverlapping(diagnostics) {
204
+ if (diagnostics.length <= 1) {
205
+ return diagnostics;
206
+ }
207
+ const sorted = sortByPosition(diagnostics);
208
+ const first = sorted[0];
209
+ if (!first) {
210
+ return diagnostics;
211
+ }
212
+ const merged = [first];
213
+ for (let i = 1; i < sorted.length; i++) {
214
+ const current = sorted[i];
215
+ const last = merged[merged.length - 1];
216
+ if (!current || !last) {
217
+ continue;
218
+ }
219
+ if (rangesOverlap(last.range, current.range) && last.patternId === current.patternId) {
220
+ // Merge ranges
221
+ last.range = {
222
+ start: {
223
+ line: Math.min(last.range.start.line, current.range.start.line),
224
+ character: last.range.start.line < current.range.start.line
225
+ ? last.range.start.character
226
+ : current.range.start.line < last.range.start.line
227
+ ? current.range.start.character
228
+ : Math.min(last.range.start.character, current.range.start.character),
229
+ },
230
+ end: {
231
+ line: Math.max(last.range.end.line, current.range.end.line),
232
+ character: last.range.end.line > current.range.end.line
233
+ ? last.range.end.character
234
+ : current.range.end.line > last.range.end.line
235
+ ? current.range.end.character
236
+ : Math.max(last.range.end.character, current.range.end.character),
237
+ },
238
+ };
239
+ // Merge quick fixes
240
+ last.quickFixes = [...last.quickFixes, ...current.quickFixes];
241
+ }
242
+ else {
243
+ merged.push(current);
244
+ }
245
+ }
246
+ return merged;
247
+ }
248
+ /**
249
+ * Deduplicate diagnostics
250
+ */
251
+ export function deduplicate(diagnostics) {
252
+ const seen = new Set();
253
+ const result = [];
254
+ for (const diagnostic of diagnostics) {
255
+ const key = `${diagnostic.patternId}:${diagnostic.range.start.line}:${diagnostic.range.start.character}`;
256
+ if (!seen.has(key)) {
257
+ seen.add(key);
258
+ result.push(diagnostic);
259
+ }
260
+ }
261
+ return result;
262
+ }
263
+ //# sourceMappingURL=diagnostic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/utils/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Document Utilities
3
+ *
4
+ * Helper functions for working with LSP text documents.
5
+ */
6
+ import type { Position, Range } from 'vscode-languageserver';
7
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
8
+ /**
9
+ * Get the text at a specific range in a document
10
+ */
11
+ export declare function getTextAtRange(document: TextDocument, range: Range): string;
12
+ /**
13
+ * Get the line text at a specific line number
14
+ */
15
+ export declare function getLineText(document: TextDocument, line: number): string;
16
+ /**
17
+ * Get the word at a specific position
18
+ */
19
+ export declare function getWordAtPosition(document: TextDocument, position: Position): string | null;
20
+ /**
21
+ * Get the file name from a URI
22
+ */
23
+ export declare function getFileName(uri: string): string;
24
+ /**
25
+ * Get the file extension from a URI
26
+ */
27
+ export declare function getFileExtension(uri: string): string;
28
+ /**
29
+ * Check if a URI matches a glob pattern (simple implementation)
30
+ */
31
+ export declare function matchesGlob(uri: string, pattern: string): boolean;
32
+ /**
33
+ * Get the language ID for a file based on extension
34
+ */
35
+ export declare function getLanguageId(uri: string): string;
36
+ /**
37
+ * Check if a document is a supported language
38
+ */
39
+ export declare function isSupportedLanguage(document: TextDocument): boolean;
40
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/utils/document.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAE3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,GACjB,MAAM,GAAG,IAAI,CA+Bf;AASD;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAUjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAyBjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAmBnE"}