55 PNPM_WORKSPACE_PATTERN ,
66 VERSION_TRIGGER_CHARACTERS ,
77} from '#constants'
8- import { defineExtension } from 'reactive-vscode'
9- import { languages } from 'vscode'
8+ import { defineExtension , watchEffect } from 'reactive-vscode'
9+ import { Disposable , languages } from 'vscode'
1010import { PackageJsonExtractor } from './extractors/package-json'
1111import { PnpmWorkspaceYamlExtractor } from './extractors/pnpm-workspace-yaml'
1212import { displayName , version } from './generated-meta'
@@ -15,14 +15,17 @@ import { registerDiagnosticCollection } from './providers/diagnostics'
1515import { NpmxHoverProvider } from './providers/hover/npmx'
1616import { config , logger } from './state'
1717
18- export const { activate, deactivate } = defineExtension ( ( ctx ) => {
18+ export const { activate, deactivate } = defineExtension ( ( ) => {
1919 logger . info ( `${ displayName } Activated, v${ version } ` )
2020
2121 const packageJsonExtractor = new PackageJsonExtractor ( )
2222 const pnpmWorkspaceYamlExtractor = new PnpmWorkspaceYamlExtractor ( )
2323
24- if ( config . hover . enabled ) {
25- ctx . subscriptions . push (
24+ watchEffect ( ( onCleanup ) => {
25+ if ( ! config . hover . enabled )
26+ return
27+
28+ const disposables = [
2629 languages . registerHoverProvider (
2730 { pattern : PACKAGE_JSON_PATTERN } ,
2831 new NpmxHoverProvider ( packageJsonExtractor ) ,
@@ -31,11 +34,16 @@ export const { activate, deactivate } = defineExtension((ctx) => {
3134 { pattern : PNPM_WORKSPACE_PATTERN } ,
3235 new NpmxHoverProvider ( pnpmWorkspaceYamlExtractor ) ,
3336 ) ,
34- )
35- }
37+ ]
38+
39+ onCleanup ( ( ) => Disposable . from ( ...disposables ) . dispose ( ) )
40+ } )
3641
37- if ( config . completion . version !== 'off' ) {
38- ctx . subscriptions . push (
42+ watchEffect ( ( onCleanup ) => {
43+ if ( config . completion . version === 'off' )
44+ return
45+
46+ const disposables = [
3947 languages . registerCompletionItemProvider (
4048 { pattern : PACKAGE_JSON_PATTERN } ,
4149 new VersionCompletionItemProvider ( packageJsonExtractor ) ,
@@ -46,8 +54,10 @@ export const { activate, deactivate } = defineExtension((ctx) => {
4654 new VersionCompletionItemProvider ( pnpmWorkspaceYamlExtractor ) ,
4755 ...VERSION_TRIGGER_CHARACTERS ,
4856 ) ,
49- )
50- }
57+ ]
58+
59+ onCleanup ( ( ) => Disposable . from ( ...disposables ) . dispose ( ) )
60+ } )
5161
5262 registerDiagnosticCollection ( {
5363 [ PACKAGE_JSON_BASENAME ] : packageJsonExtractor ,
0 commit comments