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,68 @@
1
+ /**
2
+ * ServiceContainer - Dependency injection container
3
+ *
4
+ * Single responsibility: Manage service instances and dependencies.
5
+ */
6
+ import type { ServiceContainer as IServiceContainer } from '../types/index.js';
7
+ /**
8
+ * Service registration options
9
+ */
10
+ interface ServiceOptions {
11
+ singleton?: boolean;
12
+ }
13
+ /**
14
+ * Service factory function type
15
+ */
16
+ type ServiceFactory<T> = (container: ServiceContainer) => T;
17
+ /**
18
+ * Simple dependency injection container
19
+ */
20
+ export declare class ServiceContainer implements IServiceContainer {
21
+ private readonly instances;
22
+ private readonly factories;
23
+ private readonly options;
24
+ /**
25
+ * Register a service instance directly
26
+ */
27
+ register(key: string, instance: unknown): void;
28
+ /**
29
+ * Register a service factory for lazy instantiation
30
+ */
31
+ registerFactory(key: string, factory: ServiceFactory<unknown>, options?: ServiceOptions): void;
32
+ /**
33
+ * Get a service instance
34
+ */
35
+ get<T>(key: string): T;
36
+ /**
37
+ * Check if a service is registered
38
+ */
39
+ has(key: string): boolean;
40
+ /**
41
+ * Try to get a service, returning undefined if not found
42
+ */
43
+ tryGet<T>(key: string): T | undefined;
44
+ /**
45
+ * Clear all registered services
46
+ */
47
+ clear(): void;
48
+ }
49
+ /**
50
+ * Service keys for type-safe access
51
+ */
52
+ export declare const ServiceKeys: {
53
+ readonly Logger: "logger";
54
+ readonly StateManager: "stateManager";
55
+ readonly ConfigManager: "configManager";
56
+ readonly ConnectionManager: "connectionManager";
57
+ readonly LanguageClient: "languageClient";
58
+ readonly CommandRouter: "commandRouter";
59
+ readonly TelemetryService: "telemetryService";
60
+ readonly StatusBar: "statusBar";
61
+ readonly DecorationController: "decorationController";
62
+ };
63
+ /**
64
+ * Factory function for creating service containers
65
+ */
66
+ export declare function createServiceContainer(): ServiceContainer;
67
+ export {};
68
+ //# sourceMappingURL=service-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-container.d.ts","sourceRoot":"","sources":["../../src/infrastructure/service-container.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;GAEG;AACH,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,KAAK,CAAC,CAAC;AAE5D;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;IAE7D;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,eAAe,CACb,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAChC,OAAO,GAAE,cAAoC,GAC5C,IAAI;IAKP;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC;IAwBtB;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAOrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAC;AAEX;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * ServiceContainer - Dependency injection container
3
+ *
4
+ * Single responsibility: Manage service instances and dependencies.
5
+ */
6
+ /**
7
+ * Simple dependency injection container
8
+ */
9
+ export class ServiceContainer {
10
+ instances = new Map();
11
+ factories = new Map();
12
+ options = new Map();
13
+ /**
14
+ * Register a service instance directly
15
+ */
16
+ register(key, instance) {
17
+ this.instances.set(key, instance);
18
+ }
19
+ /**
20
+ * Register a service factory for lazy instantiation
21
+ */
22
+ registerFactory(key, factory, options = { singleton: true }) {
23
+ this.factories.set(key, factory);
24
+ this.options.set(key, options);
25
+ }
26
+ /**
27
+ * Get a service instance
28
+ */
29
+ get(key) {
30
+ // Check for existing instance
31
+ if (this.instances.has(key)) {
32
+ return this.instances.get(key);
33
+ }
34
+ // Check for factory
35
+ const factory = this.factories.get(key);
36
+ if (!factory) {
37
+ throw new Error(`Service not registered: ${key}`);
38
+ }
39
+ // Create instance
40
+ const instance = factory(this);
41
+ // Cache if singleton
42
+ const opts = this.options.get(key);
43
+ if (opts?.singleton !== false) {
44
+ this.instances.set(key, instance);
45
+ }
46
+ return instance;
47
+ }
48
+ /**
49
+ * Check if a service is registered
50
+ */
51
+ has(key) {
52
+ return this.instances.has(key) || this.factories.has(key);
53
+ }
54
+ /**
55
+ * Try to get a service, returning undefined if not found
56
+ */
57
+ tryGet(key) {
58
+ if (this.has(key)) {
59
+ return this.get(key);
60
+ }
61
+ return undefined;
62
+ }
63
+ /**
64
+ * Clear all registered services
65
+ */
66
+ clear() {
67
+ this.instances.clear();
68
+ this.factories.clear();
69
+ this.options.clear();
70
+ }
71
+ }
72
+ /**
73
+ * Service keys for type-safe access
74
+ */
75
+ export const ServiceKeys = {
76
+ Logger: 'logger',
77
+ StateManager: 'stateManager',
78
+ ConfigManager: 'configManager',
79
+ ConnectionManager: 'connectionManager',
80
+ LanguageClient: 'languageClient',
81
+ CommandRouter: 'commandRouter',
82
+ TelemetryService: 'telemetryService',
83
+ StatusBar: 'statusBar',
84
+ DecorationController: 'decorationController',
85
+ };
86
+ /**
87
+ * Factory function for creating service containers
88
+ */
89
+ export function createServiceContainer() {
90
+ return new ServiceContainer();
91
+ }
92
+ //# sourceMappingURL=service-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-container.js","sourceRoot":"","sources":["../../src/infrastructure/service-container.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,SAAS,GAAG,IAAI,GAAG,EAAmC,CAAC;IACvD,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,QAAiB;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,eAAe,CACb,GAAW,EACX,OAAgC,EAChC,UAA0B,EAAE,SAAS,EAAE,IAAI,EAAE;QAE7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAW;QAChB,8BAA8B;QAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QACtC,CAAC;QAED,oBAAoB;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,kBAAkB;QAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAM,CAAC;QAEpC,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,MAAM,CAAI,GAAW;QACnB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,GAAG,CAAI,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,gBAAgB,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initial-state.d.ts","sourceRoot":"","sources":["../../src/state/initial-state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAgDnD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/state/selectors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,MAAM,CACrB,CAAC;AAErC,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,OAAO,CACD,CAAC;AAErD,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CACxB,CAAC;AAExC,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAClB,CAAC;AAM5C,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,OAAO,CACf,CAAC;AAEzC,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CACnB,CAAC;AAEzC,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,OAAO,CACf,CAAC;AAEtC,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CACnB,CAAC;AAM1C,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,MAAM,CACpB,CAAC;AAElC,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACrC,CAAC;AAEvC,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACrC,CAAC;AAErC,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAC5B,CAAC;AAMxC,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,CACpB,CAAC;AAEpC,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACrC,CAAC;AAEzC,eAAO,MAAM,0BAA0B,EAAE,aAAa,CAAC,MAAM,CAChB,CAAC;AAE9C,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAClB,CAAC;AAMzC,eAAO,MAAM,sBAAsB,EAAE,aAAa,CAAC,OAAO,CACpB,CAAC;AAEvC,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,OAAO,CACpB,CAAC;AAEtC,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAC1B,CAAC;AAMlC,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,OAAO,CACX,CAAC;AAExC,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,OAAO,CACX,CAAC;AAE/C,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,EAAE,CACZ,CAAC;AAE9C,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,MAAM,EAAE,CACZ,CAAC;AAM9C,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAIC,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAKC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/state/state-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAO3B;;GAEG;AACH,qBAAa,YAAa,YAAW,MAAM,CAAC,UAAU;IACpD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,OAAO,EAAE,MAAM,CAAC,gBAAgB;IAK5C;;OAEG;IACH,QAAQ,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIpC;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAWnC;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IAUrC;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAC3B,MAAM,CAAC,UAAU;IAoBpB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,CAAC,UAAU;IAS1E;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;CAkBrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,gBAAgB,GAAG,YAAY,CAEjF"}
@@ -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 {
106
+ // Listener error, continue with others
107
+ }
108
+ }
109
+ }
110
+ loadState() {
111
+ const initial = createInitialState();
112
+ try {
113
+ const persisted = this.context.globalState.get(PERSISTENCE_KEY);
114
+ if (persisted?.preferences !== undefined) {
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 {
126
+ // Failed to load persisted state, use initial
127
+ }
128
+ return initial;
129
+ }
130
+ persistState() {
131
+ // Only persist user preferences
132
+ const toPersist = {
133
+ preferences: this.state.preferences,
134
+ };
135
+ void this.context.globalState.update(PERSISTENCE_KEY, toPersist);
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 @@
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,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(key: string, instance: unknown): 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,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Extension-level type definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=extension-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-types.js","sourceRoot":"","sources":["../../src/types/extension-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -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 @@
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":"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":"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;IAuBlD;;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;IAoBzB,OAAO,CAAC,eAAe;CAYxB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAChC,aAAa,EAAE,aAAa,GAC3B,oBAAoB,CAEtB"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * DecorationController - Editor decoration management
3
+ *
4
+ * Single responsibility: Apply visual decorations to editors.
5
+ */
6
+ import * as vscode from 'vscode';
7
+ import { createDecorationTypes } from './decoration-types.js';
8
+ /**
9
+ * Decoration controller for editor visuals
10
+ */
11
+ export class DecorationController {
12
+ configManager;
13
+ decorationTypes;
14
+ disposables = [];
15
+ config;
16
+ constructor(context, configManager) {
17
+ this.configManager = configManager;
18
+ this.decorationTypes = createDecorationTypes(context);
19
+ this.config = configManager.get('display');
20
+ this.setupEventHandlers();
21
+ }
22
+ /**
23
+ * Update decorations for the active editor
24
+ */
25
+ updateDecorations(editor) {
26
+ const uri = editor.document.uri;
27
+ const diagnostics = vscode.languages.getDiagnostics(uri);
28
+ // Filter to Drift diagnostics only
29
+ const driftDiagnostics = diagnostics.filter(d => d.source === 'drift');
30
+ // Clear all decorations first
31
+ this.clearDecorations(editor);
32
+ if (driftDiagnostics.length === 0) {
33
+ return;
34
+ }
35
+ // Apply gutter decorations
36
+ if (this.config.showGutterIcons) {
37
+ this.applyGutterDecorations(editor, driftDiagnostics);
38
+ }
39
+ // Apply inline hints
40
+ if (this.config.showInlineHints) {
41
+ this.applyInlineHints(editor, driftDiagnostics);
42
+ }
43
+ }
44
+ /**
45
+ * Clear all decorations from an editor
46
+ */
47
+ clearDecorations(editor) {
48
+ for (const [, type] of this.decorationTypes) {
49
+ editor.setDecorations(type, []);
50
+ }
51
+ }
52
+ /**
53
+ * Refresh decorations for all visible editors
54
+ */
55
+ refreshAll() {
56
+ for (const editor of vscode.window.visibleTextEditors) {
57
+ this.updateDecorations(editor);
58
+ }
59
+ }
60
+ /**
61
+ * Dispose resources
62
+ */
63
+ dispose() {
64
+ for (const d of this.disposables) {
65
+ d.dispose();
66
+ }
67
+ }
68
+ setupEventHandlers() {
69
+ // Update decorations when active editor changes
70
+ this.disposables.push(vscode.window.onDidChangeActiveTextEditor(editor => {
71
+ if (editor) {
72
+ this.updateDecorations(editor);
73
+ }
74
+ }));
75
+ // Update decorations when diagnostics change
76
+ this.disposables.push(vscode.languages.onDidChangeDiagnostics(event => {
77
+ const editor = vscode.window.activeTextEditor;
78
+ if (editor && event.uris.some(uri => uri.toString() === editor.document.uri.toString())) {
79
+ this.updateDecorations(editor);
80
+ }
81
+ }));
82
+ // Update config when it changes
83
+ this.disposables.push(this.configManager.onConfigChange(event => {
84
+ if (event.section === 'display') {
85
+ this.config = event.newValue;
86
+ this.refreshAll();
87
+ }
88
+ }));
89
+ }
90
+ applyGutterDecorations(editor, diagnostics) {
91
+ // Group diagnostics by severity
92
+ const bySeverity = this.groupBySeverity(diagnostics);
93
+ for (const [severity, diags] of bySeverity) {
94
+ // Check if this severity is in the filter
95
+ if (!this.config.severityFilter.includes(severity)) {
96
+ continue;
97
+ }
98
+ const decorationType = this.decorationTypes.get(`gutter-${severity}`);
99
+ if (!decorationType) {
100
+ continue;
101
+ }
102
+ const decorations = diags.map(d => ({
103
+ range: d.range,
104
+ hoverMessage: this.buildHoverMessage(d),
105
+ }));
106
+ editor.setDecorations(decorationType, decorations);
107
+ }
108
+ }
109
+ applyInlineHints(editor, diagnostics) {
110
+ const decorationType = this.decorationTypes.get('inline-hint');
111
+ if (!decorationType) {
112
+ return;
113
+ }
114
+ // Only show hints for filtered severities
115
+ const filtered = diagnostics.filter(d => {
116
+ const severity = this.diagnosticSeverityToString(d.severity);
117
+ return this.config.severityFilter.includes(severity);
118
+ });
119
+ // Group by line to avoid multiple hints on same line
120
+ const byLine = new Map();
121
+ for (const d of filtered) {
122
+ const line = d.range.start.line;
123
+ if (!byLine.has(line)) {
124
+ byLine.set(line, d);
125
+ }
126
+ }
127
+ const decorations = [];
128
+ for (const [, diagnostic] of byLine) {
129
+ decorations.push({
130
+ range: new vscode.Range(diagnostic.range.end.line, Number.MAX_SAFE_INTEGER, diagnostic.range.end.line, Number.MAX_SAFE_INTEGER),
131
+ renderOptions: {
132
+ after: {
133
+ contentText: ` ← ${diagnostic.message}`,
134
+ },
135
+ },
136
+ });
137
+ }
138
+ editor.setDecorations(decorationType, decorations);
139
+ }
140
+ groupBySeverity(diagnostics) {
141
+ const groups = new Map();
142
+ for (const d of diagnostics) {
143
+ const severity = this.diagnosticSeverityToString(d.severity);
144
+ const group = groups.get(severity) ?? [];
145
+ group.push(d);
146
+ groups.set(severity, group);
147
+ }
148
+ return groups;
149
+ }
150
+ diagnosticSeverityToString(severity) {
151
+ switch (severity) {
152
+ case vscode.DiagnosticSeverity.Error:
153
+ return 'error';
154
+ case vscode.DiagnosticSeverity.Warning:
155
+ return 'warning';
156
+ case vscode.DiagnosticSeverity.Information:
157
+ return 'info';
158
+ case vscode.DiagnosticSeverity.Hint:
159
+ return 'hint';
160
+ }
161
+ }
162
+ buildHoverMessage(diagnostic) {
163
+ const md = new vscode.MarkdownString();
164
+ md.isTrusted = true;
165
+ md.supportThemeIcons = true;
166
+ const icon = this.getSeverityIcon(diagnostic.severity);
167
+ md.appendMarkdown(`${icon} **${diagnostic.message}**\n\n`);
168
+ if (diagnostic.code !== null) {
169
+ const codeStr = typeof diagnostic.code === 'object' ? String(diagnostic.code.value) : String(diagnostic.code);
170
+ md.appendMarkdown(`Pattern: \`${codeStr}\`\n\n`);
171
+ }
172
+ md.appendMarkdown(`---\n\n`);
173
+ md.appendMarkdown(`[Quick Fix](command:editor.action.quickFix) | `);
174
+ md.appendMarkdown(`[Ignore](command:drift.ignoreOnce)\n`);
175
+ return md;
176
+ }
177
+ getSeverityIcon(severity) {
178
+ switch (severity) {
179
+ case vscode.DiagnosticSeverity.Error:
180
+ return '$(error)';
181
+ case vscode.DiagnosticSeverity.Warning:
182
+ return '$(warning)';
183
+ case vscode.DiagnosticSeverity.Information:
184
+ return '$(info)';
185
+ case vscode.DiagnosticSeverity.Hint:
186
+ return '$(lightbulb)';
187
+ }
188
+ }
189
+ }
190
+ /**
191
+ * Factory function for creating decoration controller
192
+ */
193
+ export function createDecorationController(context, configManager) {
194
+ return new DecorationController(context, configManager);
195
+ }
196
+ //# sourceMappingURL=decoration-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration-controller.js","sourceRoot":"","sources":["../../../src/ui/decorations/decoration-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoration-types.d.ts","sourceRoot":"","sources":["../../../src/ui/decorations/decoration-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,UAAU,QAAQ,EAAE,GACpB,aAAa,GACb,cAAc,QAAQ,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAsBtF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,CAAC,gBAAgB,GAC/B,eAAe,CAqCjB;AA+BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE7D"}