File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
packages/typescript-plugin/src Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 11import { dirname , resolve } from 'path' ;
2- import { decorateLanguageService } from './language-service' ;
2+ import { decorateLanguageService , isPatched } from './language-service' ;
33import { Logger } from './logger' ;
44import { patchModuleLoader } from './module-loader' ;
55import { SvelteSnapshotManager } from './svelte-snapshots' ;
@@ -16,6 +16,11 @@ function init(modules: { typescript: typeof ts }) {
1616 return info . languageService ;
1717 }
1818
19+ if ( isPatched ( info . languageService ) ) {
20+ logger . log ( 'Already patched' ) ;
21+ return info . languageService ;
22+ }
23+
1924 configManager . updateConfigFromPluginConfig ( info . config ) ;
2025 if ( configManager . getConfig ( ) . enable ) {
2126 logger . log ( 'Starting Svelte plugin' ) ;
Original file line number Diff line number Diff line change @@ -10,6 +10,12 @@ import { decorateFindReferences } from './find-references';
1010import { decorateGetImplementation } from './implementation' ;
1111import { decorateRename } from './rename' ;
1212
13+ const sveltePluginPatchSymbol = Symbol ( 'sveltePluginPatchSymbol' ) ;
14+
15+ export function isPatched ( ls : ts . LanguageService ) {
16+ return ( ls as any ) [ sveltePluginPatchSymbol ] === true ;
17+ }
18+
1319export function decorateLanguageService (
1420 ls : ts . LanguageService ,
1521 snapshotManager : SvelteSnapshotManager ,
@@ -43,6 +49,11 @@ function createProxyHandler(configManager: ConfigManager): ProxyHandler<ts.Langu
4349
4450 return {
4551 get ( target , p ) {
52+ // always return patch symbol whether the plugin is enabled or not
53+ if ( p === sveltePluginPatchSymbol ) {
54+ return true ;
55+ }
56+
4657 if ( ! configManager . getConfig ( ) . enable ) {
4758 return target [ p as keyof ts . LanguageService ] ;
4859 }
You can’t perform that action at this time.
0 commit comments