driftdetect-lsp 0.9.26 → 0.9.28

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 (112) hide show
  1. package/LICENSE +121 -0
  2. package/package.json +15 -15
  3. package/dist/bin/server.d.ts +0 -12
  4. package/dist/bin/server.js +0 -26
  5. package/dist/bin/server.js.map +0 -1
  6. package/dist/capabilities.d.ts +0 -91
  7. package/dist/capabilities.d.ts.map +0 -1
  8. package/dist/capabilities.js +0 -183
  9. package/dist/capabilities.js.map +0 -1
  10. package/dist/commands/approve-pattern.d.ts +0 -15
  11. package/dist/commands/approve-pattern.js +0 -83
  12. package/dist/commands/approve-pattern.js.map +0 -1
  13. package/dist/commands/create-variant.d.ts +0 -22
  14. package/dist/commands/create-variant.js +0 -109
  15. package/dist/commands/create-variant.js.map +0 -1
  16. package/dist/commands/explain-ai.d.ts +0 -11
  17. package/dist/commands/explain-ai.js +0 -144
  18. package/dist/commands/explain-ai.js.map +0 -1
  19. package/dist/commands/fix-ai.d.ts +0 -11
  20. package/dist/commands/fix-ai.js +0 -146
  21. package/dist/commands/fix-ai.js.map +0 -1
  22. package/dist/commands/ignore-once.d.ts +0 -33
  23. package/dist/commands/ignore-once.js +0 -147
  24. package/dist/commands/ignore-once.js.map +0 -1
  25. package/dist/commands/ignore-pattern.d.ts +0 -15
  26. package/dist/commands/ignore-pattern.js +0 -77
  27. package/dist/commands/ignore-pattern.js.map +0 -1
  28. package/dist/commands/index.d.ts +0 -14
  29. package/dist/commands/index.js +0 -14
  30. package/dist/commands/index.js.map +0 -1
  31. package/dist/commands/rescan.d.ts +0 -19
  32. package/dist/commands/rescan.js +0 -125
  33. package/dist/commands/rescan.js.map +0 -1
  34. package/dist/commands/show-patterns.d.ts +0 -30
  35. package/dist/commands/show-patterns.js +0 -175
  36. package/dist/commands/show-patterns.js.map +0 -1
  37. package/dist/commands/show-violations.d.ts +0 -11
  38. package/dist/commands/show-violations.js +0 -259
  39. package/dist/commands/show-violations.js.map +0 -1
  40. package/dist/handlers/code-actions.d.ts +0 -32
  41. package/dist/handlers/code-actions.js +0 -184
  42. package/dist/handlers/code-actions.js.map +0 -1
  43. package/dist/handlers/code-lens.d.ts +0 -32
  44. package/dist/handlers/code-lens.js +0 -162
  45. package/dist/handlers/code-lens.js.map +0 -1
  46. package/dist/handlers/commands.d.ts +0 -48
  47. package/dist/handlers/commands.js +0 -360
  48. package/dist/handlers/commands.js.map +0 -1
  49. package/dist/handlers/diagnostics.d.ts +0 -73
  50. package/dist/handlers/diagnostics.js +0 -259
  51. package/dist/handlers/diagnostics.js.map +0 -1
  52. package/dist/handlers/document-sync.d.ts +0 -37
  53. package/dist/handlers/document-sync.js +0 -49
  54. package/dist/handlers/document-sync.js.map +0 -1
  55. package/dist/handlers/hover.d.ts +0 -30
  56. package/dist/handlers/hover.js +0 -119
  57. package/dist/handlers/hover.js.map +0 -1
  58. package/dist/handlers/index.d.ts +0 -23
  59. package/dist/handlers/index.js +0 -16
  60. package/dist/handlers/index.js.map +0 -1
  61. package/dist/handlers/initialize.d.ts +0 -41
  62. package/dist/handlers/initialize.d.ts.map +0 -1
  63. package/dist/handlers/initialize.js +0 -33
  64. package/dist/handlers/initialize.js.map +0 -1
  65. package/dist/index.d.ts +0 -22
  66. package/dist/index.js +0 -26
  67. package/dist/index.js.map +0 -1
  68. package/dist/integration/core-scanner.d.ts +0 -89
  69. package/dist/integration/core-scanner.js +0 -309
  70. package/dist/integration/core-scanner.js.map +0 -1
  71. package/dist/integration/index.d.ts +0 -11
  72. package/dist/integration/index.js +0 -11
  73. package/dist/integration/index.js.map +0 -1
  74. package/dist/integration/pattern-store-adapter.d.ts +0 -117
  75. package/dist/integration/pattern-store-adapter.js +0 -349
  76. package/dist/integration/pattern-store-adapter.js.map +0 -1
  77. package/dist/integration/types.d.ts +0 -134
  78. package/dist/integration/types.js +0 -39
  79. package/dist/integration/types.js.map +0 -1
  80. package/dist/server/index.d.ts +0 -5
  81. package/dist/server/index.js +0 -5
  82. package/dist/server/index.js.map +0 -1
  83. package/dist/server/types.d.ts +0 -139
  84. package/dist/server/types.js +0 -8
  85. package/dist/server/types.js.map +0 -1
  86. package/dist/server.d.ts +0 -63
  87. package/dist/server.js +0 -208
  88. package/dist/server.js.map +0 -1
  89. package/dist/types/index.d.ts +0 -5
  90. package/dist/types/index.js +0 -5
  91. package/dist/types/index.js.map +0 -1
  92. package/dist/types/lsp-types.d.ts +0 -321
  93. package/dist/types/lsp-types.js +0 -274
  94. package/dist/types/lsp-types.js.map +0 -1
  95. package/dist/utils/diagnostic.d.ts +0 -84
  96. package/dist/utils/diagnostic.js +0 -256
  97. package/dist/utils/diagnostic.js.map +0 -1
  98. package/dist/utils/document.d.ts +0 -40
  99. package/dist/utils/document.d.ts.map +0 -1
  100. package/dist/utils/document.js +0 -138
  101. package/dist/utils/document.js.map +0 -1
  102. package/dist/utils/index.d.ts +0 -8
  103. package/dist/utils/index.d.ts.map +0 -1
  104. package/dist/utils/index.js +0 -8
  105. package/dist/utils/index.js.map +0 -1
  106. package/dist/utils/position.d.ts +0 -44
  107. package/dist/utils/position.d.ts.map +0 -1
  108. package/dist/utils/position.js +0 -96
  109. package/dist/utils/position.js.map +0 -1
  110. package/dist/utils/workspace.d.ts +0 -98
  111. package/dist/utils/workspace.js +0 -241
  112. package/dist/utils/workspace.js.map +0 -1
