@@ -6,12 +6,13 @@ import {
66 VERSION_TRIGGER_CHARACTERS ,
77} from '#constants'
88import { defineExtension , useCommands , watchEffect } from 'reactive-vscode'
9- import { Disposable , languages } from 'vscode'
9+ import { CodeActionKind , Disposable , languages } from 'vscode'
1010import { openFileInNpmx } from './commands/open-file-in-npmx'
1111import { openInBrowser } from './commands/open-in-browser'
1212import { PackageJsonExtractor } from './extractors/package-json'
1313import { PnpmWorkspaceYamlExtractor } from './extractors/pnpm-workspace-yaml'
1414import { commands , displayName , version } from './generated-meta'
15+ import { UpgradeProvider } from './providers/code-actions/upgrade'
1516import { VersionCompletionItemProvider } from './providers/completion-item/version'
1617import { registerDiagnosticCollection } from './providers/diagnostics'
1718import { NpmxHoverProvider } from './providers/hover/npmx'
@@ -61,6 +62,20 @@ export const { activate, deactivate } = defineExtension(() => {
6162 onCleanup ( ( ) => Disposable . from ( ...disposables ) . dispose ( ) )
6263 } )
6364
65+ watchEffect ( ( onCleanup ) => {
66+ if ( ! config . diagnostics . upgrade )
67+ return
68+
69+ const provider = new UpgradeProvider ( )
70+ const options = { providedCodeActionKinds : [ CodeActionKind . QuickFix ] }
71+ const disposable = Disposable . from (
72+ languages . registerCodeActionsProvider ( { pattern : PACKAGE_JSON_PATTERN } , provider , options ) ,
73+ languages . registerCodeActionsProvider ( { pattern : PNPM_WORKSPACE_PATTERN } , provider , options ) ,
74+ )
75+
76+ onCleanup ( ( ) => disposable . dispose ( ) )
77+ } )
78+
6479 registerDiagnosticCollection ( {
6580 [ PACKAGE_JSON_BASENAME ] : packageJsonExtractor ,
6681 [ PNPM_WORKSPACE_BASENAME ] : pnpmWorkspaceYamlExtractor ,
0 commit comments