driftdetect-vscode 0.9.31 → 0.9.33

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 (132) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-lint.log +44 -1
  3. package/.turbo/turbo-test.log +0 -34
  4. package/dist/activation/activation-controller.d.ts.map +1 -0
  5. package/dist/activation/activation-controller.js +235 -0
  6. package/dist/activation/activation-controller.js.map +1 -0
  7. package/dist/activation/activation-phases.d.ts.map +1 -0
  8. package/dist/activation/index.d.ts.map +1 -0
  9. package/dist/client/connection-manager.d.ts.map +1 -0
  10. package/dist/client/connection-manager.js +216 -0
  11. package/dist/client/connection-manager.js.map +1 -0
  12. package/dist/client/index.d.ts.map +1 -0
  13. package/dist/client/language-client-factory.d.ts.map +1 -0
  14. package/dist/client/request-middleware.d.ts.map +1 -0
  15. package/dist/client/request-middleware.js +85 -0
  16. package/dist/client/request-middleware.js.map +1 -0
  17. package/dist/commands/command-router.d.ts.map +1 -0
  18. package/dist/commands/command-router.js +129 -0
  19. package/dist/commands/command-router.js.map +1 -0
  20. package/dist/commands/handlers/connection-handlers.d.ts.map +1 -0
  21. package/dist/commands/handlers/connection-handlers.js +57 -0
  22. package/dist/commands/handlers/connection-handlers.js.map +1 -0
  23. package/dist/commands/handlers/constants-handlers.d.ts.map +1 -0
  24. package/dist/commands/handlers/constants-handlers.js +85 -0
  25. package/dist/commands/handlers/constants-handlers.js.map +1 -0
  26. package/dist/commands/handlers/index.d.ts.map +1 -0
  27. package/dist/commands/handlers/pattern-handlers.d.ts.map +1 -0
  28. package/dist/commands/handlers/pattern-handlers.js +127 -0
  29. package/dist/commands/handlers/pattern-handlers.js.map +1 -0
  30. package/dist/commands/handlers/scan-handlers.d.ts.map +1 -0
  31. package/dist/commands/handlers/scan-handlers.js +74 -0
  32. package/dist/commands/handlers/scan-handlers.js.map +1 -0
  33. package/dist/commands/handlers/ui-handlers.d.ts.map +1 -0
  34. package/dist/commands/handlers/violation-handlers.d.ts.map +1 -0
  35. package/dist/commands/handlers/violation-handlers.js +75 -0
  36. package/dist/commands/handlers/violation-handlers.js.map +1 -0
  37. package/dist/commands/index.d.ts.map +1 -0
  38. package/dist/commands/middleware/connection-check-middleware.d.ts.map +1 -0
  39. package/dist/commands/middleware/index.d.ts.map +1 -0
  40. package/dist/commands/middleware/logging-middleware.d.ts.map +1 -0
  41. package/dist/commands/middleware/telemetry-middleware.d.ts.map +1 -0
  42. package/dist/config/config-manager.d.ts.map +1 -0
  43. package/dist/config/config-manager.js +182 -0
  44. package/dist/config/config-manager.js.map +1 -0
  45. package/dist/config/defaults.d.ts.map +1 -0
  46. package/dist/config/index.d.ts.map +1 -0
  47. package/dist/config/validator.d.ts.map +1 -0
  48. package/dist/config/validator.js +89 -0
  49. package/dist/config/validator.js.map +1 -0
  50. package/dist/extension.d.ts.map +1 -0
  51. package/dist/extension.js +51 -0
  52. package/dist/extension.js.map +1 -0
  53. package/dist/infrastructure/disposable-manager.d.ts.map +1 -0
  54. package/dist/infrastructure/disposable-manager.js +76 -0
  55. package/dist/infrastructure/disposable-manager.js.map +1 -0
  56. package/dist/infrastructure/index.d.ts.map +1 -0
  57. package/dist/infrastructure/logger.d.ts.map +1 -0
  58. package/dist/infrastructure/logger.js +82 -0
  59. package/dist/infrastructure/logger.js.map +1 -0
  60. package/dist/infrastructure/service-container.d.ts +68 -0
  61. package/dist/infrastructure/service-container.d.ts.map +1 -0
  62. package/dist/infrastructure/service-container.js +92 -0
  63. package/dist/infrastructure/service-container.js.map +1 -0
  64. package/dist/state/index.d.ts.map +1 -0
  65. package/dist/state/initial-state.d.ts.map +1 -0
  66. package/dist/state/selectors.d.ts.map +1 -0
  67. package/dist/state/state-manager.d.ts.map +1 -0
  68. package/dist/state/state-manager.js +166 -0
  69. package/dist/state/state-manager.js.map +1 -0
  70. package/dist/types/config-types.d.ts.map +1 -0
  71. package/dist/types/extension-types.d.ts +45 -0
  72. package/dist/types/extension-types.d.ts.map +1 -0
  73. package/dist/types/extension-types.js +5 -0
  74. package/dist/types/extension-types.js.map +1 -0
  75. package/dist/types/index.d.ts.map +1 -0
  76. package/dist/types/lsp-types.d.ts.map +1 -0
  77. package/dist/types/state-types.d.ts.map +1 -0
  78. package/dist/ui/decorations/decoration-controller.d.ts.map +1 -0
  79. package/dist/ui/decorations/decoration-controller.js +196 -0
  80. package/dist/ui/decorations/decoration-controller.js.map +1 -0
  81. package/dist/ui/decorations/decoration-types.d.ts.map +1 -0
  82. package/dist/ui/decorations/index.d.ts.map +1 -0
  83. package/dist/ui/index.d.ts.map +1 -0
  84. package/dist/ui/notifications/index.d.ts.map +1 -0
  85. package/dist/ui/notifications/notification-service.d.ts.map +1 -0
  86. package/dist/ui/notifications/notification-service.js +103 -0
  87. package/dist/ui/notifications/notification-service.js.map +1 -0
  88. package/dist/ui/status-bar/index.d.ts.map +1 -0
  89. package/dist/ui/status-bar/status-bar-controller.d.ts.map +1 -0
  90. package/dist/ui/status-bar/status-bar-controller.js +111 -0
  91. package/dist/ui/status-bar/status-bar-controller.js.map +1 -0
  92. package/dist/ui/status-bar/status-bar-modes.d.ts.map +1 -0
  93. package/dist/ui/status-bar/status-bar-modes.js +112 -0
  94. package/dist/ui/status-bar/status-bar-modes.js.map +1 -0
  95. package/dist/views/constants-tree-provider.d.ts +111 -0
  96. package/dist/views/constants-tree-provider.d.ts.map +1 -0
  97. package/dist/views/constants-tree-provider.js +343 -0
  98. package/dist/views/constants-tree-provider.js.map +1 -0
  99. package/dist/views/files-tree-provider.d.ts +36 -0
  100. package/dist/views/files-tree-provider.d.ts.map +1 -0
  101. package/dist/views/files-tree-provider.js +95 -0
  102. package/dist/views/files-tree-provider.js.map +1 -0
  103. package/dist/views/index.d.ts.map +1 -0
  104. package/dist/views/patterns-tree-provider.d.ts.map +1 -0
  105. package/dist/views/violations-tree-provider.d.ts.map +1 -0
  106. package/dist/webview/index.d.ts.map +1 -0
  107. package/dist/webview/webview-manager.d.ts.map +1 -0
  108. package/package.json +1 -1
  109. package/src/activation/activation-controller.ts +13 -13
  110. package/src/client/connection-manager.ts +11 -9
  111. package/src/client/request-middleware.ts +6 -6
  112. package/src/commands/command-router.ts +7 -5
  113. package/src/commands/handlers/connection-handlers.ts +5 -5
  114. package/src/commands/handlers/constants-handlers.ts +13 -12
  115. package/src/commands/handlers/pattern-handlers.ts +3 -3
  116. package/src/commands/handlers/scan-handlers.ts +1 -1
  117. package/src/commands/handlers/violation-handlers.ts +6 -3
  118. package/src/config/config-manager.ts +11 -2
  119. package/src/config/validator.ts +13 -17
  120. package/src/extension.ts +2 -1
  121. package/src/infrastructure/disposable-manager.ts +2 -1
  122. package/src/infrastructure/logger.ts +3 -8
  123. package/src/infrastructure/service-container.ts +6 -7
  124. package/src/state/state-manager.ts +8 -11
  125. package/src/types/extension-types.ts +1 -1
  126. package/src/ui/decorations/decoration-controller.ts +4 -5
  127. package/src/ui/notifications/notification-service.ts +5 -5
  128. package/src/ui/status-bar/status-bar-controller.ts +3 -3
  129. package/src/ui/status-bar/status-bar-modes.ts +24 -9
  130. package/src/views/constants-tree-provider.ts +17 -19
  131. package/src/views/files-tree-provider.ts +0 -4
  132. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,343 @@
