driftdetect-vscode 0.9.3 → 0.9.5
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.
- package/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-test.log +138 -0
- package/LICENSE +121 -0
- package/dist/activation/activation-controller.d.ts +61 -0
- package/dist/activation/activation-controller.d.ts.map +1 -0
- package/dist/activation/activation-controller.js +235 -0
- package/dist/activation/activation-controller.js.map +1 -0
- package/dist/activation/activation-phases.d.ts +28 -0
- package/dist/activation/activation-phases.d.ts.map +1 -0
- package/dist/activation/activation-phases.js +80 -0
- package/dist/activation/activation-phases.js.map +1 -0
- package/dist/activation/index.d.ts +6 -0
- package/dist/activation/index.d.ts.map +1 -0
- package/dist/activation/index.js +6 -0
- package/dist/activation/index.js.map +1 -0
- package/dist/client/connection-config.d.ts +50 -0
- package/dist/client/connection-config.d.ts.map +1 -0
- package/dist/client/connection-config.js +56 -0
- package/dist/client/connection-config.js.map +1 -0
- package/dist/client/connection-manager.d.ts +70 -0
- package/dist/client/connection-manager.d.ts.map +1 -0
- package/dist/client/connection-manager.js +214 -0
- package/dist/client/connection-manager.js.map +1 -0
- package/dist/client/index.d.ts +8 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/language-client-factory.d.ts +29 -0
- package/dist/client/language-client-factory.d.ts.map +1 -0
- package/dist/client/language-client-factory.js +76 -0
- package/dist/client/language-client-factory.js.map +1 -0
- package/dist/client/request-middleware.d.ts +38 -0
- package/dist/client/request-middleware.d.ts.map +1 -0
- package/dist/client/request-middleware.js +85 -0
- package/dist/client/request-middleware.js.map +1 -0
- package/dist/commands/command-definitions.d.ts +53 -0
- package/dist/commands/command-definitions.d.ts.map +1 -0
- package/dist/commands/command-definitions.js +212 -0
- package/dist/commands/command-definitions.js.map +1 -0
- package/dist/commands/command-router.d.ts +80 -0
- package/dist/commands/command-router.d.ts.map +1 -0
- package/dist/commands/command-router.js +127 -0
- package/dist/commands/command-router.js.map +1 -0
- package/dist/commands/handlers/connection-handlers.d.ts +14 -0
- package/dist/commands/handlers/connection-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/connection-handlers.js +57 -0
- package/dist/commands/handlers/connection-handlers.js.map +1 -0
- package/dist/commands/handlers/constants-handlers.d.ts +11 -0
- package/dist/commands/handlers/constants-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/constants-handlers.js +84 -0
- package/dist/commands/handlers/constants-handlers.js.map +1 -0
- package/dist/commands/handlers/index.d.ts +10 -0
- package/dist/commands/handlers/index.d.ts.map +1 -0
- package/dist/commands/handlers/index.js +10 -0
- package/dist/commands/handlers/index.js.map +1 -0
- package/dist/commands/handlers/pattern-handlers.d.ts +13 -0
- package/dist/commands/handlers/pattern-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/pattern-handlers.js +127 -0
- package/dist/commands/handlers/pattern-handlers.js.map +1 -0
- package/dist/commands/handlers/scan-handlers.d.ts +15 -0
- package/dist/commands/handlers/scan-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/scan-handlers.js +74 -0
- package/dist/commands/handlers/scan-handlers.js.map +1 -0
- package/dist/commands/handlers/ui-handlers.d.ts +12 -0
- package/dist/commands/handlers/ui-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/ui-handlers.js +74 -0
- package/dist/commands/handlers/ui-handlers.js.map +1 -0
- package/dist/commands/handlers/violation-handlers.d.ts +13 -0
- package/dist/commands/handlers/violation-handlers.d.ts.map +1 -0
- package/dist/commands/handlers/violation-handlers.js +76 -0
- package/dist/commands/handlers/violation-handlers.js.map +1 -0
- package/dist/commands/index.d.ts +7 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/middleware/connection-check-middleware.d.ts +12 -0
- package/dist/commands/middleware/connection-check-middleware.d.ts.map +1 -0
- package/dist/commands/middleware/connection-check-middleware.js +34 -0
- package/dist/commands/middleware/connection-check-middleware.js.map +1 -0
- package/dist/commands/middleware/index.d.ts +7 -0
- package/dist/commands/middleware/index.d.ts.map +1 -0
- package/dist/commands/middleware/index.js +7 -0
- package/dist/commands/middleware/index.js.map +1 -0
- package/dist/commands/middleware/logging-middleware.d.ts +12 -0
- package/dist/commands/middleware/logging-middleware.d.ts.map +1 -0
- package/dist/commands/middleware/logging-middleware.js +24 -0
- package/dist/commands/middleware/logging-middleware.js.map +1 -0
- package/dist/commands/middleware/telemetry-middleware.d.ts +22 -0
- package/dist/commands/middleware/telemetry-middleware.d.ts.map +1 -0
- package/dist/commands/middleware/telemetry-middleware.js +30 -0
- package/dist/commands/middleware/telemetry-middleware.js.map +1 -0
- package/dist/config/config-manager.d.ts +53 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +178 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/defaults.d.ts +11 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +43 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/validator.d.ts +22 -0
- package/dist/config/validator.d.ts.map +1 -0
- package/dist/config/validator.js +93 -0
- package/dist/config/validator.js.map +1 -0
- package/dist/extension.d.ts +32 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +50 -0
- package/dist/extension.js.map +1 -0
- package/dist/infrastructure/disposable-manager.d.ts +43 -0
- package/dist/infrastructure/disposable-manager.d.ts.map +1 -0
- package/dist/infrastructure/disposable-manager.js +75 -0
- package/dist/infrastructure/disposable-manager.js.map +1 -0
- package/dist/infrastructure/event-bus.d.ts +85 -0
- package/dist/infrastructure/event-bus.d.ts.map +1 -0
- package/dist/infrastructure/event-bus.js +74 -0
- package/dist/infrastructure/event-bus.js.map +1 -0
- package/dist/infrastructure/index.d.ts +10 -0
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +10 -0
- package/dist/infrastructure/index.js.map +1 -0
- package/dist/infrastructure/logger.d.ts +37 -0
- package/dist/infrastructure/logger.d.ts.map +1 -0
- package/dist/infrastructure/logger.js +86 -0
- package/dist/infrastructure/logger.js.map +1 -0
- package/dist/infrastructure/service-container.d.ts +68 -0
- package/dist/infrastructure/service-container.d.ts.map +1 -0
- package/dist/infrastructure/service-container.js +94 -0
- package/dist/infrastructure/service-container.js.map +1 -0
- package/dist/state/index.d.ts +7 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +7 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/initial-state.d.ts +11 -0
- package/dist/state/initial-state.d.ts.map +1 -0
- package/dist/state/initial-state.js +58 -0
- package/dist/state/initial-state.js.map +1 -0
- package/dist/state/selectors.d.ts +41 -0
- package/dist/state/selectors.d.ts.map +1 -0
- package/dist/state/selectors.js +61 -0
- package/dist/state/selectors.js.map +1 -0
- package/dist/state/state-manager.d.ts +54 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +166 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/types/config-types.d.ts +69 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +5 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/extension-types.d.ts +45 -0
- package/dist/types/extension-types.d.ts.map +1 -0
- package/dist/types/extension-types.js +5 -0
- package/dist/types/extension-types.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lsp-types.d.ts +70 -0
- package/dist/types/lsp-types.d.ts.map +1 -0
- package/dist/types/lsp-types.js +5 -0
- package/dist/types/lsp-types.js.map +1 -0
- package/dist/types/state-types.d.ts +82 -0
- package/dist/types/state-types.d.ts.map +1 -0
- package/dist/types/state-types.js +5 -0
- package/dist/types/state-types.js.map +1 -0
- package/dist/types/vscode-types.d.ts +36 -0
- package/dist/types/vscode-types.d.ts.map +1 -0
- package/dist/types/vscode-types.js +7 -0
- package/dist/types/vscode-types.js.map +1 -0
- package/dist/ui/decorations/decoration-controller.d.ts +45 -0
- package/dist/ui/decorations/decoration-controller.d.ts.map +1 -0
- package/dist/ui/decorations/decoration-controller.js +198 -0
- package/dist/ui/decorations/decoration-controller.js.map +1 -0
- package/dist/ui/decorations/decoration-types.d.ts +28 -0
- package/dist/ui/decorations/decoration-types.d.ts.map +1 -0
- package/dist/ui/decorations/decoration-types.js +98 -0
- package/dist/ui/decorations/decoration-types.js.map +1 -0
- package/dist/ui/decorations/index.d.ts +7 -0
- package/dist/ui/decorations/index.d.ts.map +1 -0
- package/dist/ui/decorations/index.js +6 -0
- package/dist/ui/decorations/index.js.map +1 -0
- package/dist/ui/index.d.ts +7 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +7 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/notifications/index.d.ts +5 -0
- package/dist/ui/notifications/index.d.ts.map +1 -0
- package/dist/ui/notifications/index.js +5 -0
- package/dist/ui/notifications/index.js.map +1 -0
- package/dist/ui/notifications/notification-service.d.ts +66 -0
- package/dist/ui/notifications/notification-service.d.ts.map +1 -0
- package/dist/ui/notifications/notification-service.js +103 -0
- package/dist/ui/notifications/notification-service.js.map +1 -0
- package/dist/ui/status-bar/index.d.ts +6 -0
- package/dist/ui/status-bar/index.d.ts.map +1 -0
- package/dist/ui/status-bar/index.js +6 -0
- package/dist/ui/status-bar/index.js.map +1 -0
- package/dist/ui/status-bar/status-bar-controller.d.ts +37 -0
- package/dist/ui/status-bar/status-bar-controller.d.ts.map +1 -0
- package/dist/ui/status-bar/status-bar-controller.js +111 -0
- package/dist/ui/status-bar/status-bar-controller.js.map +1 -0
- package/dist/ui/status-bar/status-bar-modes.d.ts +26 -0
- package/dist/ui/status-bar/status-bar-modes.d.ts.map +1 -0
- package/dist/ui/status-bar/status-bar-modes.js +97 -0
- package/dist/ui/status-bar/status-bar-modes.js.map +1 -0
- package/dist/views/base-tree-provider.d.ts +74 -0
- package/dist/views/base-tree-provider.d.ts.map +1 -0
- package/dist/views/base-tree-provider.js +95 -0
- package/dist/views/base-tree-provider.js.map +1 -0
- package/dist/views/constants-tree-provider.d.ts +112 -0
- package/dist/views/constants-tree-provider.d.ts.map +1 -0
- package/dist/views/constants-tree-provider.js +344 -0
- package/dist/views/constants-tree-provider.js.map +1 -0
- package/dist/views/files-tree-provider.d.ts +37 -0
- package/dist/views/files-tree-provider.d.ts.map +1 -0
- package/dist/views/files-tree-provider.js +98 -0
- package/dist/views/files-tree-provider.js.map +1 -0
- package/dist/views/index.d.ts +10 -0
- package/dist/views/index.d.ts.map +1 -0
- package/dist/views/index.js +10 -0
- package/dist/views/index.js.map +1 -0
- package/dist/views/patterns-tree-provider.d.ts +39 -0
- package/dist/views/patterns-tree-provider.d.ts.map +1 -0
- package/dist/views/patterns-tree-provider.js +139 -0
- package/dist/views/patterns-tree-provider.js.map +1 -0
- package/dist/views/violations-tree-provider.d.ts +46 -0
- package/dist/views/violations-tree-provider.d.ts.map +1 -0
- package/dist/views/violations-tree-provider.js +158 -0
- package/dist/views/violations-tree-provider.js.map +1 -0
- package/dist/webview/index.d.ts +7 -0
- package/dist/webview/index.d.ts.map +1 -0
- package/dist/webview/index.js +7 -0
- package/dist/webview/index.js.map +1 -0
- package/dist/webview/webview-manager.d.ts +57 -0
- package/dist/webview/webview-manager.d.ts.map +1 -0
- package/dist/webview/webview-manager.js +167 -0
- package/dist/webview/webview-manager.js.map +1 -0
- package/package.json +46 -21
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StateManager - Centralized reactive state management
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Manage extension state with subscriptions.
|
|
5
|
+
*/
|
|
6
|
+
import { createInitialState } from './initial-state.js';
|
|
7
|
+
/**
|
|
8
|
+
* Persistence key for state
|
|
9
|
+
*/
|
|
10
|
+
const PERSISTENCE_KEY = 'drift.state';
|
|
11
|
+
/**
|
|
12
|
+
* State manager with selector-based subscriptions
|
|
13
|
+
*/
|
|
14
|
+
export class StateManager {
|
|
15
|
+
state;
|
|
16
|
+
listeners = new Set();
|
|
17
|
+
context;
|
|
18
|
+
constructor(context) {
|
|
19
|
+
this.context = context;
|
|
20
|
+
this.state = this.loadState();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get current state (readonly)
|
|
24
|
+
*/
|
|
25
|
+
getState() {
|
|
26
|
+
return this.state;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Update state with an updater function
|
|
30
|
+
*/
|
|
31
|
+
update(updater) {
|
|
32
|
+
// Create a shallow copy for the updater
|
|
33
|
+
const draft = this.createDraft();
|
|
34
|
+
updater(draft);
|
|
35
|
+
// Apply changes
|
|
36
|
+
this.state = draft;
|
|
37
|
+
this.notifyListeners();
|
|
38
|
+
this.persistState();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Batch multiple updates
|
|
42
|
+
*/
|
|
43
|
+
batch(updaters) {
|
|
44
|
+
const draft = this.createDraft();
|
|
45
|
+
for (const updater of updaters) {
|
|
46
|
+
updater(draft);
|
|
47
|
+
}
|
|
48
|
+
this.state = draft;
|
|
49
|
+
this.notifyListeners();
|
|
50
|
+
this.persistState();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Subscribe to state changes with a selector
|
|
54
|
+
*/
|
|
55
|
+
subscribe(selector, callback) {
|
|
56
|
+
let previousValue = selector(this.state);
|
|
57
|
+
const listener = (state) => {
|
|
58
|
+
const newValue = selector(state);
|
|
59
|
+
if (!this.shallowEqual(previousValue, newValue)) {
|
|
60
|
+
previousValue = newValue;
|
|
61
|
+
callback(newValue);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
this.listeners.add(listener);
|
|
65
|
+
return {
|
|
66
|
+
dispose: () => {
|
|
67
|
+
this.listeners.delete(listener);
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Subscribe to all state changes
|
|
73
|
+
*/
|
|
74
|
+
subscribeAll(callback) {
|
|
75
|
+
this.listeners.add(callback);
|
|
76
|
+
return {
|
|
77
|
+
dispose: () => {
|
|
78
|
+
this.listeners.delete(callback);
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Reset state to initial values
|
|
84
|
+
*/
|
|
85
|
+
reset() {
|
|
86
|
+
this.state = createInitialState();
|
|
87
|
+
this.notifyListeners();
|
|
88
|
+
this.persistState();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Dispose the state manager
|
|
92
|
+
*/
|
|
93
|
+
dispose() {
|
|
94
|
+
this.listeners.clear();
|
|
95
|
+
}
|
|
96
|
+
createDraft() {
|
|
97
|
+
// Deep clone for immutability
|
|
98
|
+
return JSON.parse(JSON.stringify(this.state));
|
|
99
|
+
}
|
|
100
|
+
notifyListeners() {
|
|
101
|
+
for (const listener of this.listeners) {
|
|
102
|
+
try {
|
|
103
|
+
listener(this.state);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error('[Drift] State listener error:', error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
loadState() {
|
|
111
|
+
const initial = createInitialState();
|
|
112
|
+
try {
|
|
113
|
+
const persisted = this.context.globalState.get(PERSISTENCE_KEY);
|
|
114
|
+
if (persisted) {
|
|
115
|
+
// Only restore preferences, not transient state
|
|
116
|
+
return {
|
|
117
|
+
...initial,
|
|
118
|
+
preferences: {
|
|
119
|
+
...initial.preferences,
|
|
120
|
+
...persisted.preferences,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.error('[Drift] Failed to load persisted state:', error);
|
|
127
|
+
}
|
|
128
|
+
return initial;
|
|
129
|
+
}
|
|
130
|
+
persistState() {
|
|
131
|
+
// Only persist user preferences
|
|
132
|
+
const toPersist = {
|
|
133
|
+
preferences: this.state.preferences,
|
|
134
|
+
};
|
|
135
|
+
this.context.globalState.update(PERSISTENCE_KEY, toPersist).then(() => { }, (error) => { console.error('[Drift] Failed to persist state:', error); });
|
|
136
|
+
}
|
|
137
|
+
shallowEqual(a, b) {
|
|
138
|
+
if (a === b) {
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
if (typeof a !== typeof b) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
if (typeof a !== 'object' || a === null || b === null) {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
const keysA = Object.keys(a);
|
|
148
|
+
const keysB = Object.keys(b);
|
|
149
|
+
if (keysA.length !== keysB.length) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
for (const key of keysA) {
|
|
153
|
+
if (a[key] !== b[key]) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Factory function for creating state manager
|
|
162
|
+
*/
|
|
163
|
+
export function createStateManager(context) {
|
|
164
|
+
return new StateManager(context);
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=state-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { Severity } from './extension-types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Server configuration
|
|
7
|
+
*/
|
|
8
|
+
export interface ServerConfig {
|
|
9
|
+
path: string;
|
|
10
|
+
args: string[];
|
|
11
|
+
trace: 'off' | 'messages' | 'verbose';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Scan configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface ScanConfig {
|
|
17
|
+
onSave: boolean;
|
|
18
|
+
onOpen: boolean;
|
|
19
|
+
debounceMs: number;
|
|
20
|
+
excludePatterns: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Display configuration
|
|
24
|
+
*/
|
|
25
|
+
export interface DisplayConfig {
|
|
26
|
+
showStatusBar: boolean;
|
|
27
|
+
showInlineHints: boolean;
|
|
28
|
+
showGutterIcons: boolean;
|
|
29
|
+
severityFilter: Severity[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* AI provider types
|
|
33
|
+
*/
|
|
34
|
+
export type AIProvider = 'openai' | 'anthropic' | 'ollama' | 'none';
|
|
35
|
+
/**
|
|
36
|
+
* AI configuration
|
|
37
|
+
*/
|
|
38
|
+
export interface AIConfig {
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
provider: AIProvider;
|
|
41
|
+
model: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Team configuration (from .drift/config.json)
|
|
45
|
+
*/
|
|
46
|
+
export interface TeamConfig {
|
|
47
|
+
enforceApproved: boolean;
|
|
48
|
+
requiredCategories: string[];
|
|
49
|
+
customRules: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Complete extension configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface DriftConfig {
|
|
55
|
+
server: ServerConfig;
|
|
56
|
+
scan: ScanConfig;
|
|
57
|
+
display: DisplayConfig;
|
|
58
|
+
ai: AIConfig;
|
|
59
|
+
team: TeamConfig;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Configuration change event
|
|
63
|
+
*/
|
|
64
|
+
export interface ConfigChangeEvent {
|
|
65
|
+
section: keyof DriftConfig;
|
|
66
|
+
oldValue: unknown;
|
|
67
|
+
newValue: unknown;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=config-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../src/types/config-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,QAAQ,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,QAAQ,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,WAAW,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../src/types/config-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension-level type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type * as vscode from 'vscode';
|
|
5
|
+
/**
|
|
6
|
+
* Extension activation phases for progressive loading
|
|
7
|
+
*/
|
|
8
|
+
export type ActivationPhase = 'immediate' | 'deferred' | 'lazy';
|
|
9
|
+
/**
|
|
10
|
+
* Connection states for LSP client
|
|
11
|
+
*/
|
|
12
|
+
export type ConnectionState = 'disconnected' | 'connecting' | 'connected' | 'reconnecting' | 'error' | 'failed';
|
|
13
|
+
/**
|
|
14
|
+
* Severity levels matching LSP
|
|
15
|
+
*/
|
|
16
|
+
export type Severity = 'error' | 'warning' | 'info' | 'hint';
|
|
17
|
+
/**
|
|
18
|
+
* Pattern status
|
|
19
|
+
*/
|
|
20
|
+
export type PatternStatus = 'discovered' | 'approved' | 'ignored';
|
|
21
|
+
/**
|
|
22
|
+
* Logger interface for dependency injection
|
|
23
|
+
*/
|
|
24
|
+
export interface Logger {
|
|
25
|
+
error(message: string, ...args: unknown[]): void;
|
|
26
|
+
warn(message: string, ...args: unknown[]): void;
|
|
27
|
+
info(message: string, ...args: unknown[]): void;
|
|
28
|
+
debug(message: string, ...args: unknown[]): void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Disposable resource manager
|
|
32
|
+
*/
|
|
33
|
+
export interface DisposableManager {
|
|
34
|
+
add(disposable: vscode.Disposable): void;
|
|
35
|
+
dispose(): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Service locator for dependency injection
|
|
39
|
+
*/
|
|
40
|
+
export interface ServiceContainer {
|
|
41
|
+
get<T>(key: string): T;
|
|
42
|
+
register<T>(key: string, instance: T): void;
|
|
43
|
+
has(key: string): boolean;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=extension-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-types.d.ts","sourceRoot":"","sources":["../../src/types/extension-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,YAAY,GACZ,WAAW,GACX,cAAc,GACd,OAAO,GACP,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;IACvB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-types.js","sourceRoot":"","sources":["../../src/types/extension-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @drift/vscode - Type definitions
|
|
3
|
+
*
|
|
4
|
+
* Central type exports for the VS Code extension.
|
|
5
|
+
* All types are defined in domain-specific files and re-exported here.
|
|
6
|
+
*/
|
|
7
|
+
export * from './extension-types.js';
|
|
8
|
+
export * from './state-types.js';
|
|
9
|
+
export * from './config-types.js';
|
|
10
|
+
export * from './lsp-types.js';
|
|
11
|
+
export * from './vscode-types.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @drift/vscode - Type definitions
|
|
3
|
+
*
|
|
4
|
+
* Central type exports for the VS Code extension.
|
|
5
|
+
* All types are defined in domain-specific files and re-exported here.
|
|
6
|
+
*/
|
|
7
|
+
export * from './extension-types.js';
|
|
8
|
+
export * from './state-types.js';
|
|
9
|
+
export * from './config-types.js';
|
|
10
|
+
export * from './lsp-types.js';
|
|
11
|
+
export * from './vscode-types.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP-related type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { Severity, PatternStatus } from './extension-types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Pattern data from LSP
|
|
7
|
+
*/
|
|
8
|
+
export interface PatternData {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
category: string;
|
|
12
|
+
confidence: number;
|
|
13
|
+
status: PatternStatus;
|
|
14
|
+
locationCount: number;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Violation data from LSP
|
|
19
|
+
*/
|
|
20
|
+
export interface ViolationData {
|
|
21
|
+
id: string;
|
|
22
|
+
patternId: string;
|
|
23
|
+
severity: Severity;
|
|
24
|
+
file: string;
|
|
25
|
+
range: {
|
|
26
|
+
start: {
|
|
27
|
+
line: number;
|
|
28
|
+
character: number;
|
|
29
|
+
};
|
|
30
|
+
end: {
|
|
31
|
+
line: number;
|
|
32
|
+
character: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
message: string;
|
|
36
|
+
hasQuickFix: boolean;
|
|
37
|
+
aiExplainAvailable: boolean;
|
|
38
|
+
aiFixAvailable: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Category summary from LSP
|
|
42
|
+
*/
|
|
43
|
+
export interface CategoryData {
|
|
44
|
+
name: string;
|
|
45
|
+
count: number;
|
|
46
|
+
approvedCount: number;
|
|
47
|
+
violationCount: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* File pattern data from LSP
|
|
51
|
+
*/
|
|
52
|
+
export interface FilePatternData {
|
|
53
|
+
path: string;
|
|
54
|
+
patternCount: number;
|
|
55
|
+
violationCount: number;
|
|
56
|
+
categories: string[];
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* LSP health check response
|
|
60
|
+
*/
|
|
61
|
+
export interface HealthCheckResponse {
|
|
62
|
+
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
63
|
+
version: string;
|
|
64
|
+
uptime: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* LSP request types
|
|
68
|
+
*/
|
|
69
|
+
export type LSPRequestType = 'drift/health' | 'drift/patterns/list' | 'drift/patterns/get' | 'drift/patterns/categories' | 'drift/violations/list' | 'drift/files/list' | 'drift/rescan';
|
|
70
|
+
//# sourceMappingURL=lsp-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-types.d.ts","sourceRoot":"","sources":["../../src/types/lsp-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,GAAG,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KAC1C,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,qBAAqB,GACrB,oBAAoB,GACpB,2BAA2B,GAC3B,uBAAuB,GACvB,kBAAkB,GAClB,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-types.js","sourceRoot":"","sources":["../../src/types/lsp-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State management type definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { ConnectionState, Severity, PatternStatus } from './extension-types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Connection state slice
|
|
7
|
+
*/
|
|
8
|
+
export interface ConnectionStateSlice {
|
|
9
|
+
status: ConnectionState;
|
|
10
|
+
serverVersion: string | null;
|
|
11
|
+
lastError: string | null;
|
|
12
|
+
restartCount: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Workspace state slice
|
|
16
|
+
*/
|
|
17
|
+
export interface WorkspaceStateSlice {
|
|
18
|
+
initialized: boolean;
|
|
19
|
+
projectRoot: string | null;
|
|
20
|
+
configPath: string | null;
|
|
21
|
+
lastScanTime: number | null;
|
|
22
|
+
scanning: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Pattern summary state slice
|
|
26
|
+
*/
|
|
27
|
+
export interface PatternStateSlice {
|
|
28
|
+
total: number;
|
|
29
|
+
byCategory: Record<string, number>;
|
|
30
|
+
byStatus: Record<PatternStatus, number>;
|
|
31
|
+
lastUpdated: number | null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Violation state slice
|
|
35
|
+
*/
|
|
36
|
+
export interface ViolationStateSlice {
|
|
37
|
+
total: number;
|
|
38
|
+
bySeverity: Record<Severity, number>;
|
|
39
|
+
activeFile: string | null;
|
|
40
|
+
activeFileCount: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* UI state slice
|
|
44
|
+
*/
|
|
45
|
+
export interface UIStateSlice {
|
|
46
|
+
statusBarVisible: boolean;
|
|
47
|
+
sidebarExpanded: boolean;
|
|
48
|
+
activePanel: string | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* User preferences (persisted)
|
|
52
|
+
*/
|
|
53
|
+
export interface PreferencesSlice {
|
|
54
|
+
autoScan: boolean;
|
|
55
|
+
showInlineHints: boolean;
|
|
56
|
+
severityFilter: Severity[];
|
|
57
|
+
categoryFilter: string[];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Complete extension state
|
|
61
|
+
*/
|
|
62
|
+
export interface ExtensionState {
|
|
63
|
+
connection: ConnectionStateSlice;
|
|
64
|
+
workspace: WorkspaceStateSlice;
|
|
65
|
+
patterns: PatternStateSlice;
|
|
66
|
+
violations: ViolationStateSlice;
|
|
67
|
+
ui: UIStateSlice;
|
|
68
|
+
preferences: PreferencesSlice;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* State update function type
|
|
72
|
+
*/
|
|
73
|
+
export type StateUpdater = (draft: ExtensionState) => void;
|
|
74
|
+
/**
|
|
75
|
+
* State selector function type
|
|
76
|
+
*/
|
|
77
|
+
export type StateSelector<T> = (state: ExtensionState) => T;
|
|
78
|
+
/**
|
|
79
|
+
* State subscription callback
|
|
80
|
+
*/
|
|
81
|
+
export type StateSubscriber<T> = (value: T) => void;
|
|
82
|
+
//# sourceMappingURL=state-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-types.d.ts","sourceRoot":"","sources":["../../src/types/state-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,oBAAoB,CAAC;IACjC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,EAAE,EAAE,YAAY,CAAC;IACjB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,KAAK,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-types.js","sourceRoot":"","sources":["../../src/types/state-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VS Code-specific type definitions
|
|
3
|
+
*
|
|
4
|
+
* Re-exports and extensions of VS Code types.
|
|
5
|
+
*/
|
|
6
|
+
import type * as vscode from 'vscode';
|
|
7
|
+
/**
|
|
8
|
+
* Extended quick pick item with additional data
|
|
9
|
+
*/
|
|
10
|
+
export interface ExtendedQuickPickItem<T = unknown> extends vscode.QuickPickItem {
|
|
11
|
+
data?: T;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Tree item with generic data
|
|
15
|
+
*/
|
|
16
|
+
export interface DataTreeItem<T = unknown> extends vscode.TreeItem {
|
|
17
|
+
data?: T;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Webview message types
|
|
21
|
+
*/
|
|
22
|
+
export interface WebviewMessage<T = unknown> {
|
|
23
|
+
type: string;
|
|
24
|
+
requestId?: string;
|
|
25
|
+
data?: T;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Webview response types
|
|
29
|
+
*/
|
|
30
|
+
export interface WebviewResponse<T = unknown> {
|
|
31
|
+
type: string;
|
|
32
|
+
requestId: string;
|
|
33
|
+
data?: T;
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=vscode-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscode-types.d.ts","sourceRoot":"","sources":["../../src/types/vscode-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,aAAa;IAC9E,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,MAAM,CAAC,QAAQ;IAChE,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscode-types.js","sourceRoot":"","sources":["../../src/types/vscode-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DecorationController - Editor decoration management
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Apply visual decorations to editors.
|
|
5
|
+
*/
|
|
6
|
+
import * as vscode from 'vscode';
|
|
7
|
+
import type { ConfigManager } from '../../config/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Decoration controller for editor visuals
|
|
10
|
+
*/
|
|
11
|
+
export declare class DecorationController implements vscode.Disposable {
|
|
12
|
+
private readonly configManager;
|
|
13
|
+
private readonly decorationTypes;
|
|
14
|
+
private readonly disposables;
|
|
15
|
+
private config;
|
|
16
|
+
constructor(context: vscode.ExtensionContext, configManager: ConfigManager);
|
|
17
|
+
/**
|
|
18
|
+
* Update decorations for the active editor
|
|
19
|
+
*/
|
|
20
|
+
updateDecorations(editor: vscode.TextEditor): void;
|
|
21
|
+
/**
|
|
22
|
+
* Clear all decorations from an editor
|
|
23
|
+
*/
|
|
24
|
+
clearDecorations(editor: vscode.TextEditor): void;
|
|
25
|
+
/**
|
|
26
|
+
* Refresh decorations for all visible editors
|
|
27
|
+
*/
|
|
28
|
+
refreshAll(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Dispose resources
|
|
31
|
+
*/
|
|
32
|
+
dispose(): void;
|
|
33
|
+
private setupEventHandlers;
|
|
34
|
+
private applyGutterDecorations;
|
|
35
|
+
private applyInlineHints;
|
|
36
|
+
private groupBySeverity;
|
|
37
|
+
private diagnosticSeverityToString;
|
|
38
|
+
private buildHoverMessage;
|
|
39
|
+
private getSeverityIcon;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Factory function for creating decoration controller
|
|
43
|
+
*/
|
|
44
|
+
export declare function createDecorationController(context: vscode.ExtensionContext, configManager: ConfigManager): DecorationController;
|
|
45
|
+
//# sourceMappingURL=decoration-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoration-controller.d.ts","sourceRoot":"","sources":["../../../src/ui/decorations/decoration-controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;GAEG;AACH,qBAAa,oBAAqB,YAAW,MAAM,CAAC,UAAU;IAO1D,OAAO,CAAC,QAAQ,CAAC,aAAa;IANhC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,MAAM,CAAgB;gBAG5B,OAAO,EAAE,MAAM,CAAC,gBAAgB,EACf,aAAa,EAAE,aAAa;IAQ/C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI;IAyBlD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,IAAI;IAMjD;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,eAAe;CAYxB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,aAAa,EAAE,aAAa,GAC3B,oBAAoB,CAEtB"}
|