Skip to content

Commit d173fdf

Browse files
committed
refactor(language-server): improved readability
1 parent d494495 commit d173fdf

File tree

1 file changed

+35
-35
lines changed

1 file changed

+35
-35
lines changed

packages/language-server/index.ts

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,17 @@ import { getLanguageService } from './lib/reactionsAnalyzeLS';
2525

2626
const connection = createConnection();
2727
const server = createServer(connection);
28+
const tsserverRequestHandlers = new Map<number, (res: any) => void>();
29+
30+
let tsserverRequestId = 0;
2831

2932
connection.listen();
3033

34+
connection.onNotification('tsserver/response', ([id, res]) => {
35+
tsserverRequestHandlers.get(id)?.(res);
36+
tsserverRequestHandlers.delete(id);
37+
});
38+
3139
connection.onInitialize(params => {
3240
const tsconfigProjects = createUriMap<LanguageService>();
3341
const file2ProjectInfo = new Map<string, Promise<ts.server.protocol.ProjectInfo | null>>();
@@ -43,15 +51,7 @@ connection.onInitialize(params => {
4351
}
4452
});
4553

46-
let simpleLs: LanguageService | undefined;
47-
let tsserverRequestId = 0;
48-
49-
const tsserverRequestHandlers = new Map<number, (res: any) => void>();
50-
51-
connection.onNotification('tsserver/response', ([id, res]) => {
52-
tsserverRequestHandlers.get(id)?.(res);
53-
tsserverRequestHandlers.delete(id);
54-
});
54+
let simpleLanguageService: LanguageService | undefined;
5555

5656
return server.initialize(
5757
params,
@@ -62,7 +62,7 @@ connection.onInitialize(params => {
6262
const fileName = uri.fsPath.replace(/\\/g, '/');
6363
let projectInfoPromise = file2ProjectInfo.get(fileName);
6464
if (!projectInfoPromise) {
65-
projectInfoPromise = sendTsRequest<ts.server.protocol.ProjectInfo>(
65+
projectInfoPromise = sendTsServerRequest<ts.server.protocol.ProjectInfo>(
6666
'_vue:' + ts.server.protocol.CommandTypes.ProjectInfo,
6767
{
6868
file: fileName,
@@ -74,63 +74,63 @@ connection.onInitialize(params => {
7474
const projectInfo = await projectInfoPromise;
7575
if (projectInfo) {
7676
const { configFileName } = projectInfo;
77-
let ls = tsconfigProjects.get(URI.file(configFileName));
78-
if (!ls) {
79-
ls = createLs(server, configFileName);
80-
tsconfigProjects.set(URI.file(configFileName), ls);
77+
let languageService = tsconfigProjects.get(URI.file(configFileName));
78+
if (!languageService) {
79+
languageService = createProjectLanguageService(server, configFileName);
80+
tsconfigProjects.set(URI.file(configFileName), languageService);
8181
}
82-
return ls;
82+
return languageService;
8383
}
8484
}
85-
return simpleLs ??= createLs(server, undefined);
85+
return simpleLanguageService ??= createProjectLanguageService(server, undefined);
8686
},
8787
getExistingLanguageServices() {
8888
return Promise.all([
8989
...tsconfigProjects.values(),
90-
simpleLs,
90+
simpleLanguageService,
9191
].filter(promise => !!promise));
9292
},
9393
reload() {
94-
for (const ls of tsconfigProjects.values()) {
95-
ls.dispose();
94+
for (const languageService of tsconfigProjects.values()) {
95+
languageService.dispose();
9696
}
9797
tsconfigProjects.clear();
98-
if (simpleLs) {
99-
simpleLs.dispose();
100-
simpleLs = undefined;
98+
if (simpleLanguageService) {
99+
simpleLanguageService.dispose();
100+
simpleLanguageService = undefined;
101101
}
102102
},
103103
},
104104
createVueLanguageServicePlugins(ts, {
105105
collectExtractProps(...args) {
106-
return sendTsRequest('_vue:collectExtractProps', args);
106+
return sendTsServerRequest('_vue:collectExtractProps', args);
107107
},
108108
getComponentDirectives(...args) {
109-
return sendTsRequest('_vue:getComponentDirectives', args);
109+
return sendTsServerRequest('_vue:getComponentDirectives', args);
110110
},
111111
getComponentEvents(...args) {
112-
return sendTsRequest('_vue:getComponentEvents', args);
112+
return sendTsServerRequest('_vue:getComponentEvents', args);
113113
},
114114
getComponentNames(...args) {
115-
return sendTsRequest('_vue:getComponentNames', args);
115+
return sendTsServerRequest('_vue:getComponentNames', args);
116116
},
117117
getComponentProps(...args) {
118-
return sendTsRequest('_vue:getComponentProps', args);
118+
return sendTsServerRequest('_vue:getComponentProps', args);
119119
},
120120
getElementAttrs(...args) {
121-
return sendTsRequest('_vue:getElementAttrs', args);
121+
return sendTsServerRequest('_vue:getElementAttrs', args);
122122
},
123123
getElementNames(...args) {
124-
return sendTsRequest('_vue:getElementNames', args);
124+
return sendTsServerRequest('_vue:getElementNames', args);
125125
},
126126
getImportPathForFile(...args) {
127-
return sendTsRequest('_vue:getImportPathForFile', args);
127+
return sendTsServerRequest('_vue:getImportPathForFile', args);
128128
},
129129
getPropertiesAtLocation(...args) {
130-
return sendTsRequest('_vue:getPropertiesAtLocation', args);
130+
return sendTsServerRequest('_vue:getPropertiesAtLocation', args);
131131
},
132132
getDocumentHighlights(fileName, position) {
133-
return sendTsRequest(
133+
return sendTsServerRequest(
134134
'_vue:documentHighlights-full',
135135
{
136136
file: fileName,
@@ -140,7 +140,7 @@ connection.onInitialize(params => {
140140
);
141141
},
142142
async getQuickInfoAtPosition(fileName, { line, character }) {
143-
const result = await sendTsRequest<ts.QuickInfo>(
143+
const result = await sendTsServerRequest<ts.QuickInfo>(
144144
'_vue:' + ts.server.protocol.CommandTypes.Quickinfo,
145145
{
146146
file: fileName,
@@ -153,15 +153,15 @@ connection.onInitialize(params => {
153153
}),
154154
);
155155

156-
async function sendTsRequest<T>(command: string, args: any): Promise<T | null> {
156+
async function sendTsServerRequest<T>(command: string, args: any): Promise<T | null> {
157157
return await new Promise<T | null>(resolve => {
158158
const requestId = ++tsserverRequestId;
159159
tsserverRequestHandlers.set(requestId, resolve);
160160
connection.sendNotification('tsserver/request', [requestId, command, args]);
161161
});
162162
}
163163

164-
function createLs(server: LanguageServer, tsconfig: string | undefined) {
164+
function createProjectLanguageService(server: LanguageServer, tsconfig: string | undefined) {
165165
const commonLine = tsconfig
166166
? createParsedCommandLine(ts, ts.sys, tsconfig)
167167
: {

0 commit comments

Comments
 (0)