1
+ /**
2
+ * ConstantsTreeProvider - Constants and Enums tree view
3
+ *
4
+ * Single responsibility: Display constants, enums, and related issues in a tree view.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ import { BaseTreeProvider } from './base-tree-provider.js';
8
+ /**
9
+ * Constants tree provider
10
+ */
11
+ export class ConstantsTreeProvider extends BaseTreeProvider {
12
+ viewMode = 'category';
13
+ /**
14
+ * Set the view mode
15
+ */
16
+ setViewMode(mode) {
17
+ this.viewMode = mode;
18
+ this.refresh();
19
+ }
20
+ async getChildren(element) {
21
+ if (!this.client) {
22
+ return [];
23
+ }
24
+ const cacheKey = this.getCacheKey(element);
25
+ const cached = this.getCached(cacheKey);
26
+ if (cached) {
27
+ return cached;
28
+ }
29
+ let items;
30
+ if (!element) {
31
+ // Root level: show based on view mode
32
+ switch (this.viewMode) {
33
+ case 'category':
34
+ items = await this.getCategories();
35
+ break;
36
+ case 'language':
37
+ items = await this.getLanguages();
38
+ break;
39
+ case 'issues':
40
+ items = await this.getIssueGroups();
41
+ break;
42
+ default:
43
+ items = [];
44
+ }
45
+ }
46
+ else if (element.type === 'category') {
47
+ items = await this.getConstantsByCategory(element.label);
48
+ }
49
+ else if (element.type === 'language') {
50
+ items = await this.getConstantsByLanguage(element.label);
51
+ }
52
+ else if (element.type === 'issue-group') {
53
+ items = await this.getIssuesByType(element.label);
54
+ }
55
+ else {
56
+ items = [];
57
+ }
58
+ this.setCache(cacheKey, items);
59
+ return items;
60
+ }
61
+ async getCategories() {
62
+ try {
63
+ const response = await this.sendRequest('drift/constants', { action: 'status' });
64
+ const byCategory = response.data.byCategory ?? {};
65
+ const categories = Object.entries(byCategory)
66
+ .filter(([, count]) => count > 0)
67
+ .sort(([, a], [, b]) => b - a);
68
+ return categories.map(([name, count]) => this.createCategoryItem({ name, count }));
69
+ }
70
+ catch {
71
+ return [];
72
+ }
73
+ }
74
+ async getLanguages() {
75
+ try {
76
+ const response = await this.sendRequest('drift/constants', { action: 'status' });
77
+ const byLanguage = response.data.byLanguage ?? {};
78
+ const languages = Object.entries(byLanguage)
79
+ .filter(([, count]) => count > 0)
80
+ .sort(([, a], [, b]) => b - a);
81
+ return languages.map(([name, count]) => this.createLanguageItem({ name, count }));
82
+ }
83
+ catch {
84
+ return [];
85
+ }
86
+ }
87
+ async getIssueGroups() {
88
+ try {
89
+ const response = await this.sendRequest('drift/constants', { action: 'status' });
90
+ const issues = response.data.issues ?? {
91
+ potentialSecrets: 0,
92
+ inconsistentValues: 0,
93
+ deadConstants: 0,
94
+ };
95
+ const items = [];
96
+ if (issues.potentialSecrets > 0) {
97
+ items.push(this.createIssueGroupItem('Secrets', issues.potentialSecrets, 'shield'));
98
+ }
99
+ if (issues.inconsistentValues > 0) {
100
+ items.push(this.createIssueGroupItem('Inconsistent', issues.inconsistentValues, 'warning'));
101
+ }
102
+ if (issues.deadConstants > 0) {
103
+ items.push(this.createIssueGroupItem('Unused', issues.deadConstants, 'trash'));
104
+ }
105
+ if (items.length === 0) {
106
+ items.push({
107
+ type: 'issue-group',
108
+ label: 'No issues found',
109
+ iconPath: new vscode.ThemeIcon('check', new vscode.ThemeColor('charts.green')),
110
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
111
+ contextValue: 'no-issues',
112
+ });
113
+ }
114
+ return items;
115
+ }
116
+ catch {
117
+ return [];
118
+ }
119
+ }
120
+ async getConstantsByCategory(category) {
121
+ try {
122
+ const response = await this.sendRequest('drift/constants', { action: 'list', category, limit: 50 });
123
+ const items = [];
124
+ for (const constant of response.data.constants ?? []) {
125
+ items.push(this.createConstantItem(constant));
126
+ }
127
+ for (const enumDef of response.data.enums ?? []) {
128
+ items.push(this.createEnumItem(enumDef));
129
+ }
130
+ return items;
131
+ }
132
+ catch {
133
+ return [];
134
+ }
135
+ }
136
+ async getConstantsByLanguage(language) {
137
+ try {
138
+ const response = await this.sendRequest('drift/constants', { action: 'list', language, limit: 50 });
139
+ const items = [];
140
+ for (const constant of response.data.constants ?? []) {
141
+ items.push(this.createConstantItem(constant));
142
+ }
143
+ for (const enumDef of response.data.enums ?? []) {
144
+ items.push(this.createEnumItem(enumDef));
145
+ }
146
+ return items;
147
+ }
148
+ catch {
149
+ return [];
150
+ }
151
+ }
152
+ async getIssuesByType(issueType) {
153
+ try {
154
+ if (issueType === 'Secrets') {
155
+ const response = await this.sendRequest('drift/constants', { action: 'secrets', limit: 50 });
156
+ return (response.data.potentialSecrets ?? []).map((secret) => this.createSecretItem(secret));
157
+ }
158
+ if (issueType === 'Inconsistent') {
159
+ const response = await this.sendRequest('drift/constants', { action: 'inconsistent', limit: 50 });
160
+ return (response.data.inconsistencies ?? []).map((inc) => this.createInconsistentItem(inc));
161
+ }
162
+ if (issueType === 'Unused') {
163
+ const response = await this.sendRequest('drift/constants', { action: 'dead', limit: 50 });
164
+ return (response.data.deadConstants ?? []).map((dead) => this.createDeadItem(dead));
165
+ }
166
+ return [];
167
+ }
168
+ catch {
169
+ return [];
170
+ }
171
+ }
172
+ createCategoryItem(category) {
173
+ return {
174
+ type: 'category',
175
+ label: category.name,
176
+ description: `${String(category.count)} constants`,
177
+ iconPath: this.getCategoryIcon(category.name),
178
+ collapsibleState: vscode.TreeItemCollapsibleState.Collapsed,
179
+ contextValue: 'constant-category',
180
+ data: category,
181
+ };
182
+ }
183
+ createLanguageItem(language) {
184
+ return {
185
+ type: 'language',
186
+ label: language.name,
187
+ description: `${String(language.count)} constants`,
188
+ iconPath: this.getLanguageIcon(language.name),
189
+ collapsibleState: vscode.TreeItemCollapsibleState.Collapsed,
190
+ contextValue: 'constant-language',
191
+ data: language,
192
+ };
193
+ }
194
+ createIssueGroupItem(name, count, icon) {
195
+ const color = name === 'Secrets'
196
+ ? 'charts.red'
197
+ : name === 'Inconsistent'
198
+ ? 'charts.yellow'
199
+ : 'charts.gray';
200
+ return {
201
+ type: 'issue-group',
202
+ label: name,
203
+ description: `${String(count)} issues`,
204
+ iconPath: new vscode.ThemeIcon(icon, new vscode.ThemeColor(color)),
205
+ collapsibleState: vscode.TreeItemCollapsibleState.Collapsed,
206
+ contextValue: 'constant-issue-group',
207
+ };
208
+ }
209
+ createConstantItem(constant) {
210
+ const valueStr = constant.value !== undefined ? ` = ${String(constant.value).slice(0, 30)}` : '';
211
+ return {
212
+ type: 'constant',
213
+ id: constant.id,
214
+ label: constant.name,
215
+ description: `${constant.kind}${valueStr}`,
216
+ iconPath: constant.isExported
217
+ ? new vscode.ThemeIcon('symbol-constant', new vscode.ThemeColor('charts.blue'))
218
+ : new vscode.ThemeIcon('symbol-constant'),
219
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
220
+ contextValue: 'constant',
221
+ tooltip: this.createConstantTooltip(constant),
222
+ command: {
223
+ command: 'drift.goToConstant',
224
+ title: 'Go to Constant',
225
+ arguments: [constant.file, constant.line],
226
+ },
227
+ data: constant,
228
+ };
229
+ }
230
+ createEnumItem(enumDef) {
231
+ return {
232
+ type: 'enum',
233
+ id: enumDef.id,
234
+ label: enumDef.name,
235
+ description: `enum (${enumDef.memberCount} members)`,
236
+ iconPath: new vscode.ThemeIcon('symbol-enum'),
237
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
238
+ contextValue: 'enum',
239
+ command: {
240
+ command: 'drift.goToConstant',
241
+ title: 'Go to Enum',
242
+ arguments: [enumDef.file, enumDef.line],
243
+ },
244
+ data: enumDef,
245
+ };
246
+ }
247
+ createSecretItem(secret) {
248
+ const severityColor = secret.severity === 'critical' || secret.severity === 'high'
249
+ ? 'charts.red'
250
+ : 'charts.yellow';
251
+ return {
252
+ type: 'secret',
253
+ label: secret.name,
254
+ description: `${secret.severity} - ${secret.secretType}`,
255
+ iconPath: new vscode.ThemeIcon('shield', new vscode.ThemeColor(severityColor)),
256
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
257
+ contextValue: 'constant-secret',
258
+ command: {
259
+ command: 'drift.goToConstant',
260
+ title: 'Go to Secret',
261
+ arguments: [secret.file, secret.line],
262
+ },
263
+ data: secret,
264
+ };
265
+ }
266
+ createInconsistentItem(inc) {
267
+ return {
268
+ type: 'inconsistent',
269
+ label: inc.name,
270
+ description: `${String(inc.instanceCount)} different values`,
271
+ iconPath: new vscode.ThemeIcon('warning', new vscode.ThemeColor('charts.yellow')),
272
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
273
+ contextValue: 'constant-inconsistent',
274
+ data: inc,
275
+ };
276
+ }
277
+ createDeadItem(dead) {
278
+ return {
279
+ type: 'dead',
280
+ id: dead.id,
281
+ label: dead.name,
282
+ description: 'potentially unused',
283
+ iconPath: new vscode.ThemeIcon('trash', new vscode.ThemeColor('charts.gray')),
284
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
285
+ contextValue: 'constant-dead',
286
+ command: {
287
+ command: 'drift.goToConstant',
288
+ title: 'Go to Constant',
289
+ arguments: [dead.file, dead.line],
290
+ },
291
+ };
292
+ }
293
+ getCategoryIcon(category) {
294
+ const iconMap = {
295
+ config: 'gear',
296
+ api: 'globe',
297
+ status: 'pulse',
298
+ error: 'error',
299
+ feature_flag: 'toggle-on',
300
+ limit: 'dashboard',
301
+ regex: 'regex',
302
+ path: 'folder',
303
+ env: 'server-environment',
304
+ security: 'shield',
305
+ uncategorized: 'symbol-misc',
306
+ };
307
+ return new vscode.ThemeIcon(iconMap[category] || 'symbol-constant');
308
+ }
309
+ getLanguageIcon(language) {
310
+ const iconMap = {
311
+ typescript: 'symbol-class',
312
+ javascript: 'symbol-class',
313
+ python: 'symbol-class',
314
+ java: 'symbol-class',
315
+ csharp: 'symbol-class',
316
+ php: 'symbol-class',
317
+ go: 'symbol-class',
318
+ };
319
+ return new vscode.ThemeIcon(iconMap[language] || 'file-code');
320
+ }
321
+ createConstantTooltip(constant) {
322
+ const md = new vscode.MarkdownString();
323
+ md.isTrusted = true;
324
+ md.appendMarkdown(`### ${constant.name}\n\n`);
325
+ md.appendMarkdown(`**Qualified Name:** \`${constant.qualifiedName}\`\n\n`);
326
+ md.appendMarkdown(`**File:** ${constant.file}:${String(constant.line)}\n\n`);
327
+ md.appendMarkdown(`**Language:** ${constant.language}\n\n`);
328
+ md.appendMarkdown(`**Kind:** ${constant.kind}\n\n`);
329
+ md.appendMarkdown(`**Category:** ${constant.category}\n\n`);
330
+ md.appendMarkdown(`**Exported:** ${constant.isExported ? 'Yes' : 'No'}\n\n`);
331
+ if (constant.value !== undefined) {
332
+ md.appendMarkdown(`---\n\n**Value:**\n\`\`\`\n${String(constant.value)}\n\`\`\`\n`);
333
+ }
334
+ return md;
335
+ }
336
+ }
337
+ /**
338
+ * Factory function for creating constants tree provider
339
+ */
340
+ export function createConstantsTreeProvider(client) {
341
+ return new ConstantsTreeProvider(client);
342
+ }
343
+ //# sourceMappingURL=constants-tree-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants-tree-provider.js","sourceRoot":"","sources":["../../src/views/constants-tree-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * FilesTreeProvider - Files tree view
3
+ *
4
+ * Single responsibility: Display files with patterns in a tree view.
5
+ */
6
+ import { BaseTreeProvider, type BaseTreeItem } from './base-tree-provider.js';
7
+ import type { FilePatternData } from '../types/index.js';
8
+ import type { LanguageClient } from 'vscode-languageclient/node';
9
+ /**
10
+ * Tree item types
11
+ */
12
+ type FileTreeItemType = 'folder' | 'file';
13
+ /**
14
+ * File tree item
15
+ */
16
+ export interface FileTreeItem extends BaseTreeItem {
17
+ type: FileTreeItemType;
18
+ path: string;
19
+ data?: FilePatternData;
20
+ }
21
+ /**
22
+ * Files tree provider
23
+ */
24
+ export declare class FilesTreeProvider extends BaseTreeProvider<FileTreeItem> {
25
+ getChildren(element?: FileTreeItem): Promise<FileTreeItem[]>;
26
+ private getFilesWithPatterns;
27
+ private createFileItem;
28
+ private createDescription;
29
+ private createFileTooltip;
30
+ }
31
+ /**
32
+ * Factory function for creating files tree provider
33
+ */
34
+ export declare function createFilesTreeProvider(client: LanguageClient | null): FilesTreeProvider;
35
+ export {};
36
+ //# sourceMappingURL=files-tree-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-tree-provider.d.ts","sourceRoot":"","sources":["../../src/views/files-tree-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,KAAK,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB,CAAC,YAAY,CAAC;IAC7D,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAyBpD,oBAAoB;IAgBlC,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,iBAAiB;CAiB1B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,iBAAiB,CAEnB"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * FilesTreeProvider - Files tree view
3
+ *
4
+ * Single responsibility: Display files with patterns in a tree view.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ import { BaseTreeProvider } from './base-tree-provider.js';
8
+ /**
9
+ * Files tree provider
10
+ */
11
+ export class FilesTreeProvider extends BaseTreeProvider {
12
+ async getChildren(element) {
13
+ if (!this.client) {
14
+ return [];
15
+ }
16
+ const cacheKey = this.getCacheKey(element);
17
+ const cached = this.getCached(cacheKey);
18
+ if (cached) {
19
+ return cached;
20
+ }
21
+ let items;
22
+ if (!element) {
23
+ // Root level: get all files with patterns
24
+ items = await this.getFilesWithPatterns();
25
+ }
26
+ else {
27
+ // No nested children for now
28
+ items = [];
29
+ }
30
+ this.setCache(cacheKey, items);
31
+ return items;
32
+ }
33
+ async getFilesWithPatterns() {
34
+ try {
35
+ const response = await this.sendRequest('drift/files/list', { minPatterns: 1 });
36
+ // Sort by pattern count descending
37
+ const sorted = response.files.sort((a, b) => b.patternCount - a.patternCount);
38
+ return sorted.map((file) => this.createFileItem(file));
39
+ }
40
+ catch {
41
+ return [];
42
+ }
43
+ }
44
+ createFileItem(file) {
45
+ const fileName = file.path.split('/').pop() || file.path;
46
+ const hasViolations = file.violationCount > 0;
47
+ return {
48
+ type: 'file',
49
+ path: file.path,
50
+ label: fileName,
51
+ description: this.createDescription(file),
52
+ iconPath: hasViolations
53
+ ? new vscode.ThemeIcon('warning', new vscode.ThemeColor('editorWarning.foreground'))
54
+ : vscode.ThemeIcon.File,
55
+ collapsibleState: vscode.TreeItemCollapsibleState.None,
56
+ contextValue: 'file',
57
+ resourceUri: vscode.Uri.file(file.path),
58
+ tooltip: this.createFileTooltip(file),
59
+ command: {
60
+ command: 'vscode.open',
61
+ title: 'Open File',
62
+ arguments: [vscode.Uri.file(file.path)],
63
+ },
64
+ data: file,
65
+ };
66
+ }
67
+ createDescription(file) {
68
+ const parts = [];
69
+ parts.push(`${file.patternCount} pattern${file.patternCount === 1 ? '' : 's'}`);
70
+ if (file.violationCount > 0) {
71
+ parts.push(`${file.violationCount} violation${file.violationCount === 1 ? '' : 's'}`);
72
+ }
73
+ return parts.join(' • ');
74
+ }
75
+ createFileTooltip(file) {
76
+ const md = new vscode.MarkdownString();
77
+ md.isTrusted = true;
78
+ md.appendMarkdown(`### ${file.path}\n\n`);
79
+ md.appendMarkdown(`**Patterns:** ${file.patternCount}\n\n`);
80
+ md.appendMarkdown(`**Violations:** ${file.violationCount}\n\n`);
81
+ if (file.categories.length > 0) {
82
+ md.appendMarkdown(`**Categories:** ${file.categories.join(', ')}\n\n`);
83
+ }
84
+ md.appendMarkdown(`---\n\n`);
85
+ md.appendMarkdown(`[View Patterns](command:drift.showFilePatterns?${encodeURIComponent(JSON.stringify({ path: file.path }))})`);
86
+ return md;
87
+ }
88
+ }
89
+ /**
90
+ * Factory function for creating files tree provider
91
+ */
92
+ export function createFilesTreeProvider(client) {
93
+ return new FilesTreeProvider(client);
94
+ }
95
+ //# sourceMappingURL=files-tree-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-tree-provider.js","sourceRoot":"","sources":["../../src/views/files-tree-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAqB,MAAM,yBAAyB,CAAC;AAmB9E;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,gBAA8B;IACnE,KAAK,CAAC,WAAW,CAAC,OAAsB;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,KAAqB,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,0CAA0C;YAC1C,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,kBAAkB,EAClB,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;YAEF,mCAAmC;YACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;YAE9E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAqB;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QAE9C,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACzC,QAAQ,EAAE,aAAa;gBACrB,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;gBACpF,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI;YACzB,gBAAgB,EAAE,MAAM,CAAC,wBAAwB,CAAC,IAAI;YACtD,YAAY,EAAE,MAAM;YACpB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YACvC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACrC,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACxC;YACD,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,IAAqB;QAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,WAAW,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhF,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,aAAa,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEO,iBAAiB,CAAC,IAAqB;QAC7C,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACvC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;QAEpB,EAAE,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;QAC1C,EAAE,CAAC,cAAc,CAAC,iBAAiB,IAAI,CAAC,YAAY,MAAM,CAAC,CAAC;QAC5D,EAAE,CAAC,cAAc,CAAC,mBAAmB,IAAI,CAAC,cAAc,MAAM,CAAC,CAAC;QAEhE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,cAAc,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7B,EAAE,CAAC,cAAc,CAAC,kDAAkD,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhI,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAA6B;IAE7B,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns-tree-provider.d.ts","sourceRoot":"","sources":["../../src/views/patterns-tree-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,KAAK,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;gBAC7D,MAAM,EAAE,cAAc,GAAG,IAAI;IAInC,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;YA4B1D,aAAa;YAYb,WAAW;IAazB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB;CAgB7B;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,oBAAoB,CAEtB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"violations-tree-provider.d.ts","sourceRoot":"","sources":["../../src/views/violations-tree-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,KAAK,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,CAAC,EAAE,aAAa,GAAG;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,gBAAgB,CAAC,iBAAiB,CAAC;gBACjE,MAAM,EAAE,cAAc,GAAG,IAAI;IAInC,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;YA+B9D,iBAAiB;YAkBjB,kBAAkB;YAYlB,mBAAmB;IAajC,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,sBAAsB;CAqB/B;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,cAAc,GAAG,IAAI,GAC5B,sBAAsB,CAExB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/webview/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webview-manager.d.ts","sourceRoot":"","sources":["../../src/webview/webview-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjE;;GAEG;AACH,qBAAa,cAAe,YAAW,MAAM,CAAC,UAAU;IAMpD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IANzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkD;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;gBAGpC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,MAAM,EAAE,MAAM;IAGjC;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACxC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;IAgD/B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IASxD;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOlC;;OAEG;IACH,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,qBAAqB;YAef,aAAa;YAoCb,iBAAiB;IAsC/B,OAAO,CAAC,aAAa;CAQtB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,MAAM,EAAE,MAAM,GACb,cAAc,CAEhB"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "driftdetect-vscode",
3
3
  "displayName": "Drift - Architectural Drift Detection",
