@@ -4,21 +4,18 @@ export * from '@volar/language-service';
4
4
// for @vue /language-server usage
5
5
export * from '@volar/language-service/lib/utils/featureWorkers' ;
6
6
7
- import type { LanguageServiceContext , LanguageServicePlugin } from '@volar/language-service' ;
8
7
import type { VueCompilerOptions } from '@vue/language-core' ;
9
8
import type * as ts from 'typescript' ;
10
9
11
10
import { create as createEmmetPlugin } from 'volar-service-emmet' ;
12
11
import { create as createJsonPlugin } from 'volar-service-json' ;
13
12
import { create as createPugFormatPlugin } from 'volar-service-pug-beautify' ;
14
- import { create as createTypeScriptTwoslashQueriesPlugin } from 'volar-service-typescript-twoslash-queries' ;
15
13
import { create as createTypeScriptDocCommentTemplatePlugin } from 'volar-service-typescript/lib/plugins/docCommentTemplate' ;
16
14
import { create as createTypeScriptSyntacticPlugin } from 'volar-service-typescript/lib/plugins/syntactic' ;
17
15
import { create as createCssPlugin } from './lib/plugins/css' ;
18
16
import { create as createVueAutoDotValuePlugin } from './lib/plugins/vue-autoinsert-dotvalue' ;
19
17
import { create as createVueAutoAddSpacePlugin } from './lib/plugins/vue-autoinsert-space' ;
20
18
import { create as createVueCompilerDomErrorsPlugin } from './lib/plugins/vue-compiler-dom-errors' ;
21
- import { create as createVueCompleteDefineAssignmentPlugin } from './lib/plugins/vue-complete-define-assignment' ;
22
19
import { create as createVueDirectiveCommentsPlugin } from './lib/plugins/vue-directive-comments' ;
23
20
import { create as createVueDocumentDropPlugin } from './lib/plugins/vue-document-drop' ;
24
21
import { create as createVueDocumentHighlightsPlugin } from './lib/plugins/vue-document-highlights' ;
@@ -28,6 +25,7 @@ import { create as createVueGlobalTypesErrorPlugin } from './lib/plugins/vue-glo
28
25
import { create as createVueInlayHintsPlugin } from './lib/plugins/vue-inlayhints' ;
29
26
import { create as createVueMissingPropsHintsPlugin } from './lib/plugins/vue-missing-props-hints' ;
30
27
import { create as createVueSfcPlugin } from './lib/plugins/vue-sfc' ;
28
+ import { create as createVueSuggestDefineAssignmentPlugin } from './lib/plugins/vue-suggest-define-assignment' ;
31
29
import { create as createVueTemplatePlugin } from './lib/plugins/vue-template' ;
32
30
import { create as createVueTwoslashQueriesPlugin } from './lib/plugins/vue-twoslash-queries' ;
33
31
@@ -47,52 +45,41 @@ export function createVueLanguageServicePlugins(
47
45
}
48
46
| undefined ,
49
47
) {
48
+ const getTsPluginClient = ( ) => tsPluginClient ;
50
49
const plugins = [
51
- createTypeScriptSyntacticPlugin ( ts ) ,
52
- createTypeScriptDocCommentTemplatePlugin ( ts ) ,
53
- ...getCommonLanguageServicePlugins ( ts , ( ) => tsPluginClient ) ,
54
- ] ;
55
- if ( tsPluginClient ) {
56
- plugins . push ( createVueDocumentHighlightsPlugin ( tsPluginClient . getDocumentHighlights ) ) ;
57
- }
58
- for ( const plugin of plugins ) {
59
- // avoid affecting TS plugin
60
- delete plugin . capabilities . semanticTokensProvider ;
61
- }
62
- return plugins ;
63
- }
64
-
65
- function getCommonLanguageServicePlugins (
66
- ts : typeof import ( 'typescript' ) ,
67
- getTsPluginClient : (
68
- context : LanguageServiceContext ,
69
- ) => import ( '@vue/typescript-plugin/lib/requests' ) . Requests | undefined ,
70
- ) : LanguageServicePlugin [ ] {
71
- return [
72
- createTypeScriptTwoslashQueriesPlugin ( ts ) ,
73
50
createCssPlugin ( ) ,
74
- createPugFormatPlugin ( ) ,
75
51
createJsonPlugin ( ) ,
76
- createVueTemplatePlugin ( 'html' , getTsPluginClient ) ,
77
- createVueTemplatePlugin ( 'pug' , getTsPluginClient ) ,
78
- createVueMissingPropsHintsPlugin ( getTsPluginClient ) ,
52
+ createPugFormatPlugin ( ) ,
53
+ createTypeScriptDocCommentTemplatePlugin ( ts ) ,
54
+ createTypeScriptSyntacticPlugin ( ts ) ,
55
+ createVueAutoAddSpacePlugin ( ) ,
56
+ createVueAutoDotValuePlugin ( ts , getTsPluginClient ) ,
79
57
createVueCompilerDomErrorsPlugin ( ) ,
80
- createVueSfcPlugin ( ) ,
81
- createVueTwoslashQueriesPlugin ( getTsPluginClient ) ,
82
58
createVueDocumentDropPlugin ( ts , getTsPluginClient ) ,
83
59
createVueDocumentLinksPlugin ( ) ,
84
- createVueCompleteDefineAssignmentPlugin ( ) ,
85
- createVueAutoDotValuePlugin ( ts , getTsPluginClient ) ,
86
- createVueAutoAddSpacePlugin ( ) ,
87
- createVueInlayHintsPlugin ( ts ) ,
88
60
createVueDirectiveCommentsPlugin ( ) ,
89
61
createVueExtractFilePlugin ( ts , getTsPluginClient ) ,
90
62
createVueGlobalTypesErrorPlugin ( ) ,
63
+ createVueInlayHintsPlugin ( ts ) ,
64
+ createVueMissingPropsHintsPlugin ( getTsPluginClient ) ,
65
+ createVueSfcPlugin ( ) ,
66
+ createVueSuggestDefineAssignmentPlugin ( ) ,
67
+ createVueTemplatePlugin ( 'html' , getTsPluginClient ) ,
68
+ createVueTemplatePlugin ( 'pug' , getTsPluginClient ) ,
69
+ createVueTwoslashQueriesPlugin ( getTsPluginClient ) ,
91
70
createEmmetPlugin ( {
92
71
mappedLanguages : {
93
72
'vue-root-tags' : 'html' ,
94
73
'postcss' : 'scss' ,
95
74
} ,
96
75
} ) ,
97
76
] ;
77
+ if ( tsPluginClient ) {
78
+ plugins . push ( createVueDocumentHighlightsPlugin ( tsPluginClient . getDocumentHighlights ) ) ;
79
+ }
80
+ for ( const plugin of plugins ) {
81
+ // avoid affecting TS plugin
82
+ delete plugin . capabilities . semanticTokensProvider ;
83
+ }
84
+ return plugins ;
98
85
}
0 commit comments