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,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle connection-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create connection command handlers
|
|
9
|
+
*/
|
|
10
|
+
export function createConnectionHandlers(router, connectionManager, stateManager, notifications) {
|
|
11
|
+
// Reconnect command
|
|
12
|
+
router.register({
|
|
13
|
+
id: DRIFT_COMMANDS.reconnect,
|
|
14
|
+
handler: async (_ctx) => {
|
|
15
|
+
await notifications.withProgress('Reconnecting...', async (progress) => {
|
|
16
|
+
progress.report({ message: 'Disconnecting...' });
|
|
17
|
+
await connectionManager.disconnect();
|
|
18
|
+
progress.report({ message: 'Connecting...' });
|
|
19
|
+
await connectionManager.connect();
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
// Show status command
|
|
24
|
+
router.register({
|
|
25
|
+
id: DRIFT_COMMANDS.showStatus,
|
|
26
|
+
handler: async (_ctx) => {
|
|
27
|
+
const state = stateManager.getState();
|
|
28
|
+
const { connection, patterns, violations, workspace } = state;
|
|
29
|
+
const items = [
|
|
30
|
+
`Connection: ${connection.status}`,
|
|
31
|
+
`Server Version: ${connection.serverVersion || 'Unknown'}`,
|
|
32
|
+
`Patterns: ${patterns.total}`,
|
|
33
|
+
`Violations: ${violations.total}`,
|
|
34
|
+
`Last Scan: ${workspace.lastScanTime ? new Date(workspace.lastScanTime).toLocaleString() : 'Never'}`,
|
|
35
|
+
];
|
|
36
|
+
await notifications.info(items.join('\n'), [], { detail: 'Drift Status' });
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
// Show error command
|
|
40
|
+
router.register({
|
|
41
|
+
id: DRIFT_COMMANDS.showError,
|
|
42
|
+
handler: async (_ctx) => {
|
|
43
|
+
const state = stateManager.getState();
|
|
44
|
+
const error = state.connection.lastError;
|
|
45
|
+
if (error) {
|
|
46
|
+
await notifications.error(error, [
|
|
47
|
+
{ title: 'Retry', command: DRIFT_COMMANDS.reconnect },
|
|
48
|
+
{ title: 'Show Logs', command: 'drift.showLogs' },
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await notifications.info('No errors to display.');
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=connection-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/connection-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAqB,EACrB,iBAAoC,EACpC,YAA0B,EAC1B,aAAkC;IAElC,oBAAoB;IACpB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,SAAS;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,aAAa,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBACjD,MAAM,iBAAiB,CAAC,UAAU,EAAE,CAAC;gBAErC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;gBAC9C,MAAM,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,UAAU;QAC7B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;YAE9D,MAAM,KAAK,GAAG;gBACZ,eAAe,UAAU,CAAC,MAAM,EAAE;gBAClC,mBAAmB,UAAU,CAAC,aAAa,IAAI,SAAS,EAAE;gBAC1D,aAAa,QAAQ,CAAC,KAAK,EAAE;gBAC7B,eAAe,UAAU,CAAC,KAAK,EAAE;gBACjC,cAAc,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE;aACrG,CAAC;YAEF,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAC7E,CAAC;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,SAAS;QAC5B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;YAEzC,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE;oBAC/B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE;oBACrD,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE;iBAClD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants command handlers
|
|
3
|
+
*
|
|
4
|
+
* Handlers for constants-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { ConstantsTreeProvider } from '../../views/constants-tree-provider.js';
|
|
7
|
+
/**
|
|
8
|
+
* Create constants command handlers
|
|
9
|
+
*/
|
|
10
|
+
export declare function createConstantsHandlers(constantsProvider: ConstantsTreeProvider): Record<string, (...args: unknown[]) => Promise<void>>;
|
|
11
|
+
//# sourceMappingURL=constants-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/constants-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,iBAAiB,EAAE,qBAAqB,GACvC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAmFvD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants command handlers
|
|
3
|
+
*
|
|
4
|
+
* Handlers for constants-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import * as vscode from 'vscode';
|
|
7
|
+
/**
|
|
8
|
+
* Create constants command handlers
|
|
9
|
+
*/
|
|
10
|
+
export function createConstantsHandlers(constantsProvider) {
|
|
11
|
+
return {
|
|
12
|
+
/**
|
|
13
|
+
* Show constants view by category
|
|
14
|
+
*/
|
|
15
|
+
'drift.showConstantsByCategory': async () => {
|
|
16
|
+
constantsProvider.setViewMode('category');
|
|
17
|
+
await vscode.commands.executeCommand('drift.constantsView.focus');
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* Show constants view by language
|
|
21
|
+
*/
|
|
22
|
+
'drift.showConstantsByLanguage': async () => {
|
|
23
|
+
constantsProvider.setViewMode('language');
|
|
24
|
+
await vscode.commands.executeCommand('drift.constantsView.focus');
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* Show constant issues
|
|
28
|
+
*/
|
|
29
|
+
'drift.showConstantIssues': async () => {
|
|
30
|
+
constantsProvider.setViewMode('issues');
|
|
31
|
+
await vscode.commands.executeCommand('drift.constantsView.focus');
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Go to constant definition
|
|
35
|
+
*/
|
|
36
|
+
'drift.goToConstant': async (file, line) => {
|
|
37
|
+
if (typeof file !== 'string' || typeof line !== 'number') {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const uri = vscode.Uri.file(file);
|
|
42
|
+
const document = await vscode.workspace.openTextDocument(uri);
|
|
43
|
+
const editor = await vscode.window.showTextDocument(document);
|
|
44
|
+
const position = new vscode.Position(Math.max(0, line - 1), 0);
|
|
45
|
+
editor.selection = new vscode.Selection(position, position);
|
|
46
|
+
editor.revealRange(new vscode.Range(position, position), vscode.TextEditorRevealType.InCenter);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
vscode.window.showErrorMessage(`Failed to open file: ${file}`);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* Find constant usages
|
|
54
|
+
*/
|
|
55
|
+
'drift.findConstantUsages': async (constantName) => {
|
|
56
|
+
if (typeof constantName !== 'string') {
|
|
57
|
+
// If no constant name provided, prompt for one
|
|
58
|
+
const input = await vscode.window.showInputBox({
|
|
59
|
+
prompt: 'Enter constant name to search for',
|
|
60
|
+
placeHolder: 'CONSTANT_NAME',
|
|
61
|
+
});
|
|
62
|
+
if (!input) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
constantName = input;
|
|
66
|
+
}
|
|
67
|
+
// Use VSCode's built-in search
|
|
68
|
+
await vscode.commands.executeCommand('workbench.action.findInFiles', {
|
|
69
|
+
query: constantName,
|
|
70
|
+
isRegex: false,
|
|
71
|
+
isCaseSensitive: true,
|
|
72
|
+
matchWholeWord: true,
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* Show constants overview
|
|
77
|
+
*/
|
|
78
|
+
'drift.showConstants': async () => {
|
|
79
|
+
constantsProvider.setViewMode('category');
|
|
80
|
+
await vscode.commands.executeCommand('drift.constantsView.focus');
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=constants-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/constants-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command handlers module exports
|
|
3
|
+
*/
|
|
4
|
+
export { createConnectionHandlers } from './connection-handlers.js';
|
|
5
|
+
export { createScanHandlers } from './scan-handlers.js';
|
|
6
|
+
export { createPatternHandlers } from './pattern-handlers.js';
|
|
7
|
+
export { createViolationHandlers } from './violation-handlers.js';
|
|
8
|
+
export { createUIHandlers } from './ui-handlers.js';
|
|
9
|
+
export { createConstantsHandlers } from './constants-handlers.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command handlers module exports
|
|
3
|
+
*/
|
|
4
|
+
export { createConnectionHandlers } from './connection-handlers.js';
|
|
5
|
+
export { createScanHandlers } from './scan-handlers.js';
|
|
6
|
+
export { createPatternHandlers } from './pattern-handlers.js';
|
|
7
|
+
export { createViolationHandlers } from './violation-handlers.js';
|
|
8
|
+
export { createUIHandlers } from './ui-handlers.js';
|
|
9
|
+
export { createConstantsHandlers } from './constants-handlers.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle pattern-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { ConnectionManager } from '../../client/index.js';
|
|
7
|
+
import type { NotificationService } from '../../ui/notifications/notification-service.js';
|
|
8
|
+
import type { CommandRouter } from '../command-router.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create pattern command handlers
|
|
11
|
+
*/
|
|
12
|
+
export declare function createPatternHandlers(router: CommandRouter, connectionManager: ConnectionManager, notifications: NotificationService): void;
|
|
13
|
+
//# sourceMappingURL=pattern-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/pattern-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAU1E;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,mBAAmB,GACjC,IAAI,CAyIN"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle pattern-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import * as vscode from 'vscode';
|
|
7
|
+
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create pattern command handlers
|
|
10
|
+
*/
|
|
11
|
+
export function createPatternHandlers(router, connectionManager, notifications) {
|
|
12
|
+
// Show patterns command
|
|
13
|
+
router.register({
|
|
14
|
+
id: DRIFT_COMMANDS.showPatterns,
|
|
15
|
+
handler: async (_ctx) => {
|
|
16
|
+
// Focus the patterns tree view
|
|
17
|
+
await vscode.commands.executeCommand('drift.patterns.focus');
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
// Approve pattern command
|
|
21
|
+
router.register({
|
|
22
|
+
id: DRIFT_COMMANDS.approvePattern,
|
|
23
|
+
handler: async (ctx) => {
|
|
24
|
+
const client = connectionManager.getClient();
|
|
25
|
+
if (!client) {
|
|
26
|
+
throw new Error('Not connected to server');
|
|
27
|
+
}
|
|
28
|
+
const patternId = ctx.args[0];
|
|
29
|
+
if (!patternId) {
|
|
30
|
+
// Show pattern picker
|
|
31
|
+
const patterns = await client.sendRequest('drift/patterns/list', { status: 'discovered' });
|
|
32
|
+
if (patterns.length === 0) {
|
|
33
|
+
await notifications.info('No patterns to approve.');
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const items = patterns.map((p) => ({
|
|
37
|
+
label: p.name,
|
|
38
|
+
description: p.id,
|
|
39
|
+
id: p.id,
|
|
40
|
+
}));
|
|
41
|
+
const selected = await notifications.quickPick(items, { title: 'Select Pattern to Approve' });
|
|
42
|
+
if (!selected) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
await client.sendRequest('drift/patterns/approve', { id: selected.id });
|
|
46
|
+
await notifications.info(`Pattern "${selected.label}" approved.`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
await client.sendRequest('drift/patterns/approve', { id: patternId });
|
|
50
|
+
await notifications.info(`Pattern approved.`);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
// Ignore pattern command
|
|
55
|
+
router.register({
|
|
56
|
+
id: DRIFT_COMMANDS.ignorePattern,
|
|
57
|
+
handler: async (ctx) => {
|
|
58
|
+
const client = connectionManager.getClient();
|
|
59
|
+
if (!client) {
|
|
60
|
+
throw new Error('Not connected to server');
|
|
61
|
+
}
|
|
62
|
+
const patternId = ctx.args[0];
|
|
63
|
+
if (!patternId) {
|
|
64
|
+
// Show pattern picker
|
|
65
|
+
const patterns = await client.sendRequest('drift/patterns/list', { status: 'discovered' });
|
|
66
|
+
if (patterns.length === 0) {
|
|
67
|
+
await notifications.info('No patterns to ignore.');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const items = patterns.map((p) => ({
|
|
71
|
+
label: p.name,
|
|
72
|
+
description: p.id,
|
|
73
|
+
id: p.id,
|
|
74
|
+
}));
|
|
75
|
+
const selected = await notifications.quickPick(items, { title: 'Select Pattern to Ignore' });
|
|
76
|
+
if (!selected) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
await client.sendRequest('drift/patterns/ignore', { id: selected.id });
|
|
80
|
+
await notifications.info(`Pattern "${selected.label}" ignored.`);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
await client.sendRequest('drift/patterns/ignore', { id: patternId });
|
|
84
|
+
await notifications.info(`Pattern ignored.`);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
// Create variant command
|
|
89
|
+
router.register({
|
|
90
|
+
id: DRIFT_COMMANDS.createVariant,
|
|
91
|
+
handler: async (ctx) => {
|
|
92
|
+
const client = connectionManager.getClient();
|
|
93
|
+
if (!client) {
|
|
94
|
+
throw new Error('Not connected to server');
|
|
95
|
+
}
|
|
96
|
+
const patternId = ctx.args[0];
|
|
97
|
+
const violationId = ctx.args[1];
|
|
98
|
+
if (!patternId) {
|
|
99
|
+
await notifications.warning('No pattern specified for variant creation.');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Get variant name from user
|
|
103
|
+
const name = await notifications.inputBox({
|
|
104
|
+
title: 'Create Variant',
|
|
105
|
+
prompt: 'Enter a name for this variant',
|
|
106
|
+
placeHolder: 'e.g., legacy-auth-pattern',
|
|
107
|
+
});
|
|
108
|
+
if (!name) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// Get variant description
|
|
112
|
+
const description = await notifications.inputBox({
|
|
113
|
+
title: 'Create Variant',
|
|
114
|
+
prompt: 'Enter a description (optional)',
|
|
115
|
+
placeHolder: 'e.g., Used in legacy authentication module',
|
|
116
|
+
});
|
|
117
|
+
await client.sendRequest('drift/patterns/createVariant', {
|
|
118
|
+
patternId,
|
|
119
|
+
violationId,
|
|
120
|
+
name,
|
|
121
|
+
description,
|
|
122
|
+
});
|
|
123
|
+
await notifications.info(`Variant "${name}" created.`);
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=pattern-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/pattern-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scan command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle scan-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { ConnectionManager } from '../../client/index.js';
|
|
7
|
+
import type { EventBus } from '../../infrastructure/event-bus.js';
|
|
8
|
+
import type { StateManager } from '../../state/index.js';
|
|
9
|
+
import type { NotificationService } from '../../ui/notifications/notification-service.js';
|
|
10
|
+
import type { CommandRouter } from '../command-router.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create scan command handlers
|
|
13
|
+
*/
|
|
14
|
+
export declare function createScanHandlers(router: CommandRouter, connectionManager: ConnectionManager, stateManager: StateManager, notifications: NotificationService, eventBus: EventBus): void;
|
|
15
|
+
//# sourceMappingURL=scan-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/scan-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAG1E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,QAAQ,GACjB,IAAI,CAgFN"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scan command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle scan-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import * as vscode from 'vscode';
|
|
7
|
+
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create scan command handlers
|
|
10
|
+
*/
|
|
11
|
+
export function createScanHandlers(router, connectionManager, stateManager, notifications, eventBus) {
|
|
12
|
+
// Rescan workspace command
|
|
13
|
+
router.register({
|
|
14
|
+
id: DRIFT_COMMANDS.rescan,
|
|
15
|
+
showProgress: true,
|
|
16
|
+
progressTitle: 'Scanning workspace...',
|
|
17
|
+
handler: async (ctx) => {
|
|
18
|
+
const client = connectionManager.getClient();
|
|
19
|
+
if (!client) {
|
|
20
|
+
throw new Error('Not connected to server');
|
|
21
|
+
}
|
|
22
|
+
// Update state to scanning
|
|
23
|
+
stateManager.update(draft => {
|
|
24
|
+
draft.workspace.scanning = true;
|
|
25
|
+
});
|
|
26
|
+
eventBus.emit('scan:started', { files: 0 });
|
|
27
|
+
try {
|
|
28
|
+
ctx.progress?.report({ message: 'Analyzing patterns...' });
|
|
29
|
+
const result = await client.sendRequest('drift/rescan');
|
|
30
|
+
// Update state with results
|
|
31
|
+
stateManager.update(draft => {
|
|
32
|
+
draft.workspace.scanning = false;
|
|
33
|
+
draft.workspace.lastScanTime = Date.now();
|
|
34
|
+
draft.patterns.total = result.patterns;
|
|
35
|
+
draft.violations.total = result.violations;
|
|
36
|
+
});
|
|
37
|
+
eventBus.emit('scan:completed', {
|
|
38
|
+
duration: result.duration,
|
|
39
|
+
patterns: result.patterns,
|
|
40
|
+
violations: result.violations,
|
|
41
|
+
});
|
|
42
|
+
await notifications.info(`Scan complete: ${result.patterns} patterns, ${result.violations} violations`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
stateManager.update(draft => {
|
|
46
|
+
draft.workspace.scanning = false;
|
|
47
|
+
});
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
// Scan current file command
|
|
53
|
+
router.register({
|
|
54
|
+
id: DRIFT_COMMANDS.scanFile,
|
|
55
|
+
handler: async (_ctx) => {
|
|
56
|
+
const editor = vscode.window.activeTextEditor;
|
|
57
|
+
if (!editor) {
|
|
58
|
+
await notifications.warning('No file is currently open.');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const client = connectionManager.getClient();
|
|
62
|
+
if (!client) {
|
|
63
|
+
throw new Error('Not connected to server');
|
|
64
|
+
}
|
|
65
|
+
const uri = editor.document.uri.toString();
|
|
66
|
+
await notifications.withProgress('Scanning file...', async (progress) => {
|
|
67
|
+
progress.report({ message: editor.document.fileName });
|
|
68
|
+
await client.sendRequest('drift/scanFile', { uri });
|
|
69
|
+
await notifications.info('File scan complete.');
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=scan-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/scan-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle UI-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { NotificationService } from '../../ui/notifications/notification-service.js';
|
|
7
|
+
import type { CommandRouter } from '../command-router.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create UI command handlers
|
|
10
|
+
*/
|
|
11
|
+
export declare function createUIHandlers(router: CommandRouter, notifications: NotificationService): void;
|
|
12
|
+
//# sourceMappingURL=ui-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/ui-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAE1E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,mBAAmB,GACjC,IAAI,CAoEN"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle UI-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import * as vscode from 'vscode';
|
|
7
|
+
import { DRIFT_COMMANDS } from '../command-definitions.js';
|
|
8
|
+
/**
|
|
9
|
+
* Create UI command handlers
|
|
10
|
+
*/
|
|
11
|
+
export function createUIHandlers(router, notifications) {
|
|
12
|
+
// Open dashboard command
|
|
13
|
+
router.register({
|
|
14
|
+
id: DRIFT_COMMANDS.openDashboard,
|
|
15
|
+
handler: async (_ctx) => {
|
|
16
|
+
// Open the dashboard webview
|
|
17
|
+
await vscode.commands.executeCommand('drift.dashboard.focus');
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
// Open settings command
|
|
21
|
+
router.register({
|
|
22
|
+
id: DRIFT_COMMANDS.openSettings,
|
|
23
|
+
handler: async (_ctx) => {
|
|
24
|
+
// Open VS Code settings filtered to Drift
|
|
25
|
+
await vscode.commands.executeCommand('workbench.action.openSettings', '@ext:drift.drift');
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
// Export patterns command
|
|
29
|
+
router.register({
|
|
30
|
+
id: DRIFT_COMMANDS.exportPatterns,
|
|
31
|
+
showProgress: true,
|
|
32
|
+
progressTitle: 'Exporting patterns...',
|
|
33
|
+
handler: async (_ctx) => {
|
|
34
|
+
// Show save dialog
|
|
35
|
+
const uri = await vscode.window.showSaveDialog({
|
|
36
|
+
defaultUri: vscode.Uri.file('drift-patterns.json'),
|
|
37
|
+
filters: {
|
|
38
|
+
'JSON': ['json'],
|
|
39
|
+
'All Files': ['*'],
|
|
40
|
+
},
|
|
41
|
+
title: 'Export Patterns',
|
|
42
|
+
});
|
|
43
|
+
if (!uri) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// TODO: Implement actual export via LSP
|
|
47
|
+
await notifications.info(`Patterns exported to ${uri.fsPath}`);
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
// Generate report command
|
|
51
|
+
router.register({
|
|
52
|
+
id: DRIFT_COMMANDS.generateReport,
|
|
53
|
+
showProgress: true,
|
|
54
|
+
progressTitle: 'Generating report...',
|
|
55
|
+
handler: async (_ctx) => {
|
|
56
|
+
// Show save dialog
|
|
57
|
+
const uri = await vscode.window.showSaveDialog({
|
|
58
|
+
defaultUri: vscode.Uri.file('drift-report.html'),
|
|
59
|
+
filters: {
|
|
60
|
+
'HTML': ['html'],
|
|
61
|
+
'Markdown': ['md'],
|
|
62
|
+
'JSON': ['json'],
|
|
63
|
+
},
|
|
64
|
+
title: 'Generate Report',
|
|
65
|
+
});
|
|
66
|
+
if (!uri) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// TODO: Implement actual report generation via LSP
|
|
70
|
+
await notifications.info(`Report generated at ${uri.fsPath}`);
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ui-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-handlers.js","sourceRoot":"","sources":["../../../src/commands/handlers/ui-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAK3D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,aAAkC;IAElC,yBAAyB;IACzB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,aAAa;QAChC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,6BAA6B;YAC7B,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,YAAY;QAC/B,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,0CAA0C;YAC1C,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAClC,+BAA+B,EAC/B,kBAAkB,CACnB,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,cAAc;QACjC,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,uBAAuB;QACtC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,mBAAmB;YACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAClD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,MAAM,CAAC;oBAChB,WAAW,EAAE,CAAC,GAAG,CAAC;iBACnB;gBACD,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAA,OAAO;YAAA,CAAC;YAEnB,wCAAwC;YACxC,MAAM,aAAa,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;KACF,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,CAAC,QAAQ,CAAC;QACd,EAAE,EAAE,cAAc,CAAC,cAAc;QACjC,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,sBAAsB;QACrC,OAAO,EAAE,KAAK,EAAE,IAAoB,EAAE,EAAE;YACtC,mBAAmB;YACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC;gBAC7C,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBAChD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,MAAM,CAAC;oBAChB,UAAU,EAAE,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,CAAC,MAAM,CAAC;iBACjB;gBACD,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAA,OAAO;YAAA,CAAC;YAEnB,mDAAmD;YACnD,MAAM,aAAa,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Violation command handlers
|
|
3
|
+
*
|
|
4
|
+
* Single responsibility: Handle violation-related commands.
|
|
5
|
+
*/
|
|
6
|
+
import type { ConnectionManager } from '../../client/index.js';
|
|
7
|
+
import type { NotificationService } from '../../ui/notifications/notification-service.js';
|
|
8
|
+
import type { CommandRouter } from '../command-router.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create violation command handlers
|
|
11
|
+
*/
|
|
12
|
+
export declare function createViolationHandlers(router: CommandRouter, connectionManager: ConnectionManager, notifications: NotificationService): void;
|
|
13
|
+
//# sourceMappingURL=violation-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"violation-handlers.d.ts","sourceRoot":"","sources":["../../../src/commands/handlers/violation-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAG1E;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,mBAAmB,GACjC,IAAI,CA0EN"}
|