driftdetect-lsp 0.9.27 → 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,256 +0,0 @@
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
- return a.range.start.character - b.range.start.character;
86
- });
87
- }
88
- /**
89
- * Sort diagnostics by severity
90
- */
91
- export function sortBySeverity(diagnostics) {
92
- const severityOrder = {
93
- error: 0,
94
- warning: 1,
95
- info: 2,
96
- hint: 3,
97
- };
98
- return [...diagnostics].sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
99
- }
100
- /**
101
- * Sort diagnostics by pattern
102
- */
103
- export function sortByPattern(diagnostics) {
104
- return [...diagnostics].sort((a, b) => a.patternId.localeCompare(b.patternId));
105
- }
106
- // ============================================================================
107
- // Diagnostic Grouping
108
- // ============================================================================
109
- /**
110
- * Group diagnostics by severity
111
- */
112
- export function groupBySeverity(diagnostics) {
113
- const groups = new Map();
114
- for (const diagnostic of diagnostics) {
115
- const group = groups.get(diagnostic.severity) ?? [];
116
- group.push(diagnostic);
117
- groups.set(diagnostic.severity, group);
118
- }
119
- return groups;
120
- }
121
- /**
122
- * Group diagnostics by pattern
123
- */
124
- export function groupByPattern(diagnostics) {
125
- const groups = new Map();
126
- for (const diagnostic of diagnostics) {
127
- const group = groups.get(diagnostic.patternId) ?? [];
128
- group.push(diagnostic);
129
- groups.set(diagnostic.patternId, group);
130
- }
131
- return groups;
132
- }
133
- /**
134
- * Group diagnostics by line
135
- */
136
- export function groupByLine(diagnostics) {
137
- const groups = new Map();
138
- for (const diagnostic of diagnostics) {
139
- const line = diagnostic.range.start.line;
140
- const group = groups.get(line) ?? [];
141
- group.push(diagnostic);
142
- groups.set(line, group);
143
- }
144
- return groups;
145
- }
146
- // ============================================================================
147
- // Diagnostic Statistics
148
- // ============================================================================
149
- /**
150
- * Get diagnostic statistics
151
- */
152
- export function getDiagnosticStats(diagnostics) {
153
- const bySeverity = {
154
- error: 0,
155
- warning: 0,
156
- info: 0,
157
- hint: 0,
158
- };
159
- const byPattern = {};
160
- const affectedLines = new Set();
161
- for (const diagnostic of diagnostics) {
162
- bySeverity[diagnostic.severity]++;
163
- byPattern[diagnostic.patternId] = (byPattern[diagnostic.patternId] ?? 0) + 1;
164
- for (let line = diagnostic.range.start.line; line <= diagnostic.range.end.line; line++) {
165
- affectedLines.add(line);
166
- }
167
- }
168
- return {
169
- total: diagnostics.length,
170
- bySeverity,
171
- byPattern,
172
- uniquePatterns: Object.keys(byPattern).length,
173
- affectedLines: affectedLines.size,
174
- };
175
- }
176
- // ============================================================================
177
- // Helper Functions
178
- // ============================================================================
179
- /**
180
- * Check if two ranges overlap
181
- */
182
- function rangesOverlap(a, b) {
183
- // a ends before b starts
184
- if (a.end.line < b.start.line)
185
- return false;
186
- if (a.end.line === b.start.line && a.end.character < b.start.character)
187
- return false;
188
- // b ends before a starts
189
- if (b.end.line < a.start.line)
190
- return false;
191
- if (b.end.line === a.start.line && b.end.character < a.start.character)
192
- return false;
193
- return true;
194
- }
195
- /**
196
- * Merge overlapping diagnostics
197
- */
198
- export function mergeOverlapping(diagnostics) {
199
- if (diagnostics.length <= 1)
200
- return diagnostics;
201
- const sorted = sortByPosition(diagnostics);
202
- const first = sorted[0];
203
- if (!first)
204
- return diagnostics;
205
- const merged = [first];
206
- for (let i = 1; i < sorted.length; i++) {
207
- const current = sorted[i];
208
- const last = merged[merged.length - 1];
209
- if (!current || !last) {
210
- continue;
211
- }
212
- if (rangesOverlap(last.range, current.range) && last.patternId === current.patternId) {
213
- // Merge ranges
214
- last.range = {
215
- start: {
216
- line: Math.min(last.range.start.line, current.range.start.line),
217
- character: last.range.start.line < current.range.start.line
218
- ? last.range.start.character
219
- : current.range.start.line < last.range.start.line
220
- ? current.range.start.character
221
- : Math.min(last.range.start.character, current.range.start.character),
222
- },
223
- end: {
224
- line: Math.max(last.range.end.line, current.range.end.line),
225
- character: last.range.end.line > current.range.end.line
226
- ? last.range.end.character
227
- : current.range.end.line > last.range.end.line
228
- ? current.range.end.character
229
- : Math.max(last.range.end.character, current.range.end.character),
230
- },
231
- };
232
- // Merge quick fixes
233
- last.quickFixes = [...last.quickFixes, ...current.quickFixes];
234
- }
235
- else {
236
- merged.push(current);
237
- }
238
- }
239
- return merged;
240
- }
241
- /**
242
- * Deduplicate diagnostics
243
- */
244
- export function deduplicate(diagnostics) {
245
- const seen = new Set();
246
- const result = [];
247
- for (const diagnostic of diagnostics) {
248
- const key = `${diagnostic.patternId}:${diagnostic.range.start.line}:${diagnostic.range.start.character}`;
249
- if (!seen.has(key)) {
250
- seen.add(key);
251
- result.push(diagnostic);
252
- }
253
- }
254
- return result;
255
- }
256
- //# sourceMappingURL=diagnostic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../src/utils/diagnostic.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- /**
2
- * Document Utilities
3
- *
4
- * Helper functions for working with LSP text documents.
5
- */
6
- import type { TextDocument } from 'vscode-languageserver-textdocument';
7
- import type { Position, Range } from 'vscode-languageserver';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/utils/document.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;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"}
@@ -1,138 +0,0 @@
1
- /**
2
- * Document Utilities
3
- *
4
- * Helper functions for working with LSP text documents.
5
- */
6
- /**
7
- * Get the text at a specific range in a document
8
- */
9
- export function getTextAtRange(document, range) {
10
- return document.getText(range);
11
- }
12
- /**
13
- * Get the line text at a specific line number
14
- */
15
- export function getLineText(document, line) {
16
- const lineRange = {
17
- start: { line, character: 0 },
18
- end: { line, character: Number.MAX_SAFE_INTEGER },
19
- };
20
- return document.getText(lineRange);
21
- }
22
- /**
23
- * Get the word at a specific position
24
- */
25
- export function getWordAtPosition(document, position) {
26
- const lineText = getLineText(document, position.line);
27
- const character = position.character;
28
- // Find word boundaries
29
- let start = character;
30
- let end = character;
31
- // Move start backwards to find word start
32
- while (start > 0) {
33
- const char = lineText[start - 1];
34
- if (char === undefined || !isWordChar(char)) {
35
- break;
36
- }
37
- start--;
38
- }
39
- // Move end forwards to find word end
40
- while (end < lineText.length) {
41
- const char = lineText[end];
42
- if (char === undefined || !isWordChar(char)) {
43
- break;
44
- }
45
- end++;
46
- }
47
- if (start === end) {
48
- return null;
49
- }
50
- return lineText.substring(start, end);
51
- }
52
- /**
53
- * Check if a character is a word character
54
- */
55
- function isWordChar(char) {
56
- return /[\w$]/.test(char);
57
- }
58
- /**
59
- * Get the file name from a URI
60
- */
61
- export function getFileName(uri) {
62
- const parts = uri.split('/');
63
- return parts[parts.length - 1] ?? uri;
64
- }
65
- /**
66
- * Get the file extension from a URI
67
- */
68
- export function getFileExtension(uri) {
69
- const fileName = getFileName(uri);
70
- const dotIndex = fileName.lastIndexOf('.');
71
- if (dotIndex === -1) {
72
- return '';
73
- }
74
- return fileName.substring(dotIndex + 1);
75
- }
76
- /**
77
- * Check if a URI matches a glob pattern (simple implementation)
78
- */
79
- export function matchesGlob(uri, pattern) {
80
- // Convert glob to regex
81
- const regexPattern = pattern
82
- .replace(/\*\*/g, '.*')
83
- .replace(/\*/g, '[^/]*')
84
- .replace(/\?/g, '.')
85
- .replace(/\./g, '\\.');
86
- const regex = new RegExp(`^${regexPattern}$`);
87
- return regex.test(uri);
88
- }
89
- /**
90
- * Get the language ID for a file based on extension
91
- */
92
- export function getLanguageId(uri) {
93
- const ext = getFileExtension(uri).toLowerCase();
94
- const languageMap = {
95
- ts: 'typescript',
96
- tsx: 'typescriptreact',
97
- js: 'javascript',
98
- jsx: 'javascriptreact',
99
- py: 'python',
100
- java: 'java',
101
- cs: 'csharp',
102
- php: 'php',
103
- css: 'css',
104
- scss: 'scss',
105
- less: 'less',
106
- json: 'json',
107
- yaml: 'yaml',
108
- yml: 'yaml',
109
- md: 'markdown',
110
- html: 'html',
111
- vue: 'vue',
112
- svelte: 'svelte',
113
- };
114
- return languageMap[ext] ?? 'plaintext';
115
- }
116
- /**
117
- * Check if a document is a supported language
118
- */
119
- export function isSupportedLanguage(document) {
120
- const supportedLanguages = [
121
- 'typescript',
122
- 'typescriptreact',
123
- 'javascript',
124
- 'javascriptreact',
125
- 'python',
126
- 'java',
127
- 'csharp',
128
- 'php',
129
- 'css',
130
- 'scss',
131
- 'less',
132
- 'json',
133
- 'yaml',
134
- 'markdown',
135
- ];
136
- return supportedLanguages.includes(document.languageId);
137
- }
138
- //# sourceMappingURL=document.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/utils/document.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- /**
2
- * LSP Utilities Module
3
- *
4
- * Exports utility functions for position and document handling.
5
- */
6
- export * from './position.js';
7
- export * from './document.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * LSP Utilities Module
3
- *
4
- * Exports utility functions for position and document handling.
5
- */
6
- export * from './position.js';
7
- export * from './document.js';
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -1,44 +0,0 @@
1
- /**
2
- * Position Utilities
3
- *
4
- * Helper functions for working with LSP positions and ranges.
5
- */
6
- import type { Position, Range } from 'vscode-languageserver';
7
- /**
8
- * Create a Position
9
- */
10
- export declare function createPosition(line: number, character: number): Position;
11
- /**
12
- * Create a Range
13
- */
14
- export declare function createRange(start: Position, end: Position): Range;
15
- /**
16
- * Create a Range from coordinates
17
- */
18
- export declare function createRangeFromCoords(startLine: number, startChar: number, endLine: number, endChar: number): Range;
19
- /**
20
- * Check if a position is within a range
21
- */
22
- export declare function isPositionInRange(position: Position, range: Range): boolean;
23
- /**
24
- * Check if two ranges overlap
25
- */
26
- export declare function rangesOverlap(a: Range, b: Range): boolean;
27
- /**
28
- * Check if range a contains range b
29
- */
30
- export declare function rangeContains(a: Range, b: Range): boolean;
31
- /**
32
- * Compare two positions
33
- * Returns negative if a < b, positive if a > b, 0 if equal
34
- */
35
- export declare function comparePositions(a: Position, b: Position): number;
36
- /**
37
- * Format a position for display
38
- */
39
- export declare function formatPosition(position: Position): string;
40
- /**
41
- * Format a range for display
42
- */
43
- export declare function formatRange(range: Range): string;
44
- //# sourceMappingURL=position.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../src/utils/position.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAK,CAEjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,KAAK,CAKP;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAiB3E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAkBzD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAKzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAKjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAKhD"}
@@ -1,96 +0,0 @@
1
- /**
2
- * Position Utilities
3
- *
4
- * Helper functions for working with LSP positions and ranges.
5
- */
6
- /**
7
- * Create a Position
8
- */
9
- export function createPosition(line, character) {
10
- return { line, character };
11
- }
12
- /**
13
- * Create a Range
14
- */
15
- export function createRange(start, end) {
16
- return { start, end };
17
- }
18
- /**
19
- * Create a Range from coordinates
20
- */
21
- export function createRangeFromCoords(startLine, startChar, endLine, endChar) {
22
- return {
23
- start: { line: startLine, character: startChar },
24
- end: { line: endLine, character: endChar },
25
- };
26
- }
27
- /**
28
- * Check if a position is within a range
29
- */
30
- export function isPositionInRange(position, range) {
31
- const { line, character } = position;
32
- const { start, end } = range;
33
- if (line < start.line || line > end.line) {
34
- return false;
35
- }
36
- if (line === start.line && character < start.character) {
37
- return false;
38
- }
39
- if (line === end.line && character > end.character) {
40
- return false;
41
- }
42
- return true;
43
- }
44
- /**
45
- * Check if two ranges overlap
46
- */
47
- export function rangesOverlap(a, b) {
48
- // a ends before b starts
49
- if (a.end.line < b.start.line) {
50
- return false;
51
- }
52
- if (a.end.line === b.start.line && a.end.character < b.start.character) {
53
- return false;
54
- }
55
- // b ends before a starts
56
- if (b.end.line < a.start.line) {
57
- return false;
58
- }
59
- if (b.end.line === a.start.line && b.end.character < a.start.character) {
60
- return false;
61
- }
62
- return true;
63
- }
64
- /**
65
- * Check if range a contains range b
66
- */
67
- export function rangeContains(a, b) {
68
- return (isPositionInRange(b.start, a) &&
69
- isPositionInRange(b.end, a));
70
- }
71
- /**
72
- * Compare two positions
73
- * Returns negative if a < b, positive if a > b, 0 if equal
74
- */
75
- export function comparePositions(a, b) {
76
- if (a.line !== b.line) {
77
- return a.line - b.line;
78
- }
79
- return a.character - b.character;
80
- }
81
- /**
82
- * Format a position for display
83
- */
84
- export function formatPosition(position) {
85
- return `${position.line + 1}:${position.character + 1}`;
86
- }
87
- /**
88
- * Format a range for display
89
- */
90
- export function formatRange(range) {
91
- if (range.start.line === range.end.line) {
92
- return `line ${range.start.line + 1}`;
93
- }
94
- return `lines ${range.start.line + 1}-${range.end.line + 1}`;
95
- }
96
- //# sourceMappingURL=position.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../src/utils/position.ts"],"names":[],"mappings":"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"}