driftdetect-lsp 0.9.27 → 0.9.29

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 (111) hide show
  1. package/package.json +3 -3
  2. package/dist/bin/server.d.ts +0 -12
  3. package/dist/bin/server.js +0 -26
  4. package/dist/bin/server.js.map +0 -1
  5. package/dist/capabilities.d.ts +0 -91
  6. package/dist/capabilities.d.ts.map +0 -1
  7. package/dist/capabilities.js +0 -183
  8. package/dist/capabilities.js.map +0 -1
  9. package/dist/commands/approve-pattern.d.ts +0 -15
  10. package/dist/commands/approve-pattern.js +0 -83
  11. package/dist/commands/approve-pattern.js.map +0 -1
  12. package/dist/commands/create-variant.d.ts +0 -22
  13. package/dist/commands/create-variant.js +0 -109
  14. package/dist/commands/create-variant.js.map +0 -1
  15. package/dist/commands/explain-ai.d.ts +0 -11
  16. package/dist/commands/explain-ai.js +0 -144
  17. package/dist/commands/explain-ai.js.map +0 -1
  18. package/dist/commands/fix-ai.d.ts +0 -11
  19. package/dist/commands/fix-ai.js +0 -146
  20. package/dist/commands/fix-ai.js.map +0 -1
  21. package/dist/commands/ignore-once.d.ts +0 -33
  22. package/dist/commands/ignore-once.js +0 -147
  23. package/dist/commands/ignore-once.js.map +0 -1
  24. package/dist/commands/ignore-pattern.d.ts +0 -15
  25. package/dist/commands/ignore-pattern.js +0 -77
  26. package/dist/commands/ignore-pattern.js.map +0 -1
  27. package/dist/commands/index.d.ts +0 -14
  28. package/dist/commands/index.js +0 -14
  29. package/dist/commands/index.js.map +0 -1
  30. package/dist/commands/rescan.d.ts +0 -19
  31. package/dist/commands/rescan.js +0 -125
  32. package/dist/commands/rescan.js.map +0 -1
  33. package/dist/commands/show-patterns.d.ts +0 -30
  34. package/dist/commands/show-patterns.js +0 -175
  35. package/dist/commands/show-patterns.js.map +0 -1
  36. package/dist/commands/show-violations.d.ts +0 -11
  37. package/dist/commands/show-violations.js +0 -259
  38. package/dist/commands/show-violations.js.map +0 -1
  39. package/dist/handlers/code-actions.d.ts +0 -32
  40. package/dist/handlers/code-actions.js +0 -184
  41. package/dist/handlers/code-actions.js.map +0 -1
  42. package/dist/handlers/code-lens.d.ts +0 -32
  43. package/dist/handlers/code-lens.js +0 -162
  44. package/dist/handlers/code-lens.js.map +0 -1
  45. package/dist/handlers/commands.d.ts +0 -48
  46. package/dist/handlers/commands.js +0 -360
  47. package/dist/handlers/commands.js.map +0 -1
  48. package/dist/handlers/diagnostics.d.ts +0 -73
  49. package/dist/handlers/diagnostics.js +0 -259
  50. package/dist/handlers/diagnostics.js.map +0 -1
  51. package/dist/handlers/document-sync.d.ts +0 -37
  52. package/dist/handlers/document-sync.js +0 -49
  53. package/dist/handlers/document-sync.js.map +0 -1
  54. package/dist/handlers/hover.d.ts +0 -30
  55. package/dist/handlers/hover.js +0 -119
  56. package/dist/handlers/hover.js.map +0 -1
  57. package/dist/handlers/index.d.ts +0 -23
  58. package/dist/handlers/index.js +0 -16
  59. package/dist/handlers/index.js.map +0 -1
  60. package/dist/handlers/initialize.d.ts +0 -41
  61. package/dist/handlers/initialize.d.ts.map +0 -1
  62. package/dist/handlers/initialize.js +0 -33
  63. package/dist/handlers/initialize.js.map +0 -1
  64. package/dist/index.d.ts +0 -22
  65. package/dist/index.js +0 -26
  66. package/dist/index.js.map +0 -1
  67. package/dist/integration/core-scanner.d.ts +0 -89
  68. package/dist/integration/core-scanner.js +0 -309
  69. package/dist/integration/core-scanner.js.map +0 -1
  70. package/dist/integration/index.d.ts +0 -11
  71. package/dist/integration/index.js +0 -11
  72. package/dist/integration/index.js.map +0 -1
  73. package/dist/integration/pattern-store-adapter.d.ts +0 -117
  74. package/dist/integration/pattern-store-adapter.js +0 -349
  75. package/dist/integration/pattern-store-adapter.js.map +0 -1
  76. package/dist/integration/types.d.ts +0 -134
  77. package/dist/integration/types.js +0 -39
  78. package/dist/integration/types.js.map +0 -1
  79. package/dist/server/index.d.ts +0 -5
  80. package/dist/server/index.js +0 -5
  81. package/dist/server/index.js.map +0 -1
  82. package/dist/server/types.d.ts +0 -139
  83. package/dist/server/types.js +0 -8
  84. package/dist/server/types.js.map +0 -1
  85. package/dist/server.d.ts +0 -63
  86. package/dist/server.js +0 -208
  87. package/dist/server.js.map +0 -1
  88. package/dist/types/index.d.ts +0 -5
  89. package/dist/types/index.js +0 -5
  90. package/dist/types/index.js.map +0 -1
  91. package/dist/types/lsp-types.d.ts +0 -321
  92. package/dist/types/lsp-types.js +0 -274
  93. package/dist/types/lsp-types.js.map +0 -1
  94. package/dist/utils/diagnostic.d.ts +0 -84
  95. package/dist/utils/diagnostic.js +0 -256
  96. package/dist/utils/diagnostic.js.map +0 -1
  97. package/dist/utils/document.d.ts +0 -40
  98. package/dist/utils/document.d.ts.map +0 -1
  99. package/dist/utils/document.js +0 -138
  100. package/dist/utils/document.js.map +0 -1
  101. package/dist/utils/index.d.ts +0 -8
  102. package/dist/utils/index.d.ts.map +0 -1
  103. package/dist/utils/index.js +0 -8
  104. package/dist/utils/index.js.map +0 -1
  105. package/dist/utils/position.d.ts +0 -44
  106. package/dist/utils/position.d.ts.map +0 -1
  107. package/dist/utils/position.js +0 -96
  108. package/dist/utils/position.js.map +0 -1
  109. package/dist/utils/workspace.d.ts +0 -98
  110. package/dist/utils/workspace.js +0 -241
  111. package/dist/utils/workspace.js.map +0 -1
