Skip to content

Commit de2e145

Browse files
committed
Merge pull request #2591 from Microsoft/serverAddExitMessage
Add an exit message for the server.
2 parents 863f0b6 + 74e6b6e commit de2e145

File tree

4 files changed

+29
-7
lines changed

4 files changed

+29
-7
lines changed

src/server/editorServices.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ module ts.server {
458458
var info = this.filenameToScriptInfo[args.file];
459459
if (info) {
460460
info.setFormatOptions(args.formatOptions);
461-
this.log("Host configuration update for file " + args.file);
461+
this.log("Host configuration update for file " + args.file, "Info");
462462
}
463463
}
464464
else {
@@ -823,7 +823,6 @@ module ts.server {
823823
*/
824824

825825
closeClientFile(filename: string) {
826-
// TODO: tsconfig check
827826
var info = ts.lookUp(this.filenameToScriptInfo, filename);
828827
if (info) {
829828
this.closeOpenFile(info);
@@ -856,6 +855,9 @@ module ts.server {
856855
}
857856

858857
printProjects() {
858+
if (!this.psLogger.isVerbose()) {
859+
return;
860+
}
859861
this.psLogger.startGroup();
860862
for (var i = 0, len = this.inferredProjects.length; i < len; i++) {
861863
var project = this.inferredProjects[i];

src/server/protocol.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,13 @@ declare module ts.server.protocol {
405405
arguments: OpenRequestArgs;
406406
}
407407

408+
/**
409+
* Exit request; value of command field is "exit". Ask the server process
410+
* to exit.
411+
*/
412+
export interface ExitRequest extends Request {
413+
}
414+
408415
/**
409416
* Close request; value of command field is "close". Notify the
410417
* server that the client has closed a previously open file. If

src/server/server.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,20 @@ module ts.server {
177177
super(host, logger);
178178
}
179179

180+
exit() {
181+
this.projectService.log("Exiting...","Info");
182+
this.projectService.closeLog();
183+
process.exit(0);
184+
}
185+
180186
listen() {
181187
rl.on('line',(input: string) => {
182188
var message = input.trim();
183189
this.onMessage(message);
184190
});
185191

186192
rl.on('close',() => {
187-
this.projectService.log("Exiting...");
188-
this.projectService.closeLog();
189-
process.exit(0);
193+
this.exit();
190194
});
191195
}
192196
}

src/server/session.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,14 @@ module ts.server {
7676
}
7777

7878
export module CommandNames {
79+
export var Brace = "brace";
7980
export var Change = "change";
8081
export var Close = "close";
8182
export var Completions = "completions";
8283
export var CompletionDetails = "completionEntryDetails";
83-
export var SignatureHelp = "signatureHelp";
8484
export var Configure = "configure";
8585
export var Definition = "definition";
86+
export var Exit = "exit";
8687
export var Format = "format";
8788
export var Formatonkey = "formatonkey";
8889
export var Geterr = "geterr";
@@ -94,7 +95,7 @@ module ts.server {
9495
export var Reload = "reload";
9596
export var Rename = "rename";
9697
export var Saveto = "saveto";
97-
export var Brace = "brace";
98+
export var SignatureHelp = "signatureHelp";
9899
export var Unknown = "unknown";
99100
}
100101

@@ -758,6 +759,9 @@ module ts.server {
758759
}));
759760
}
760761

762+
exit() {
763+
}
764+
761765
onMessage(message: string) {
762766
if (this.logger.isVerbose()) {
763767
this.logger.info("request: " + message);
@@ -769,6 +773,11 @@ module ts.server {
769773
var errorMessage: string;
770774
var responseRequired = true;
771775
switch (request.command) {
776+
case CommandNames.Exit: {
777+
this.exit();
778+
responseRequired = false;
779+
break;
780+
}
772781
case CommandNames.Definition: {
773782
var defArgs = <protocol.FileLocationRequestArgs>request.arguments;
774783
response = this.getDefinition(defArgs.line, defArgs.offset, defArgs.file);

0 commit comments

Comments
 (0)