@@ -98,7 +98,6 @@ module ts.server {
9898
9999 module Errors {
100100 export var NoProject = new Error ( "No Project." ) ;
101- export var NoContent = new Error ( "No Content." ) ;
102101 }
103102
104103 export interface ServerHost extends ts . System {
@@ -258,7 +257,7 @@ module ts.server {
258257
259258 var definitions = compilerService . languageService . getDefinitionAtPosition ( file , position ) ;
260259 if ( ! definitions ) {
261- throw Errors . NoContent ;
260+ return undefined ;
262261 }
263262
264263 return definitions . map ( def => ( {
@@ -279,7 +278,7 @@ module ts.server {
279278 var position = compilerService . host . lineColToPosition ( file , line , col ) ;
280279 var renameInfo = compilerService . languageService . getRenameInfo ( file , position ) ;
281280 if ( ! renameInfo ) {
282- throw Errors . NoContent ;
281+ return undefined ;
283282 }
284283
285284 if ( ! renameInfo . canRename ) {
@@ -291,7 +290,7 @@ module ts.server {
291290
292291 var renameLocations = compilerService . languageService . findRenameLocations ( file , position , findInStrings , findInComments ) ;
293292 if ( ! renameLocations ) {
294- throw Errors . NoContent ;
293+ return undefined ;
295294 }
296295
297296 var bakedRenameLocs = renameLocations . map ( location => ( < protocol . FileSpan > {
@@ -350,12 +349,12 @@ module ts.server {
350349
351350 var references = compilerService . languageService . getReferencesAtPosition ( file , position ) ;
352351 if ( ! references ) {
353- throw Errors . NoContent ;
352+ return undefined ;
354353 }
355354
356355 var nameInfo = compilerService . languageService . getQuickInfoAtPosition ( file , position ) ;
357356 if ( ! nameInfo ) {
358- throw Errors . NoContent ;
357+ return undefined ;
359358 }
360359
361360 var displayString = ts . displayPartsToString ( nameInfo . displayParts ) ;
@@ -428,7 +427,7 @@ module ts.server {
428427 // TODO: avoid duplicate code (with formatonkey)
429428 var edits = compilerService . languageService . getFormattingEditsForRange ( file , startPosition , endPosition , compilerService . formatCodeOptions ) ;
430429 if ( ! edits ) {
431- throw Errors . NoContent ;
430+ return undefined ;
432431 }
433432
434433 return edits . map ( ( edit ) => {
@@ -468,7 +467,7 @@ module ts.server {
468467 }
469468
470469 if ( ! edits ) {
471- throw Errors . NoContent ;
470+ return undefined ;
472471 }
473472
474473 return edits . map ( ( edit ) => {
@@ -489,15 +488,15 @@ module ts.server {
489488 var file = ts . normalizePath ( fileName ) ;
490489 var project = this . projectService . getProjectForFile ( file ) ;
491490 if ( ! project ) {
492- return undefined ;
491+ throw Errors . NoProject ;
493492 }
494493
495494 var compilerService = project . compilerService ;
496495 var position = compilerService . host . lineColToPosition ( file , line , col ) ;
497496
498497 var completions = compilerService . languageService . getCompletionsAtPosition ( file , position ) ;
499498 if ( ! completions ) {
500- throw Errors . NoContent ;
499+ return undefined ;
501500 }
502501
503502 return completions . entries . reduce ( ( result : protocol . CompletionEntry [ ] , entry : ts . CompletionEntry ) => {
@@ -618,7 +617,7 @@ module ts.server {
618617 var compilerService = project . compilerService ;
619618 var items = compilerService . languageService . getNavigationBarItems ( file ) ;
620619 if ( ! items ) {
621- throw Errors . NoContent ;
620+ return undefined ;
622621 }
623622
624623 return this . decorateNavigationBarItem ( project , fileName , items ) ;
@@ -634,7 +633,7 @@ module ts.server {
634633 var compilerService = project . compilerService ;
635634 var navItems = compilerService . languageService . getNavigateToItems ( searchValue , maxResultCount ) ;
636635 if ( ! navItems ) {
637- throw Errors . NoContent ;
636+ return undefined ;
638637 }
639638
640639 return navItems . map ( ( navItem ) => {
@@ -676,7 +675,7 @@ module ts.server {
676675
677676 var spans = compilerService . languageService . getBraceMatchingAtPosition ( file , position ) ;
678677 if ( ! spans ) {
679- throw Errors . NoContent ;
678+ return undefined ;
680679 }
681680
682681 return spans . map ( span => ( {
@@ -690,6 +689,7 @@ module ts.server {
690689 var request = < protocol . Request > JSON . parse ( message ) ;
691690 var response : any ;
692691 var errorMessage : string ;
692+ var responseRequired = true ;
693693 switch ( request . command ) {
694694 case CommandNames . Definition : {
695695 var defArgs = < protocol . FileLocationRequestArgs > request . arguments ;
@@ -709,14 +709,12 @@ module ts.server {
709709 case CommandNames . Open : {
710710 var openArgs = < protocol . FileRequestArgs > request . arguments ;
711711 this . openClientFile ( openArgs . file ) ;
712+ responseRequired = false ;
712713 break ;
713714 }
714715 case CommandNames . Quickinfo : {
715716 var quickinfoArgs = < protocol . FileLocationRequestArgs > request . arguments ;
716717 response = this . getQuickInfo ( quickinfoArgs . line , quickinfoArgs . col , quickinfoArgs . file ) ;
717- if ( ! response ) {
718- errorMessage = "No info at this location" ;
719- }
720718 break ;
721719 }
722720 case CommandNames . Format : {
@@ -732,9 +730,6 @@ module ts.server {
732730 case CommandNames . Completions : {
733731 var completionsArgs = < protocol . CompletionsRequestArgs > request . arguments ;
734732 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- }
738733 break ;
739734 }
740735 case CommandNames . CompletionDetails : {
@@ -746,12 +741,14 @@ module ts.server {
746741 case CommandNames . Geterr : {
747742 var geterrArgs = < protocol . GeterrRequestArgs > request . arguments ;
748743 response = this . getDiagnostics ( geterrArgs . delay , geterrArgs . files ) ;
744+ responseRequired = false ;
749745 break ;
750746 }
751747 case CommandNames . Change : {
752748 var changeArgs = < protocol . ChangeRequestArgs > request . arguments ;
753749 this . change ( changeArgs . line , changeArgs . col , changeArgs . endLine , changeArgs . endCol ,
754750 changeArgs . insertString , changeArgs . file ) ;
751+ responseRequired = false ;
755752 break ;
756753 }
757754 case CommandNames . Reload : {
@@ -762,11 +759,13 @@ module ts.server {
762759 case CommandNames . Saveto : {
763760 var savetoArgs = < protocol . SavetoRequestArgs > request . arguments ;
764761 this . saveToTmp ( savetoArgs . file , savetoArgs . tmpfile ) ;
762+ responseRequired = false ;
765763 break ;
766764 }
767765 case CommandNames . Close : {
768766 var closeArgs = < protocol . FileRequestArgs > request . arguments ;
769767 this . closeClientFile ( closeArgs . file ) ;
768+ responseRequired = false ;
770769 break ;
771770 }
772771 case CommandNames . Navto : {
@@ -794,8 +793,8 @@ module ts.server {
794793 if ( response ) {
795794 this . output ( response , request . command , request . seq ) ;
796795 }
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." ) ;
799798 }
800799
801800 } catch ( err ) {
0 commit comments