@@ -1,259 +0,0 @@
1
- /**
2
- * Diagnostics Handler
3
- *
4
- * Publishes diagnostics (squiggly lines) for pattern violations.
5
- * Manages diagnostic state and provides incremental updates.
6
- * Integrates with driftdetect-core scanner for pattern detection.
7
- *
8
- * @requirements 27.3 - THE LSP_Server SHALL publish diagnostics for violations
9
- * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
10
- */
11
- import { DiagnosticSeverity } from 'vscode-languageserver';
12
- import { CoreScanner, PatternStoreAdapter } from '../integration/index.js';
13
- // ============================================================================
14
- // Constants
15
- // ============================================================================
16
- /** Default delay before publishing diagnostics (ms) */
17
- const DEFAULT_DIAGNOSTIC_DELAY = 200;
18
- /** Maximum diagnostics per file */
19
- const MAX_DIAGNOSTICS_PER_FILE = 100;
20
- // ============================================================================
21
- // Severity Mapping
22
- // ============================================================================
23
- /**
24
- * Map Drift severity to LSP DiagnosticSeverity
25
- */
26
- function mapSeverity(severity) {
27
- switch (severity) {
28
- case 'error':
29
- return DiagnosticSeverity.Error;
30
- case 'warning':
31
- return DiagnosticSeverity.Warning;
32
- case 'info':
33
- return DiagnosticSeverity.Information;
34
- case 'hint':
35
- return DiagnosticSeverity.Hint;
36
- default:
37
- return DiagnosticSeverity.Warning;
38
- }
39
- }
40
- // ============================================================================
41
- // Handler Factory
42
- // ============================================================================
43
- /**
44
- * Create the diagnostics handler
45
- */
46
- export function createDiagnosticsHandler(connection, documents, state, logger) {
47
- // Store diagnostics by document URI
48
- const diagnosticsMap = new Map();
49
- // Store violations by document URI
50
- const violationsMap = new Map();
51
- // Timers for debounced updates
52
- const updateTimers = new Map();
53
- // Core integration instances
54
- let coreScanner = null;
55
- let patternStoreAdapter = null;
56
- /**
57
- * Convert a ViolationInfo to an LSP Diagnostic
58
- */
59
- function violationInfoToDiagnostic(violation) {
60
- return {
61
- range: violation.range,
62
- severity: mapSeverity(violation.severity),
63
- code: violation.patternId,
64
- source: 'drift',
65
- message: violation.message,
66
- data: {
67
- violationId: violation.id,
68
- patternId: violation.patternId,
69
- file: violation.file,
70
- hasQuickFix: violation.quickFix !== undefined,
71
- aiExplainAvailable: violation.aiExplainAvailable ?? false,
72
- aiFixAvailable: violation.aiFixAvailable ?? false,
73
- },
74
- };
75
- }
76
- /**
77
- * Convert ViolationInfo to Violation for backward compatibility
78
- */
79
- function violationInfoToViolation(info) {
80
- const violation = {
81
- id: info.id,
82
- patternId: info.patternId,
83
- severity: info.severity,
84
- file: info.file,
85
- range: info.range,
86
- message: info.message,
87
- expected: info.expected ?? '',
88
- actual: info.actual ?? '',
89
- aiExplainAvailable: info.aiExplainAvailable ?? false,
90
- aiFixAvailable: info.aiFixAvailable ?? false,
91
- firstSeen: new Date(),
92
- occurrences: 1,
93
- };
94
- // Add optional properties only if defined
95
- if (info.explanation !== undefined) {
96
- violation.explanation = info.explanation;
97
- }
98
- if (info.quickFix) {
99
- violation.quickFix = {
100
- title: info.quickFix.title,
101
- kind: 'quickfix',
102
- edit: { changes: {} },
103
- isPreferred: info.quickFix.isPreferred,
104
- confidence: info.quickFix.confidence,
105
- };
106
- }
107
- return violation;
108
- }
109
- /**
110
- * Scan a document for violations using the core scanner
111
- */
112
- async function scanDocument(document) {
113
- const uri = document.uri;
114
- const content = document.getText();
115
- logger.debug(`Scanning document: ${uri} (${content.length} chars)`);
116
- // If core scanner is initialized, use it
117
- if (coreScanner && coreScanner.isInitialized()) {
118
- const result = await coreScanner.scan(uri, content);
119
- // Filter violations by variants if pattern store adapter is available
120
- let violations = result.violations;
121
- if (patternStoreAdapter && patternStoreAdapter.isInitialized()) {
122
- violations = patternStoreAdapter.filterViolationsByVariants(violations);
123
- }
124
- return violations;
125
- }
126
- // Fallback: return empty array if core scanner not initialized
127
- logger.debug('Core scanner not initialized, returning empty violations');
128
- return [];
129
- }
130
- return {
131
- async publishDiagnostics(uri) {
132
- if (!state.initialized) {
133
- logger.debug('Server not initialized, skipping diagnostics');
134
- return;
135
- }
136
- const document = documents.get(uri);
137
- if (!document) {
138
- logger.debug(`Document not found: ${uri}`);
139
- return;
140
- }
141
- const startTime = Date.now();
142
- try {
143
- // Scan for violations using core scanner
144
- const violationInfos = await scanDocument(document);
145
- // Convert ViolationInfo to Violation for backward compatibility
146
- const violations = violationInfos.map(violationInfoToViolation);
147
- violationsMap.set(uri, violations);
148
- // Convert to diagnostics
149
- const diagnostics = violationInfos
150
- .slice(0, MAX_DIAGNOSTICS_PER_FILE)
151
- .map(violationInfoToDiagnostic);
152
- diagnosticsMap.set(uri, diagnostics);
153
- // Publish to client
154
- connection.sendDiagnostics({
155
- uri,
156
- version: document.version,
157
- diagnostics,
158
- });
159
- const elapsed = Date.now() - startTime;
160
- logger.debug(`Published ${diagnostics.length} diagnostics for ${uri} in ${elapsed}ms`);
161
- // Warn if we exceeded the 200ms target
162
- if (elapsed > 200) {
163
- logger.warn(`Diagnostic latency exceeded 200ms target: ${elapsed}ms`);
164
- }
165
- }
166
- catch (error) {
167
- logger.error(`Error publishing diagnostics for ${uri}: ${error}`);
168
- }
169
- },
170
- clearDiagnostics(uri) {
171
- diagnosticsMap.delete(uri);
172
- violationsMap.delete(uri);
173
- connection.sendDiagnostics({ uri, diagnostics: [] });
174
- logger.debug(`Cleared diagnostics for ${uri}`);
175
- },
176
- clearAllDiagnostics() {
177
- for (const uri of diagnosticsMap.keys()) {
178
- connection.sendDiagnostics({ uri, diagnostics: [] });
179
- }
180
- diagnosticsMap.clear();
181
- violationsMap.clear();
182
- logger.debug('Cleared all diagnostics');
183
- },
184
- getDiagnostics(uri) {
185
- return diagnosticsMap.get(uri) ?? [];
186
- },
187
- getDiagnosticAtPosition(uri, line, character) {
188
- const diagnostics = diagnosticsMap.get(uri) ?? [];
189
- return diagnostics.find((d) => {
190
- const { start, end } = d.range;
191
- // Check if position is within range
192
- if (line < start.line || line > end.line) {
193
- return false;
194
- }
195
- if (line === start.line && character < start.character) {
196
- return false;
197
- }
198
- if (line === end.line && character > end.character) {
199
- return false;
200
- }
201
- return true;
202
- });
203
- },
204
- getViolations(uri) {
205
- return violationsMap.get(uri) ?? [];
206
- },
207
- scheduleUpdate(uri, delayMs = DEFAULT_DIAGNOSTIC_DELAY) {
208
- // Cancel any existing timer
209
- const existingTimer = updateTimers.get(uri);
210
- if (existingTimer) {
211
- clearTimeout(existingTimer);
212
- }
213
- // Schedule new update
214
- const timer = setTimeout(() => {
215
- updateTimers.delete(uri);
216
- this.publishDiagnostics(uri);
217
- }, delayMs);
218
- updateTimers.set(uri, timer);
219
- },
220
- cancelUpdate(uri) {
221
- const timer = updateTimers.get(uri);
222
- if (timer) {
223
- clearTimeout(timer);
224
- updateTimers.delete(uri);
225
- }
226
- },
227
- getCoreScanner() {
228
- return coreScanner;
229
- },
230
- getPatternStoreAdapter() {
231
- return patternStoreAdapter;
232
- },
233
- async initializeCoreIntegration(config) {
234
- logger.info('Initializing core integration...');
235
- // Determine root directory from workspace folders
236
- const rootDir = state.workspaceFolders[0]?.uri
237
- ? state.workspaceFolders[0].uri.replace('file://', '')
238
- : '.';
239
- const integrationConfig = {
240
- rootDir,
241
- ...config,
242
- };
243
- try {
244
- // Initialize core scanner
245
- coreScanner = new CoreScanner(integrationConfig, logger);
246
- await coreScanner.initialize();
247
- // Initialize pattern store adapter
248
- patternStoreAdapter = new PatternStoreAdapter(integrationConfig, logger);
249
- await patternStoreAdapter.initialize();
250
- logger.info('Core integration initialized successfully');
251
- }
252
- catch (error) {
253
- logger.error(`Failed to initialize core integration: ${error}`);
254
- // Don't throw - allow LSP to continue without core integration
255
- }
256
- },
257
- };
258
- }
259
- //# sourceMappingURL=diagnostics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/handlers/diagnostics.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- /**
2
- * Document Sync Handler
3
- *
4
- * Handles document synchronization events: open, change, save, close.
5
- * Triggers diagnostic updates when documents change.
6
- *
7
- * @requirements 27.2 - THE LSP_Server SHALL support document synchronization (open, change, save, close)
8
- * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
9
- */
10
- import type { Connection, TextDocuments, TextDocumentChangeEvent } from 'vscode-languageserver';
11
- import type { TextDocument } from 'vscode-languageserver-textdocument';
12
- import type { DiagnosticsHandler } from './diagnostics.js';
13
- interface Logger {
14
- error(message: string): void;
15
- warn(message: string): void;
16
- info(message: string): void;
17
- debug(message: string): void;
18
- }
19
- /**
20
- * Document sync handler interface
21
- */
22
- export interface DocumentSyncHandler {
23
- /** Handle document open */
24
- onDidOpen(document: TextDocument): void;
25
- /** Handle document content change */
26
- onDidChangeContent(event: TextDocumentChangeEvent<TextDocument>): void;
27
- /** Handle document save */
28
- onDidSave(document: TextDocument): void;
29
- /** Handle document close */
30
- onDidClose(document: TextDocument): void;
31
- }
32
- /**
33
- * Create the document sync handler
34
- */
35
- export declare function createDocumentSyncHandler(_connection: Connection, _documents: TextDocuments<TextDocument>, diagnosticsHandler: DiagnosticsHandler, logger: Logger): DocumentSyncHandler;
36
- export {};
37
- //# sourceMappingURL=document-sync.d.ts.map
@@ -1,49 +0,0 @@
1
- /**
2
- * Document Sync Handler
3
- *
4
- * Handles document synchronization events: open, change, save, close.
5
- * Triggers diagnostic updates when documents change.
6
- *
7
- * @requirements 27.2 - THE LSP_Server SHALL support document synchronization (open, change, save, close)
8
- * @requirements 27.7 - THE LSP_Server SHALL respond to diagnostics within 200ms of file change
9
- */
10
- // ============================================================================
11
- // Handler Factory
12
- // ============================================================================
13
- /**
14
- * Create the document sync handler
15
- */
16
- export function createDocumentSyncHandler(_connection, _documents, diagnosticsHandler, logger) {
17
- return {
18
- onDidOpen(document) {
19
- const uri = document.uri;
20
- logger.debug(`Document opened: ${uri}`);
21
- // Publish diagnostics immediately for newly opened documents
22
- diagnosticsHandler.scheduleUpdate(uri, 0);
23
- },
24
- onDidChangeContent(event) {
25
- const document = event.document;
26
- const uri = document.uri;
27
- logger.debug(`Document changed: ${uri} (v${document.version})`);
28
- // Schedule diagnostic update with debouncing
29
- // This ensures we meet the 200ms latency requirement while
30
- // avoiding excessive updates during rapid typing
31
- diagnosticsHandler.scheduleUpdate(uri);
32
- },
33
- onDidSave(document) {
34
- const uri = document.uri;
35
- logger.debug(`Document saved: ${uri}`);
36
- // Publish diagnostics immediately on save
37
- diagnosticsHandler.publishDiagnostics(uri);
38
- },
39
- onDidClose(document) {
40
- const uri = document.uri;
41
- logger.debug(`Document closed: ${uri}`);
42
- // Cancel any pending updates
43
- diagnosticsHandler.cancelUpdate(uri);
44
- // Clear diagnostics for closed document
45
- diagnosticsHandler.clearDiagnostics(uri);
46
- },
47
- };
48
- }
49
- //# sourceMappingURL=document-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-sync.js","sourceRoot":"","sources":["../../src/handlers/document-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA+BH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAAuB,EACvB,UAAuC,EACvC,kBAAsC,EACtC,MAAc;IAEd,OAAO;QACL,SAAS,CAAC,QAAsB;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAExC,6DAA6D;YAC7D,kBAAkB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,kBAAkB,CAAC,KAA4C;YAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YAEzB,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,MAAM,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;YAEhE,6CAA6C;YAC7C,2DAA2D;YAC3D,iDAAiD;YACjD,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACzC,CAAC;QAED,SAAS,CAAC,QAAsB;YAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;YAEvC,0CAA0C;YAC1C,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,UAAU,CAAC,QAAsB;YAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;YACzB,MAAM,CAAC,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAExC,6BAA6B;YAC7B,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAErC,wCAAwC;YACxC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Hover Handler
3
- *
4
- * Provides hover information for pattern violations.
5
- * Shows violation details, pattern information, and available actions.
6
- *
7
- * @requirements 27.5 - THE LSP_Server SHALL provide hover information for violations
8
- */
9
- import type { Connection, TextDocuments, Hover, HoverParams } from 'vscode-languageserver';
10
- import type { TextDocument } from 'vscode-languageserver-textdocument';
11
- import type { DiagnosticsHandler } from './diagnostics.js';
12
- interface Logger {
13
- error(message: string): void;
14
- warn(message: string): void;
15
- info(message: string): void;
16
- debug(message: string): void;
17
- }
18
- /**
19
- * Hover handler interface
20
- */
21
- export interface HoverHandler {
22
- /** Handle hover request */
23
- onHover(params: HoverParams): Hover | null;
24
- }
25
- /**
26
- * Create the hover handler
27
- */
28
- export declare function createHoverHandler(_connection: Connection, _documents: TextDocuments<TextDocument>, diagnosticsHandler: DiagnosticsHandler, logger: Logger): HoverHandler;
29
- export {};
30
- //# sourceMappingURL=hover.d.ts.map
@@ -1,119 +0,0 @@
1
- /**
2
- * Hover Handler
3
- *
4
- * Provides hover information for pattern violations.
5
- * Shows violation details, pattern information, and available actions.
6
- *
7
- * @requirements 27.5 - THE LSP_Server SHALL provide hover information for violations
8
- */
9
- // ============================================================================
10
- // Helpers
11
- // ============================================================================
12
- /**
13
- * Get severity icon for display
14
- */
15
- function getSeverityIcon(severity) {
16
- switch (severity) {
17
- case 1: // Error
18
- return '🔴';
19
- case 2: // Warning
20
- return '🟡';
21
- case 3: // Information
22
- return '🔵';
23
- case 4: // Hint
24
- return '💡';
25
- default:
26
- return '⚪';
27
- }
28
- }
29
- /**
30
- * Get severity name for display
31
- */
32
- function getSeverityName(severity) {
33
- switch (severity) {
34
- case 1:
35
- return 'Error';
36
- case 2:
37
- return 'Warning';
38
- case 3:
39
- return 'Info';
40
- case 4:
41
- return 'Hint';
42
- default:
43
- return 'Unknown';
44
- }
45
- }
46
- /**
47
- * Generate hover content for a diagnostic
48
- */
49
- function generateHoverContent(diagnostic) {
50
- const lines = [];
51
- const data = diagnostic.data;
52
- // Header with severity icon
53
- const icon = getSeverityIcon(diagnostic.severity);
54
- const severityName = getSeverityName(diagnostic.severity);
55
- lines.push(`## ${icon} Drift Violation (${severityName})`);
56
- lines.push('');
57
- // Message
58
- lines.push(`**Message:** ${diagnostic.message}`);
59
- lines.push('');
60
- // Pattern information
61
- if (data) {
62
- lines.push(`**Pattern:** \`${data.patternId}\``);
63
- lines.push('');
64
- }
65
- // Divider
66
- lines.push('---');
67
- lines.push('');
68
- // Available actions
69
- lines.push('### Available Actions');
70
- lines.push('');
71
- if (data?.hasQuickFix) {
72
- lines.push('- 💡 **Quick Fix** available');
73
- }
74
- lines.push('- ✅ **Approve** this pattern');
75
- lines.push('- 🚫 **Ignore** this pattern');
76
- lines.push('- 📝 **Create Variant** for intentional deviation');
77
- if (data?.aiExplainAvailable) {
78
- lines.push('- 🤖 **Explain with AI**');
79
- }
80
- if (data?.aiFixAvailable) {
81
- lines.push('- 🔧 **Fix with AI**');
82
- }
83
- lines.push('');
84
- lines.push('---');
85
- lines.push('');
86
- lines.push('*Use Quick Fix (Ctrl+.) to see available actions*');
87
- return lines.join('\n');
88
- }
89
- // ============================================================================
90
- // Handler Factory
91
- // ============================================================================
92
- /**
93
- * Create the hover handler
94
- */
95
- export function createHoverHandler(_connection, _documents, diagnosticsHandler, logger) {
96
- return {
97
- onHover(params) {
98
- const uri = params.textDocument.uri;
99
- const position = params.position;
100
- logger.debug(`Hover request at ${uri}:${position.line}:${position.character}`);
101
- // Find diagnostic at this position
102
- const diagnostic = diagnosticsHandler.getDiagnosticAtPosition(uri, position.line, position.character);
103
- if (!diagnostic) {
104
- // No violation at this position
105
- return null;
106
- }
107
- // Generate hover content
108
- const content = generateHoverContent(diagnostic);
109
- return {
110
- contents: {
111
- kind: 'markdown',
112
- value: content,
113
- },
114
- range: diagnostic.range,
115
- };
116
- },
117
- };
118
- }
119
- //# sourceMappingURL=hover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hover.js","sourceRoot":"","sources":["../../src/handlers/hover.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * LSP Handlers Module
3
- *
4
- * Exports all LSP request and notification handlers.
5
- *
6
- * @requirements 27.1-27.7 - LSP Server Core Capabilities
7
- * @requirements 28.1-28.9 - LSP Server Commands
8
- */
9
- export { createInitializeHandler } from './initialize.js';
10
- export type { InitializeHandler } from './initialize.js';
11
- export { createDocumentSyncHandler } from './document-sync.js';
12
- export type { DocumentSyncHandler } from './document-sync.js';
13
- export { createDiagnosticsHandler } from './diagnostics.js';
14
- export type { DiagnosticsHandler, ViolationDiagnostic } from './diagnostics.js';
15
- export { createCodeActionsHandler } from './code-actions.js';
16
- export type { CodeActionsHandler } from './code-actions.js';
17
- export { createHoverHandler } from './hover.js';
18
- export type { HoverHandler } from './hover.js';
19
- export { createCodeLensHandler } from './code-lens.js';
20
- export type { CodeLensHandler } from './code-lens.js';
21
- export { createCommandsHandler } from './commands.js';
22
- export type { CommandsHandler, CommandResult } from './commands.js';
23
- //# sourceMappingURL=index.d.ts.map
@@ -1,16 +0,0 @@
1
- /**
2
- * LSP Handlers Module
3
- *
4
- * Exports all LSP request and notification handlers.
5
- *
6
- * @requirements 27.1-27.7 - LSP Server Core Capabilities
7
- * @requirements 28.1-28.9 - LSP Server Commands
8
- */
9
- export { createInitializeHandler } from './initialize.js';
10
- export { createDocumentSyncHandler } from './document-sync.js';
11
- export { createDiagnosticsHandler } from './diagnostics.js';
12
- export { createCodeActionsHandler } from './code-actions.js';
13
- export { createHoverHandler } from './hover.js';
14
- export { createCodeLensHandler } from './code-lens.js';
15
- export { createCommandsHandler } from './commands.js';
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAG/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Initialize Handler
3
- *
4
- * Handles the LSP initialize request and initialized notification.
5
- * Sets up server state and returns capabilities to the client.
6
- *
7
- * @requirements 27.1 - THE LSP_Server SHALL implement the Language Server Protocol specification
8
- */
9
- import type { Connection } from 'vscode-languageserver';
10
- interface ServerState {
11
- initialized: boolean;
12
- workspaceFolders: Array<{
13
- uri: string;
14
- name: string;
15
- }>;
16
- hasConfigurationCapability: boolean;
17
- hasWorkspaceFolderCapability: boolean;
18
- }
19
- interface Logger {
20
- error(message: string): void;
21
- warn(message: string): void;
22
- info(message: string): void;
23
- debug(message: string): void;
24
- }
25
- /**
26
- * Initialize handler interface
27
- */
28
- export interface InitializeHandler {
29
- /** Called when server is fully initialized */
30
- onInitialized(): void;
31
- }
32
- /**
33
- * Create the initialize handler
34
- *
35
- * Note: The actual onInitialize is handled in server.ts since it needs
36
- * to return the InitializeResult synchronously. This handler provides
37
- * additional initialization logic.
38
- */
39
- export declare function createInitializeHandler(_connection: Connection, state: ServerState, logger: Logger): InitializeHandler;
40
- export {};
41
- //# sourceMappingURL=initialize.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../src/handlers/initialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,UAAU,WAAW;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,0BAA0B,EAAE,OAAO,CAAC;IACpC,4BAA4B,EAAE,OAAO,CAAC;CACvC;AAED,UAAU,MAAM;IACd,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,aAAa,IAAI,IAAI,CAAC;CACvB;AAMD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,UAAU,EACvB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAenB"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Initialize Handler
3
- *
4
- * Handles the LSP initialize request and initialized notification.
5
- * Sets up server state and returns capabilities to the client.
6
- *
7
- * @requirements 27.1 - THE LSP_Server SHALL implement the Language Server Protocol specification
8
- */
9
- // ============================================================================
10
- // Handler Factory
11
- // ============================================================================
12
- /**
13
- * Create the initialize handler
14
- *
15
- * Note: The actual onInitialize is handled in server.ts since it needs
16
- * to return the InitializeResult synchronously. This handler provides
17
- * additional initialization logic.
18
- */
19
- export function createInitializeHandler(_connection, state, logger) {
20
- return {
21
- onInitialized() {
22
- logger.info('Server initialization complete');
23
- // Perform any post-initialization tasks
24
- if (state.workspaceFolders.length > 0) {
25
- logger.debug(`Monitoring ${state.workspaceFolders.length} workspace folder(s)`);
26
- // TODO: Initialize driftdetect-core scanner for each workspace
27
- // TODO: Load patterns from .drift/ directories
28
- // TODO: Perform initial scan if needed
29
- }
30
- },
31
- };
32
- }
33
- //# sourceMappingURL=initialize.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/handlers/initialize.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8BH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAuB,EACvB,KAAkB,EAClB,MAAc;IAEd,OAAO;QACL,aAAa;YACX,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;YAE9C,wCAAwC;YACxC,IAAI,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,gBAAgB,CAAC,MAAM,sBAAsB,CAAC,CAAC;gBAEhF,+DAA+D;gBAC/D,+CAA+C;gBAC/C,uCAAuC;YACzC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}