@@ -103,79 +103,70 @@ export = createLanguageServicePlugin(
103
103
request => {
104
104
const [ fileName , templateCodeRange ] : Parameters < Requests [ 'collectExtractProps' ] > = request . arguments ;
105
105
const { language, program, sourceScript, virtualCode } = getLanguageServiceAndVirtualCode ( fileName ) ;
106
- return {
107
- response : collectExtractProps ( ts , language , program , sourceScript , virtualCode , templateCodeRange , true ) ,
108
- } ;
106
+ return createResponse (
107
+ collectExtractProps ( ts , language , program , sourceScript , virtualCode , templateCodeRange , true ) ,
108
+ ) ;
109
109
} ,
110
110
) ;
111
111
session . addProtocolHandler ( '_vue:getImportPathForFile' , request => {
112
112
const [ fileName , incomingFileName , preferences ] : Parameters < Requests [ 'getImportPathForFile' ] > =
113
113
request . arguments ;
114
114
const { languageServiceHost, program } = getLanguageService ( fileName ) ;
115
- return {
116
- response : getImportPathForFile ( ts , languageServiceHost , program , fileName , incomingFileName , preferences ) ,
117
- } ;
115
+ return createResponse (
116
+ getImportPathForFile ( ts , languageServiceHost , program , fileName , incomingFileName , preferences ) ,
117
+ ) ;
118
118
} ) ;
119
119
session . addProtocolHandler ( '_vue:isRefAtLocation' , request => {
120
120
const [ fileName , position ] : Parameters < Requests [ 'isRefAtLocation' ] > = request . arguments ;
121
121
const { language, program, sourceScript, virtualCode } = getLanguageServiceAndVirtualCode ( fileName ) ;
122
- return {
123
- response : isRefAtLocation ( ts , language , program , sourceScript , virtualCode , position , true ) ,
124
- } ;
122
+ return createResponse ( isRefAtLocation ( ts , language , program , sourceScript , virtualCode , position , true ) ) ;
125
123
} ) ;
126
124
session . addProtocolHandler ( '_vue:getComponentDirectives' , request => {
127
125
const [ fileName ] : Parameters < Requests [ 'getComponentDirectives' ] > = request . arguments ;
128
126
const { program } = getLanguageService ( fileName ) ;
129
- return {
130
- response : getComponentDirectives ( ts , program , fileName ) ,
131
- } ;
127
+ return createResponse ( getComponentDirectives ( ts , program , fileName ) ) ;
132
128
} ) ;
133
129
session . addProtocolHandler ( '_vue:getComponentEvents' , request => {
134
130
const [ fileName , tag ] : Parameters < Requests [ 'getComponentEvents' ] > = request . arguments ;
135
131
const { program } = getLanguageService ( fileName ) ;
136
- return {
137
- response : getComponentEvents ( ts , program , fileName , tag ) ,
138
- } ;
132
+ return createResponse ( getComponentEvents ( ts , program , fileName , tag ) ) ;
139
133
} ) ;
140
134
session . addProtocolHandler ( '_vue:getComponentNames' , request => {
141
135
const [ fileName ] : Parameters < Requests [ 'getComponentNames' ] > = request . arguments ;
142
136
const { program } = getLanguageService ( fileName ) ;
143
- return {
144
- response : getComponentNames ( ts , program , fileName ) ,
145
- } ;
137
+ return createResponse ( getComponentNames ( ts , program , fileName ) ) ;
146
138
} ) ;
147
139
session . addProtocolHandler ( '_vue:getComponentProps' , request => {
148
140
const [ fileName , tag ] : Parameters < Requests [ 'getComponentProps' ] > = request . arguments ;
149
141
const { program } = getLanguageService ( fileName ) ;
150
- return {
151
- response : getComponentProps ( ts , program , fileName , tag ) ,
152
- } ;
142
+ return createResponse ( getComponentProps ( ts , program , fileName , tag ) ) ;
153
143
} ) ;
154
144
session . addProtocolHandler ( '_vue:getComponentSlots' , request => {
155
145
const [ fileName ] : Parameters < Requests [ 'getComponentSlots' ] > = request . arguments ;
156
146
const { program, virtualCode } = getLanguageServiceAndVirtualCode ( fileName ) ;
157
- return {
158
- response : getComponentSlots ( ts , program , virtualCode ) ,
159
- } ;
147
+ return createResponse ( getComponentSlots ( ts , program , virtualCode ) ) ;
160
148
} ) ;
161
149
session . addProtocolHandler ( '_vue:getElementAttrs' , request => {
162
150
const [ fileName , tag ] : Parameters < Requests [ 'getElementAttrs' ] > = request . arguments ;
163
151
const { program } = getLanguageService ( fileName ) ;
164
- return {
165
- response : getElementAttrs ( ts , program , fileName , tag ) ,
166
- } ;
152
+ return createResponse ( getElementAttrs ( ts , program , fileName , tag ) ) ;
167
153
} ) ;
168
154
session . addProtocolHandler ( '_vue:getElementNames' , request => {
169
155
const [ fileName ] : Parameters < Requests [ 'getElementNames' ] > = request . arguments ;
170
156
const { program } = getLanguageService ( fileName ) ;
171
- return {
172
- response : getElementNames ( ts , program , fileName ) ,
173
- } ;
157
+ return createResponse ( getElementNames ( ts , program , fileName ) ) ;
174
158
} ) ;
175
159
176
160
projectService . logger . info ( 'Vue specific commands are successfully added.' ) ;
177
161
}
178
162
163
+ function createResponse < T extends object > ( res : T ) : ts . server . HandlerResponse {
164
+ return {
165
+ response : res ,
166
+ responseRequired : true ,
167
+ } ;
168
+ }
169
+
179
170
function getLanguageServiceAndVirtualCode ( fileName : string ) {
180
171
const service = getLanguageService ( fileName ) ;
181
172
const sourceScript = service ?. language . scripts . get ( fileName ) ;
0 commit comments