@@ -1,259 +0,0 @@
1
- /**
2
- * Show Violations Command - drift.showViolations
3
- * @requirements 28.9
4
- */
5
- // ============================================================================
6
- // Main Command
7
- // ============================================================================
8
- /**
9
- * Execute show violations command
10
- * Shows violations in the workspace
11
- */
12
- export async function executeShowViolations(context, uri, patternId, violationId) {
13
- const { state, logger, connection } = context;
14
- logger.info(`Show violations requested${uri ? ` for: ${uri}` : ''}${patternId ? ` pattern: ${patternId}` : ''}`);
15
- // If specific violation requested
16
- if (violationId) {
17
- return showSpecificViolation(context, violationId);
18
- }
19
- // Get violations to show
20
- let violations = [];
21
- if (uri) {
22
- // Violations for specific document
23
- const docViolations = state.violations.get(uri) ?? [];
24
- violations = docViolations.map((v) => ({ uri, violation: v }));
25
- }
26
- else {
27
- // All violations
28
- for (const [docUri, docViolations] of state.violations) {
29
- for (const v of docViolations) {
30
- violations.push({ uri: docUri, violation: v });
31
- }
32
- }
33
- }
34
- // Filter by pattern if specified
35
- if (patternId) {
36
- violations = violations.filter((entry) => entry.violation.patternId === patternId);
37
- }
38
- if (violations.length === 0) {
39
- const message = uri
40
- ? `No violations found in ${getFileName(uri)}`
41
- : patternId
42
- ? `No violations found for pattern: ${patternId}`
43
- : 'No violations found in workspace';
44
- connection.window.showInformationMessage(message);
45
- return {
46
- success: true,
47
- message,
48
- data: { violations: [] },
49
- };
50
- }
51
- // Format violations summary
52
- const summary = formatViolationsSummary(violations, state.patterns);
53
- // Show summary
54
- connection.window.showInformationMessage(summary);
55
- return {
56
- success: true,
57
- message: `Found ${violations.length} violations`,
58
- data: {
59
- violations: violations.map((v) => ({
60
- uri: v.uri,
61
- ...v.violation,
62
- })),
63
- summary: getViolationStatistics(violations),
64
- },
65
- };
66
- }
67
- /**
68
- * Show specific violation details
69
- */
70
- async function showSpecificViolation(context, violationId) {
71
- const { state, logger, connection } = context;
72
- // Find the violation
73
- let foundViolation = null;
74
- let foundUri = '';
75
- for (const [uri, violations] of state.violations) {
76
- const violation = violations.find((v) => v.id === violationId);
77
- if (violation) {
78
- foundViolation = violation;
79
- foundUri = uri;
80
- break;
81
- }
82
- }
83
- if (!foundViolation) {
84
- return {
85
- success: false,
86
- error: `Violation not found: ${violationId}`,
87
- };
88
- }
89
- // Get pattern details
90
- const pattern = state.patterns.get(foundViolation.patternId);
91
- // Format violation details
92
- const details = formatViolationDetails(foundViolation, foundUri, pattern);
93
- // Show details
94
- connection.window.showInformationMessage(details);
95
- // Offer to navigate to violation
96
- const navigateResult = await connection.window.showInformationMessage(`Navigate to violation at line ${foundViolation.range.start.line + 1}?`, { title: 'Go to Location' }, { title: 'Close' });
97
- if (navigateResult?.title === 'Go to Location') {
98
- // TODO: Send notification to client to navigate to location
99
- logger.info(`Navigate to ${foundUri}:${foundViolation.range.start.line + 1}`);
100
- }
101
- return {
102
- success: true,
103
- message: `Violation details for: ${violationId}`,
104
- data: {
105
- violation: foundViolation,
106
- uri: foundUri,
107
- pattern,
108
- },
109
- };
110
- }
111
- /**
112
- * Format violations summary
113
- */
114
- function formatViolationsSummary(violations, patterns) {
115
- const lines = [];
116
- lines.push(`⚠️ Drift Violations Summary`);
117
- lines.push('');
118
- // Group by severity
119
- const bySeverity = groupBySeverity(violations);
120
- if (bySeverity.error.length > 0) {
121
- lines.push(`🔴 Errors: ${bySeverity.error.length}`);
122
- }
123
- if (bySeverity.warning.length > 0) {
124
- lines.push(`🟡 Warnings: ${bySeverity.warning.length}`);
125
- }
126
- if (bySeverity.info.length > 0) {
127
- lines.push(`🔵 Info: ${bySeverity.info.length}`);
128
- }
129
- if (bySeverity.hint.length > 0) {
130
- lines.push(`💡 Hints: ${bySeverity.hint.length}`);
131
- }
132
- lines.push('');
133
- // Group by pattern
134
- const byPattern = groupByPattern(violations);
135
- const patternCount = byPattern.size;
136
- lines.push(`Across ${patternCount} pattern${patternCount === 1 ? '' : 's'}:`);
137
- lines.push('');
138
- for (const [patternId, patternViolations] of byPattern) {
139
- const pattern = patterns.get(patternId);
140
- const name = pattern?.name ?? patternId;
141
- lines.push(` • ${name}: ${patternViolations.length}`);
142
- }
143
- // Group by file
144
- const byFile = groupByFile(violations);
145
- const fileCount = byFile.size;
146
- lines.push('');
147
- lines.push(`In ${fileCount} file${fileCount === 1 ? '' : 's'}`);
148
- return lines.join('\n');
149
- }
150
- /**
151
- * Format violation details
152
- */
153
- function formatViolationDetails(violation, uri, pattern) {
154
- const lines = [];
155
- const severityIcon = getSeverityIcon(violation.severity);
156
- lines.push(`${severityIcon} Violation Details`);
157
- lines.push('');
158
- lines.push(`Message: ${violation.message}`);
159
- lines.push(`Severity: ${violation.severity}`);
160
- lines.push(`Location: ${getFileName(uri)}:${violation.range.start.line + 1}:${violation.range.start.character + 1}`);
161
- lines.push('');
162
- if (pattern) {
163
- lines.push(`Pattern: ${pattern.name ?? violation.patternId}`);
164
- if (pattern.category) {
165
- lines.push(`Category: ${pattern.category}`);
166
- }
167
- if (pattern.description) {
168
- lines.push(`Description: ${pattern.description}`);
169
- }
170
- }
171
- else {
172
- lines.push(`Pattern ID: ${violation.patternId}`);
173
- }
174
- return lines.join('\n');
175
- }
176
- /**
177
- * Group violations by severity
178
- */
179
- function groupBySeverity(violations) {
180
- const groups = {
181
- error: [],
182
- warning: [],
183
- info: [],
184
- hint: [],
185
- };
186
- for (const v of violations) {
187
- const severity = v.violation.severity;
188
- if (severity in groups) {
189
- groups[severity].push(v);
190
- }
191
- else {
192
- groups.hint.push(v);
193
- }
194
- }
195
- return groups;
196
- }
197
- /**
198
- * Group violations by pattern
199
- */
200
- function groupByPattern(violations) {
201
- const groups = new Map();
202
- for (const v of violations) {
203
- const patternId = v.violation.patternId;
204
- const group = groups.get(patternId) ?? [];
205
- group.push(v);
206
- groups.set(patternId, group);
207
- }
208
- return groups;
209
- }
210
- /**
211
- * Group violations by file
212
- */
213
- function groupByFile(violations) {
214
- const groups = new Map();
215
- for (const v of violations) {
216
- const group = groups.get(v.uri) ?? [];
217
- group.push(v);
218
- groups.set(v.uri, group);
219
- }
220
- return groups;
221
- }
222
- /**
223
- * Get violation statistics
224
- */
225
- function getViolationStatistics(violations) {
226
- const bySeverity = {};
227
- const byPattern = {};
228
- const byFile = {};
229
- for (const v of violations) {
230
- bySeverity[v.violation.severity] = (bySeverity[v.violation.severity] ?? 0) + 1;
231
- byPattern[v.violation.patternId] = (byPattern[v.violation.patternId] ?? 0) + 1;
232
- byFile[v.uri] = (byFile[v.uri] ?? 0) + 1;
233
- }
234
- return {
235
- total: violations.length,
236
- bySeverity,
237
- byPattern,
238
- byFile,
239
- };
240
- }
241
- /**
242
- * Get severity icon
243
- */
244
- function getSeverityIcon(severity) {
245
- switch (severity) {
246
- case 'error': return '🔴';
247
- case 'warning': return '🟡';
248
- case 'info': return '🔵';
249
- case 'hint': return '💡';
250
- default: return '⚪';
251
- }
252
- }
253
- /**
254
- * Get file name from URI
255
- */
256
- function getFileName(uri) {
257
- return uri.split('/').pop() ?? uri;
258
- }
259
- //# sourceMappingURL=show-violations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show-violations.js","sourceRoot":"","sources":["../../src/commands/show-violations.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Code Actions Handler
3
- *
4
- * Provides code actions (quick fixes) for pattern violations.
5
- * Supports quick fixes, refactoring actions, and source actions.
6
- *
7
- * @requirements 27.4 - THE LSP_Server SHALL provide code actions for quick fixes
8
- */
9
- import type { Connection, TextDocuments, CodeAction, CodeActionParams } 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
- * Code actions handler interface
20
- */
21
- export interface CodeActionsHandler {
22
- /** Handle code action request */
23
- onCodeAction(params: CodeActionParams): CodeAction[] | null;
24
- /** Handle code action resolve request */
25
- onCodeActionResolve(codeAction: CodeAction): CodeAction;
26
- }
27
- /**
28
- * Create the code actions handler
29
- */
30
- export declare function createCodeActionsHandler(_connection: Connection, _documents: TextDocuments<TextDocument>, diagnosticsHandler: DiagnosticsHandler, logger: Logger): CodeActionsHandler;
31
- export {};
32
- //# sourceMappingURL=code-actions.d.ts.map
@@ -1,184 +0,0 @@
1
- /**
2
- * Code Actions Handler
3
- *
4
- * Provides code actions (quick fixes) for pattern violations.
5
- * Supports quick fixes, refactoring actions, and source actions.
6
- *
7
- * @requirements 27.4 - THE LSP_Server SHALL provide code actions for quick fixes
8
- */
9
- import { CodeActionKind } from 'vscode-languageserver';
10
- import { DRIFT_COMMANDS } from '../capabilities.js';
11
- // ============================================================================
12
- // Helpers
13
- // ============================================================================
14
- /**
15
- * Check if two ranges overlap
16
- */
17
- function rangesOverlap(a, b) {
18
- // a ends before b starts
19
- if (a.end.line < b.start.line) {
20
- return false;
21
- }
22
- if (a.end.line === b.start.line && a.end.character < b.start.character) {
23
- return false;
24
- }
25
- // b ends before a starts
26
- if (b.end.line < a.start.line) {
27
- return false;
28
- }
29
- if (b.end.line === a.start.line && b.end.character < a.start.character) {
30
- return false;
31
- }
32
- return true;
33
- }
34
- // ============================================================================
35
- // Handler Factory
36
- // ============================================================================
37
- /**
38
- * Create the code actions handler
39
- */
40
- export function createCodeActionsHandler(_connection, _documents, diagnosticsHandler, logger) {
41
- /**
42
- * Create code actions for a diagnostic
43
- */
44
- function createActionsForDiagnostic(diagnostic, uri) {
45
- const actions = [];
46
- const data = diagnostic.data;
47
- if (!data) {
48
- return actions;
49
- }
50
- const { violationId, patternId, hasQuickFix, aiExplainAvailable, aiFixAvailable } = data;
51
- // Quick fix action (if available)
52
- if (hasQuickFix) {
53
- actions.push({
54
- title: 'Fix this violation',
55
- kind: CodeActionKind.QuickFix,
56
- diagnostics: [diagnostic],
57
- isPreferred: true,
58
- // Edit will be resolved in onCodeActionResolve
59
- data: {
60
- type: 'quickfix',
61
- violationId,
62
- patternId,
63
- uri,
64
- },
65
- });
66
- }
67
- // Approve pattern action
68
- actions.push({
69
- title: `Approve pattern: ${patternId}`,
70
- kind: CodeActionKind.QuickFix,
71
- diagnostics: [diagnostic],
72
- command: {
73
- title: 'Approve Pattern',
74
- command: DRIFT_COMMANDS.APPROVE_PATTERN,
75
- arguments: [patternId],
76
- },
77
- });
78
- // Ignore pattern action
79
- actions.push({
80
- title: `Ignore pattern: ${patternId}`,
81
- kind: CodeActionKind.QuickFix,
82
- diagnostics: [diagnostic],
83
- command: {
84
- title: 'Ignore Pattern',
85
- command: DRIFT_COMMANDS.IGNORE_PATTERN,
86
- arguments: [patternId],
87
- },
88
- });
89
- // Ignore this occurrence
90
- actions.push({
91
- title: 'Ignore this occurrence',
92
- kind: CodeActionKind.QuickFix,
93
- diagnostics: [diagnostic],
94
- command: {
95
- title: 'Ignore Once',
96
- command: DRIFT_COMMANDS.IGNORE_ONCE,
97
- arguments: [violationId, uri, diagnostic.range.start.line],
98
- },
99
- });
100
- // Create variant action
101
- actions.push({
102
- title: `Create variant for: ${patternId}`,
103
- kind: CodeActionKind.Refactor,
104
- diagnostics: [diagnostic],
105
- command: {
106
- title: 'Create Variant',
107
- command: DRIFT_COMMANDS.CREATE_VARIANT,
108
- arguments: [patternId, violationId],
109
- },
110
- });
111
- // AI explain action (if available)
112
- if (aiExplainAvailable) {
113
- actions.push({
114
- title: 'Explain with AI',
115
- kind: CodeActionKind.QuickFix,
116
- diagnostics: [diagnostic],
117
- command: {
118
- title: 'Explain with AI',
119
- command: DRIFT_COMMANDS.EXPLAIN_AI,
120
- arguments: [violationId, patternId],
121
- },
122
- });
123
- }
124
- // AI fix action (if available)
125
- if (aiFixAvailable) {
126
- actions.push({
127
- title: 'Fix with AI',
128
- kind: CodeActionKind.QuickFix,
129
- diagnostics: [diagnostic],
130
- command: {
131
- title: 'Fix with AI',
132
- command: DRIFT_COMMANDS.FIX_AI,
133
- arguments: [violationId, uri],
134
- },
135
- });
136
- }
137
- return actions;
138
- }
139
- return {
140
- onCodeAction(params) {
141
- const uri = params.textDocument.uri;
142
- const requestRange = params.range;
143
- logger.debug(`Code action request for ${uri} at ${requestRange.start.line}:${requestRange.start.character}`);
144
- // Get diagnostics for this document
145
- const diagnostics = diagnosticsHandler.getDiagnostics(uri);
146
- if (diagnostics.length === 0) {
147
- return null;
148
- }
149
- // Find diagnostics that overlap with the request range
150
- const relevantDiagnostics = diagnostics.filter((d) => rangesOverlap(d.range, requestRange));
151
- if (relevantDiagnostics.length === 0) {
152
- return null;
153
- }
154
- // Generate code actions for each relevant diagnostic
155
- const actions = [];
156
- for (const diagnostic of relevantDiagnostics) {
157
- const diagnosticActions = createActionsForDiagnostic(diagnostic, uri);
158
- actions.push(...diagnosticActions);
159
- }
160
- logger.debug(`Generated ${actions.length} code actions`);
161
- return actions;
162
- },
163
- onCodeActionResolve(codeAction) {
164
- logger.debug(`Resolving code action: ${codeAction.title}`);
165
- // If the code action has data, resolve the edit
166
- if (codeAction.data) {
167
- const data = codeAction.data;
168
- if (data.type === 'quickfix') {
169
- // TODO: Get the actual quick fix from the violation
170
- // and populate the edit field
171
- const violations = diagnosticsHandler.getViolations(data.uri);
172
- const violation = violations.find((v) => v.id === data.violationId);
173
- if (violation?.quickFix) {
174
- codeAction.edit = {
175
- changes: violation.quickFix.edit.changes,
176
- };
177
- }
178
- }
179
- }
180
- return codeAction;
181
- },
182
- };
183
- }
184
- //# sourceMappingURL=code-actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-actions.js","sourceRoot":"","sources":["../../src/handlers/code-actions.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Code Lens Handler
3
- *
4
- * Provides code lens (inline actions) for pattern information.
5
- * Shows violation counts, pattern names, and quick actions.
6
- *
7
- * @requirements 27.6 - THE LSP_Server SHALL provide code lens for pattern information
8
- */
9
- import type { Connection, TextDocuments, CodeLens, CodeLensParams } 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
- * Code lens handler interface
20
- */
21
- export interface CodeLensHandler {
22
- /** Handle code lens request */
23
- onCodeLens(params: CodeLensParams): CodeLens[] | null;
24
- /** Handle code lens resolve request */
25
- onCodeLensResolve(codeLens: CodeLens): CodeLens;
26
- }
27
- /**
28
- * Create the code lens handler
29
- */
30
- export declare function createCodeLensHandler(_connection: Connection, _documents: TextDocuments<TextDocument>, diagnosticsHandler: DiagnosticsHandler, logger: Logger): CodeLensHandler;
31
- export {};
32
- //# sourceMappingURL=code-lens.d.ts.map