@@ -98,7 +98,6 @@ module ts.server {
98
98
99
99
module Errors {
100
100
export var NoProject = new Error ( "No Project." ) ;
101
- export var NoContent = new Error ( "No Content." ) ;
102
101
}
103
102
104
103
export interface ServerHost extends ts . System {
@@ -258,7 +257,7 @@ module ts.server {
258
257
259
258
var definitions = compilerService . languageService . getDefinitionAtPosition ( file , position ) ;
260
259
if ( ! definitions ) {
261
- throw Errors . NoContent ;
260
+ return undefined ;
262
261
}
263
262
264
263
return definitions . map ( def => ( {
@@ -279,7 +278,7 @@ module ts.server {
279
278
var position = compilerService . host . lineColToPosition ( file , line , col ) ;
280
279
var renameInfo = compilerService . languageService . getRenameInfo ( file , position ) ;
281
280
if ( ! renameInfo ) {
282
- throw Errors . NoContent ;
281
+ return undefined ;
283
282
}
284
283
285
284
if ( ! renameInfo . canRename ) {
@@ -291,7 +290,7 @@ module ts.server {
291
290
292
291
var renameLocations = compilerService . languageService . findRenameLocations ( file , position , findInStrings , findInComments ) ;
293
292
if ( ! renameLocations ) {
294
- throw Errors . NoContent ;
293
+ return undefined ;
295
294
}
296
295
297
296
var bakedRenameLocs = renameLocations . map ( location => ( < protocol . FileSpan > {
@@ -350,12 +349,12 @@ module ts.server {
350
349
351
350
var references = compilerService . languageService . getReferencesAtPosition ( file , position ) ;
352
351
if ( ! references ) {
353
- throw Errors . NoContent ;
352
+ return undefined ;
354
353
}
355
354
356
355
var nameInfo = compilerService . languageService . getQuickInfoAtPosition ( file , position ) ;
357
356
if ( ! nameInfo ) {
358
- throw Errors . NoContent ;
357
+ return undefined ;
359
358
}
360
359
361
360
var displayString = ts . displayPartsToString ( nameInfo . displayParts ) ;
@@ -428,7 +427,7 @@ module ts.server {
428
427
// TODO: avoid duplicate code (with formatonkey)
429
428
var edits = compilerService . languageService . getFormattingEditsForRange ( file , startPosition , endPosition , compilerService . formatCodeOptions ) ;
430
429
if ( ! edits ) {
431
- throw Errors . NoContent ;
430
+ return undefined ;
432
431
}
433
432
434
433
return edits . map ( ( edit ) => {
@@ -468,7 +467,7 @@ module ts.server {
468
467
}
469
468
470
469
if ( ! edits ) {
471
- throw Errors . NoContent ;
470
+ return undefined ;
472
471
}
473
472
474
473
return edits . map ( ( edit ) => {
@@ -489,15 +488,15 @@ module ts.server {
489
488
var file = ts . normalizePath ( fileName ) ;
490
489
var project = this . projectService . getProjectForFile ( file ) ;
491
490
if ( ! project ) {
492
- return undefined ;
491
+ throw Errors . NoProject ;
493
492
}
494
493
495
494
var compilerService = project . compilerService ;
496
495
var position = compilerService . host . lineColToPosition ( file , line , col ) ;
497
496
498
497
var completions = compilerService . languageService . getCompletionsAtPosition ( file , position ) ;
499
498
if ( ! completions ) {
500
- throw Errors . NoContent ;
499
+ return undefined ;
501
500
}
502
501
503
502
return completions . entries . reduce ( ( result : protocol . CompletionEntry [ ] , entry : ts . CompletionEntry ) => {
@@ -618,7 +617,7 @@ module ts.server {
618
617
var compilerService = project . compilerService ;
619
618
var items = compilerService . languageService . getNavigationBarItems ( file ) ;
620
619
if ( ! items ) {
621
- throw Errors . NoContent ;
620
+ return undefined ;
622
621
}
623
622
624
623
return this . decorateNavigationBarItem ( project , fileName , items ) ;
@@ -634,7 +633,7 @@ module ts.server {
634
633
var compilerService = project . compilerService ;
635
634
var navItems = compilerService . languageService . getNavigateToItems ( searchValue , maxResultCount ) ;
636
635
if ( ! navItems ) {
637
- throw Errors . NoContent ;
636
+ return undefined ;
638
637
}
639
638
640
639
return navItems . map ( ( navItem ) => {
@@ -676,7 +675,7 @@ module ts.server {
676
675
677
676
var spans = compilerService . languageService . getBraceMatchingAtPosition ( file , position ) ;
678
677
if ( ! spans ) {
679
- throw Errors . NoContent ;
678
+ return undefined ;
680
679
}
681
680
682
681
return spans . map ( span => ( {
@@ -690,6 +689,7 @@ module ts.server {
690
689
var request = < protocol . Request > JSON . parse ( message ) ;
691
690
var response : any ;
692
691
var errorMessage : string ;
692
+ var responseRequired = true ;
693
693
switch ( request . command ) {
694
694
case CommandNames . Definition : {
695
695
var defArgs = < protocol . FileLocationRequestArgs > request . arguments ;
@@ -709,14 +709,12 @@ module ts.server {
709
709
case CommandNames . Open : {
710
710
var openArgs = < protocol . FileRequestArgs > request . arguments ;
711
711
this . openClientFile ( openArgs . file ) ;
712
+ responseRequired = false ;
712
713
break ;
713
714
}
714
715
case CommandNames . Quickinfo : {
715
716
var quickinfoArgs = < protocol . FileLocationRequestArgs > request . arguments ;
716
717
response = this . getQuickInfo ( quickinfoArgs . line , quickinfoArgs . col , quickinfoArgs . file ) ;
717
- if ( ! response ) {
718
- errorMessage = "No info at this location" ;
719
- }
720
718
break ;
721
719
}
722
720
case CommandNames . Format : {
@@ -732,9 +730,6 @@ module ts.server {
732
730
case CommandNames . Completions : {
733
731
var completionsArgs = < protocol . CompletionsRequestArgs > request . arguments ;
734
732
response = this . getCompletions ( request . arguments . line , request . arguments . col , completionsArgs . prefix , request . arguments . file ) ;
735
- if ( ! response ) {
736
- errorMessage = "No completions at this location" ;
737
- }
738
733
break ;
739
734
}
740
735
case CommandNames . CompletionDetails : {
@@ -746,12 +741,14 @@ module ts.server {
746
741
case CommandNames . Geterr : {
747
742
var geterrArgs = < protocol . GeterrRequestArgs > request . arguments ;
748
743
response = this . getDiagnostics ( geterrArgs . delay , geterrArgs . files ) ;
744
+ responseRequired = false ;
749
745
break ;
750
746
}
751
747
case CommandNames . Change : {
752
748
var changeArgs = < protocol . ChangeRequestArgs > request . arguments ;
753
749
this . change ( changeArgs . line , changeArgs . col , changeArgs . endLine , changeArgs . endCol ,
754
750
changeArgs . insertString , changeArgs . file ) ;
751
+ responseRequired = false ;
755
752
break ;
756
753
}
757
754
case CommandNames . Reload : {
@@ -762,11 +759,13 @@ module ts.server {
762
759
case CommandNames . Saveto : {
763
760
var savetoArgs = < protocol . SavetoRequestArgs > request . arguments ;
764
761
this . saveToTmp ( savetoArgs . file , savetoArgs . tmpfile ) ;
762
+ responseRequired = false ;
765
763
break ;
766
764
}
767
765
case CommandNames . Close : {
768
766
var closeArgs = < protocol . FileRequestArgs > request . arguments ;
769
767
this . closeClientFile ( closeArgs . file ) ;
768
+ responseRequired = false ;
770
769
break ;
771
770
}
772
771
case CommandNames . Navto : {
@@ -794,8 +793,8 @@ module ts.server {
794
793
if ( response ) {
795
794
this . output ( response , request . command , request . seq ) ;
796
795
}
797
- else if ( errorMessage ) {
798
- this . output ( undefined , request . command , request . seq , errorMessage ) ;
796
+ else if ( responseRequired ) {
797
+ this . output ( undefined , request . command , request . seq , "No content available." ) ;
799
798
}
800
799
801
800
} catch ( err ) {
0 commit comments