4
4
  "description": "Learn your codebase patterns and enforce consistency. Pattern detection, call graph analysis, security visualization, and MCP integration for AI agents. Supports TypeScript, Python, C#, Java, PHP.",
5
- "version": "0.9.31",
5
+ "version": "0.9.33",
6
6
  "publisher": "driftdetect",
7
7
  "license": "Apache-2.0",
8
8
  "icon": "resources/drift-icon.png",
@@ -77,7 +77,7 @@ export class ActivationController implements vscode.Disposable {
77
77
 
78
78
  // Phase 2: Deferred (non-blocking)
79
79
  setImmediate(() => {
80
- this.runDeferredPhase().catch(error => {
80
+ this.runDeferredPhase().catch((error: unknown) => {
81
81
  this.getLogger().error('Deferred activation failed:', error);
82
82
  });
83
83
  });
@@ -171,30 +171,30 @@ export class ActivationController implements vscode.Disposable {
171
171
  private async initializePhase(name: string): Promise<void> {
172
172
  switch (name) {
173
173
  case 'infrastructure':
174
- await this.initializeInfrastructure();
174
+ this.initializeInfrastructure();
175
175
  break;
176
176
  case 'state':
177
- await this.initializeState();
177
+ this.initializeState();
178
178
  break;
179
179
  case 'config':
180
- await this.initializeConfig();
180
+ this.initializeConfig();
181
181
  break;
182
182
  case 'statusBar':
183
- await this.initializeStatusBar();
183
+ this.initializeStatusBar();
184
184
  break;
185
185
  case 'connection':
186
186
  await this.initializeConnection();
187
187
  break;
188
188
  case 'commands':
189
- await this.initializeCommands();
189
+ this.initializeCommands();
190
190
  break;
191
191
  case 'decorations':
192
- await this.initializeDecorations();
192
+ this.initializeDecorations();
193
193
  break;
194
194
  }
195
195
  }
196
196
 
197
- private async initializeInfrastructure(): Promise<void> {
197
+ private initializeInfrastructure(): void {
198
198
  // Create logger
199
199
  const logger = createLogger('Drift', 'info');
200
200
  this.services.register(ServiceKeys.Logger, logger);
@@ -208,7 +208,7 @@ export class ActivationController implements vscode.Disposable {
208
208
  logger.info('Infrastructure initialized');
209
209
  }
210
210
 
211
- private async initializeState(): Promise<void> {
211
+ private initializeState(): void {
212
212
  const stateManager = createStateManager(this.context);
213
213
  this.services.register(ServiceKeys.StateManager, stateManager);
214
214
  this.disposables.add(stateManager);
@@ -216,7 +216,7 @@ export class ActivationController implements vscode.Disposable {
216
216
  this.getLogger().debug('State manager initialized');
217
217
  }
218
218
 
219
- private async initializeConfig(): Promise<void> {
219
+ private initializeConfig(): void {
220
220
  const configManager = createConfigManager(this.getLogger());
221
221
  this.services.register(ServiceKeys.ConfigManager, configManager);
222
222
  this.disposables.add(configManager);
@@ -224,7 +224,7 @@ export class ActivationController implements vscode.Disposable {
224
224
  this.getLogger().debug('Config manager initialized');
225
225
  }
226
226
 
227
- private async initializeStatusBar(): Promise<void> {
227
+ private initializeStatusBar(): void {
228
228
  const stateManager = this.services.get<StateManager>(ServiceKeys.StateManager);
229
229
  const statusBar = createStatusBar(stateManager);
230
230
  this.services.register(ServiceKeys.StatusBar, statusBar);
@@ -260,7 +260,7 @@ export class ActivationController implements vscode.Disposable {
260
260
  this.getLogger().debug('Connection manager initialized');
261
261
  }
262
262
 
263
- private async initializeCommands(): Promise<void> {
263
+ private initializeCommands(): void {
264
264
  const stateManager = this.services.get<StateManager>(ServiceKeys.StateManager);
265
265
  const connectionManager = this.services.get<ConnectionManager>(ServiceKeys.ConnectionManager);
266
266
  const eventBus = this.services.get<EventBus>('eventBus');
@@ -288,7 +288,7 @@ export class ActivationController implements vscode.Disposable {
288
288
  this.getLogger().debug('Commands initialized');
289
289
  }
290
290
 
291
- private async initializeDecorations(): Promise<void> {
291
+ private initializeDecorations(): void {
292
292
  const configManager = this.services.get<ConfigManager>(ServiceKeys.ConfigManager);
293
293
 
294
294
  const decorationController = createDecorationController(this.context, configManager);