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 1
1
import { dirname , resolve } from 'path' ;
2
- import { decorateLanguageService } from './language-service' ;
2
+ import { decorateLanguageService , isPatched } from './language-service' ;
3
3
import { Logger } from './logger' ;
4
4
import { patchModuleLoader } from './module-loader' ;
5
5
import { SvelteSnapshotManager } from './svelte-snapshots' ;
@@ -16,6 +16,11 @@ function init(modules: { typescript: typeof ts }) {
16
16
return info . languageService ;
17
17
}
18
18
19
+ if ( isPatched ( info . languageService ) ) {
20
+ logger . log ( 'Already patched' ) ;
21
+ return info . languageService ;
22
+ }
23
+
19
24
configManager . updateConfigFromPluginConfig ( info . config ) ;
20
25
if ( configManager . getConfig ( ) . enable ) {
21
26
logger . log ( 'Starting Svelte plugin' ) ;
Original file line number Diff line number Diff line change @@ -10,6 +10,12 @@ import { decorateFindReferences } from './find-references';
10
10
import { decorateGetImplementation } from './implementation' ;
11
11
import { decorateRename } from './rename' ;
12
12
13
+ const sveltePluginPatchSymbol = Symbol ( 'sveltePluginPatchSymbol' ) ;
14
+
15
+ export function isPatched ( ls : ts . LanguageService ) {
16
+ return ( ls as any ) [ sveltePluginPatchSymbol ] === true ;
17
+ }
18
+
13
19
export function decorateLanguageService (
14
20
ls : ts . LanguageService ,
15
21
snapshotManager : SvelteSnapshotManager ,
@@ -43,6 +49,11 @@ function createProxyHandler(configManager: ConfigManager): ProxyHandler<ts.Langu
43
49
44
50
return {
45
51
get ( target , p ) {
52
+ // always return patch symbol whether the plugin is enabled or not
53
+ if ( p === sveltePluginPatchSymbol ) {
54
+ return true ;
55
+ }
56
+
46
57
if ( ! configManager . getConfig ( ) . enable ) {
47
58
return target [ p as keyof ts . LanguageService ] ;
48
59
}
You can’t perform that action at this time.
0 commit comments