@@ -2164,15 +2164,18 @@ namespace ts.server {
21642164 return result ;
21652165 }
21662166
2167- private toProtocolCallHierarchyItem ( item : CallHierarchyItem , scriptInfo ?: ScriptInfo ) : protocol . CallHierarchyItem {
2167+ private getScriptInfoFromProjectService ( file : string ) {
2168+ const normalizedFile = toNormalizedPath ( file ) ;
2169+ const scriptInfo = this . projectService . getScriptInfoForNormalizedPath ( normalizedFile ) ;
21682170 if ( ! scriptInfo ) {
2169- const file = toNormalizedPath ( item . file ) ;
2170- scriptInfo = this . projectService . getScriptInfoForNormalizedPath ( file ) ;
2171- if ( ! scriptInfo ) {
2172- this . projectService . logErrorForScriptInfoNotFound ( file ) ;
2173- return Errors . ThrowNoProject ( ) ;
2174- }
2171+ this . projectService . logErrorForScriptInfoNotFound ( normalizedFile ) ;
2172+ return Errors . ThrowNoProject ( ) ;
21752173 }
2174+ return scriptInfo ;
2175+ }
2176+
2177+ private toProtocolCallHierarchyItem ( item : CallHierarchyItem ) : protocol . CallHierarchyItem {
2178+ const scriptInfo = this . getScriptInfoFromProjectService ( item . file ) ;
21762179 return {
21772180 name : item . name ,
21782181 kind : item . kind ,
@@ -2182,7 +2185,8 @@ namespace ts.server {
21822185 } ;
21832186 }
21842187
2185- private toProtocolCallHierarchyIncomingCall ( incomingCall : CallHierarchyIncomingCall , scriptInfo : ScriptInfo ) : protocol . CallHierarchyIncomingCall {
2188+ private toProtocolCallHierarchyIncomingCall ( incomingCall : CallHierarchyIncomingCall ) : protocol . CallHierarchyIncomingCall {
2189+ const scriptInfo = this . getScriptInfoFromProjectService ( incomingCall . from . file ) ;
21862190 return {
21872191 from : this . toProtocolCallHierarchyItem ( incomingCall . from ) ,
21882192 fromSpans : incomingCall . fromSpans . map ( fromSpan => toProtocolTextSpan ( fromSpan , scriptInfo ) )
@@ -2202,29 +2206,21 @@ namespace ts.server {
22022206 if ( scriptInfo ) {
22032207 const position = this . getPosition ( args , scriptInfo ) ;
22042208 const result = project . getLanguageService ( ) . prepareCallHierarchy ( file , position ) ;
2205- return result && mapOneOrMany ( result , item => this . toProtocolCallHierarchyItem ( item , scriptInfo ) ) ;
2209+ return result && mapOneOrMany ( result , item => this . toProtocolCallHierarchyItem ( item ) ) ;
22062210 }
22072211 return undefined ;
22082212 }
22092213
22102214 private provideCallHierarchyIncomingCalls ( args : protocol . FileLocationRequestArgs ) : protocol . CallHierarchyIncomingCall [ ] {
22112215 const { file, project } = this . getFileAndProject ( args ) ;
2212- const scriptInfo = this . projectService . getScriptInfoForNormalizedPath ( file ) ;
2213- if ( ! scriptInfo ) {
2214- this . projectService . logErrorForScriptInfoNotFound ( file ) ;
2215- return Errors . ThrowNoProject ( ) ;
2216- }
2216+ const scriptInfo = this . getScriptInfoFromProjectService ( file ) ;
22172217 const incomingCalls = project . getLanguageService ( ) . provideCallHierarchyIncomingCalls ( file , this . getPosition ( args , scriptInfo ) ) ;
2218- return incomingCalls . map ( call => this . toProtocolCallHierarchyIncomingCall ( call , scriptInfo ) ) ;
2218+ return incomingCalls . map ( call => this . toProtocolCallHierarchyIncomingCall ( call ) ) ;
22192219 }
22202220
22212221 private provideCallHierarchyOutgoingCalls ( args : protocol . FileLocationRequestArgs ) : protocol . CallHierarchyOutgoingCall [ ] {
22222222 const { file, project } = this . getFileAndProject ( args ) ;
2223- const scriptInfo = this . projectService . getScriptInfoForNormalizedPath ( file ) ;
2224- if ( ! scriptInfo ) {
2225- this . projectService . logErrorForScriptInfoNotFound ( file ) ;
2226- return Errors . ThrowNoProject ( ) ;
2227- }
2223+ const scriptInfo = this . getScriptInfoFromProjectService ( file ) ;
22282224 const outgoingCalls = project . getLanguageService ( ) . provideCallHierarchyOutgoingCalls ( file , this . getPosition ( args , scriptInfo ) ) ;
22292225 return outgoingCalls . map ( call => this . toProtocolCallHierarchyOutgoingCall ( call , scriptInfo ) ) ;
22302226 }
0 commit comments