Skip to content

TSServer suggestion performance issues (4+ seconds) despite fast compilation #46838

Closed
@JeongJuhyeon

Description

@JeongJuhyeon

Performance Report

🔎 Search Terms

"tsserver slow performance" and the likes.

I've gone through the steps mentioned in https://github.com/microsoft/TypeScript/wiki/Performance but they haven't made a difference.

I've checked the vscode process explorer, while waiting for the suggestions tsserver takes about 11% cpu and 275MB. I have plenty of CPU and memory left too.

🕗 Version & Regression Information

Windows, Typescript 4.4.4 (Project uses workspace Typescript). The compilation is done in Docker. The issue is that the autocomplete suggestions in VSCode are seriously slow for me, often 4+ seconds, despite compilation being much quicker (couple of seconds).

Since I'm not able to provide code you'll probably be unable to help me which is understandable.
Here's a relevant tsserver log, I'm hoping that there might be something in there that could give a pointer in the right direction which I can then investigate. Took it on a fresh vscode instance, made sure to wait a minute for everything to be fully loaded. Typed "req.", where req is a Express request, and waited until the autocomplete suggestions came up. In particular I'm curious why there's a 2 second gap between "Different program with same set of files" and "response". Is this just the compilation taking 2 seconds? Especially as it says "canceled: true" (Info 188). And then the autocomplete takes another 2 seconds, adding up to 4 seconds?

Info 181  [18:54:02.512] request:
    {"seq":37,"type":"request","command":"updateOpen","arguments":{"changedFiles":[{"fileName":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","textChanges":[{"newText":"\r\n      ","start":{"line":27,"offset":21},"end":{"line":27,"offset":21}}]}],"closedFiles":[],"openFiles":[]}}
Perf 182  [18:54:02.512] 37::updateOpen: elapsed time (in milliseconds) 0.5430
Info 183  [18:54:02.512] response:
    {"seq":0,"type":"response","command":"updateOpen","request_seq":37,"success":true,"body":true}
Info 184  [18:54:02.513] request:
    {"seq":38,"type":"request","command":"encodedSemanticClassifications-full","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","start":0,"length":2171,"format":"2020"}}
Info 185  [18:54:02.513] Starting updateGraphWorker: Project: c:/Users/PC/Developer/work-project/tsconfig.json
Info 186  [18:54:02.532] Finishing updateGraphWorker: Project: c:/Users/PC/Developer/work-project/tsconfig.json Version: 2 structureChanged: false structureIsReused:: Completely Elapsed: 18.714800000190735ms
Info 187  [18:54:02.532] Different program with same set of files
Info 188  [18:54:04.548] response:
    {"seq":0,"type":"response","command":"encodedSemanticClassifications-full","request_seq":38,"success":true,"performanceData":{"updateGraphDurationMs":18.714800000190735},"body":{"canceled":true}}
Info 189  [18:54:04.553] request:
    {"seq":39,"type":"request","command":"updateOpen","arguments":{"changedFiles":[{"fileName":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","textChanges":[{"newText":"r","start":{"line":28,"offset":7},"end":{"line":28,"offset":7}}]}],"closedFiles":[],"openFiles":[]}}
Perf 190  [18:54:04.553] 39::updateOpen: elapsed time (in milliseconds) 0.3743
Info 191  [18:54:04.553] response:
    {"seq":0,"type":"response","command":"updateOpen","request_seq":39,"success":true,"body":true}
Info 192  [18:54:04.554] request:
    {"seq":41,"type":"request","command":"updateOpen","arguments":{"changedFiles":[{"fileName":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","textChanges":[{"newText":"e","start":{"line":28,"offset":8},"end":{"line":28,"offset":8}}]}],"closedFiles":[],"openFiles":[]}}
Perf 193  [18:54:04.554] 41::updateOpen: elapsed time (in milliseconds) 0.3945
Info 194  [18:54:04.554] response:
    {"seq":0,"type":"response","command":"updateOpen","request_seq":41,"success":true,"body":true}
Info 195  [18:54:04.555] request:
    {"seq":42,"type":"request","command":"updateOpen","arguments":{"changedFiles":[{"fileName":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","textChanges":[{"newText":"q","start":{"line":28,"offset":9},"end":{"line":28,"offset":9}}]}],"closedFiles":[],"openFiles":[]}}
Perf 196  [18:54:04.555] 42::updateOpen: elapsed time (in milliseconds) 0.3048
Info 197  [18:54:04.555] response:
    {"seq":0,"type":"response","command":"updateOpen","request_seq":42,"success":true,"body":true}
Info 198  [18:54:04.555] request:
    {"seq":43,"type":"request","command":"updateOpen","arguments":{"changedFiles":[{"fileName":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","textChanges":[{"newText":".","start":{"line":28,"offset":10},"end":{"line":28,"offset":10}}]}],"closedFiles":[],"openFiles":[]}}
Perf 199  [18:54:04.556] 43::updateOpen: elapsed time (in milliseconds) 0.2716
Info 200  [18:54:04.556] response:
    {"seq":0,"type":"response","command":"updateOpen","request_seq":43,"success":true,"body":true}
Info 201  [18:54:04.556] request:
    {"seq":44,"type":"request","command":"completionInfo","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","line":28,"offset":11,"includeExternalModuleExports":true,"includeInsertTextCompletions":true,"triggerCharacter":".","triggerKind":2}}
Info 202  [18:54:04.557] Starting updateGraphWorker: Project: c:/Users/PC/Developer/work-project/tsconfig.json
Info 203  [18:54:04.576] Finishing updateGraphWorker: Project: c:/Users/PC/Developer/work-project/tsconfig.json Version: 3 structureChanged: false structureIsReused:: Completely Elapsed: 19.604499995708466ms
Info 204  [18:54:04.576] Different program with same set of files
Info 205  [18:54:04.580] getCompletionData: Get current token: 0.0754999965429306
Info 206  [18:54:04.580] getCompletionData: Is inside comment: 0.181099995970726
Info 207  [18:54:04.580] getCompletionData: Get previous token: 0.08460000157356262
Info 208  [18:54:04.581] getCompletionsAtPosition: isCompletionListBlocker: 0.2557999938726425
Info 209  [18:54:05.819] getCompletionData: Semantic work: 1238.143700003624
Info 210  [18:54:05.826] getCompletionsAtPosition: getCompletionEntriesFromSymbols: 5.646999999880791
Perf 211  [18:54:05.828] 44::completionInfo: elapsed time (in milliseconds) 1271.5201
Info 212  [18:54:05.828] response:
    {"seq":0,"type":"response","command":"completionInfo","request_seq":44,"success":true,"performanceData":{"updateGraphDurationMs":19.604499995708466},"body":{"isGlobalCompletion":false,"isMemberCompletion":true,"isNewIdentifierLocation":false,"entries":[{"name":"_construct","kind":"method","kindModifiers":"declare,optional","sortText":"11"},{"name":"_destroy","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"_read","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"aborted","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"accepted","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"accepts","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"acceptsCharsets","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"acceptsEncodings","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"acceptsLanguages","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"addListener","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"app","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"baseUrl","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"body","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"complete","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"connection","kind":"property","kindModifiers":"deprecated,declare","sortText":"19"},{"name":"cookies","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"destroy","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"destroyed","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"emit","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"eventNames","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"fresh","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"get","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"getMaxListeners","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"header","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"headers","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"host","kind":"property","kindModifiers":"deprecated,declare","sortText":"19"},{"name":"hostname","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"httpVersion","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"httpVersionMajor","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"httpVersionMinor","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"ip","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"ips","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"is","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"isPaused","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"listenerCount","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"listeners","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"method","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"next","kind":"property","kindModifiers":"declare,optional","sortText":"11"},{"name":"off","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"on","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"once","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"originalUrl","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"param","kind":"method","kindModifiers":"deprecated,declare","sortText":"19"},{"name":"params","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"path","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"pause","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"pipe","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"prependListener","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"prependOnceListener","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"protocol","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"push","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"query","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"range","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"rawHeaders","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"rawListeners","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"rawTrailers","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"read","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"readable","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableAborted","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableDidRead","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableEncoding","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableEnded","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableFlowing","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableHighWaterMark","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableLength","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"readableObjectMode","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"removeAllListeners","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"removeListener","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"res","kind":"property","kindModifiers":"declare,optional","sortText":"11"},{"name":"resume","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"route","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"secure","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"setEncoding","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"setMaxListeners","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"setTimeout","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"signedCookies","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"socket","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"stale","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"statusCode","kind":"property","kindModifiers":"declare,optional","sortText":"11"},{"name":"statusMessage","kind":"property","kindModifiers":"declare,optional","sortText":"11"},{"name":"subdomains","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"Symbol","kind":"var","kindModifiers":"declare","sortText":"11","insertText":"[Symbol]","replacementSpan":{"start":{"line":28,"offset":10},"end":{"line":28,"offset":11}}},{"name":"trailers","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"unpipe","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"unshift","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"url","kind":"property","kindModifiers":"declare","sortText":"11"},{"name":"wrap","kind":"method","kindModifiers":"declare","sortText":"11"},{"name":"xhr","kind":"property","kindModifiers":"declare","sortText":"11"}]}}
Info 213  [18:54:05.829] request:
    {"seq":45,"type":"request","command":"encodedSemanticClassifications-full","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","start":0,"length":2175,"format":"2020"}}
Perf 214  [18:54:05.969] 45::encodedSemanticClassifications-full: elapsed time (in milliseconds) 140.1043
Info 215  [18:54:05.969] response:
    {"seq":0,"type":"response","command":"encodedSemanticClassifications-full","request_seq":45,"success":true,"body":{"spans":[433,6,2057,442,6,2816,455,6,2056,462,3,3072,478,15,2816,501,3,1793,534,10,3072,561,6,2056,568,3,3072,587,15,2816,618,6,2561,628,6,2824,646,2,2561,650,10,2056,661,14,2560,676,6,3072,686,10,2056,697,11,2560,742,3,1793,759,3,1792,789,10,3072,800,3,1792,804,6,2560,835,6,2056,842,3,3072,869,15,2816,885,13,2056,899,12,2560,920,3,1793,953,13,3072,967,7,2816,975,3,1792,995,6,2056,1002,3,3072,1027,15,2816,1058,6,2561,1068,6,2824,1086,2,2561,1090,10,2056,1101,14,2560,1116,6,3072,1126,10,2056,1137,11,2560,1169,5,2561,1178,6,2824,1196,4,2561,1204,10,2824,1215,9,512,1226,7,3072,1234,9,512,1244,7,2312,1285,3,1793,1290,3,1793,1313,5,2089,1338,11,3072,1350,3,1792,1354,6,2560,1365,3,1792,1369,5,2560,1395,10,2089,1408,22,2816,1431,5,2088,1458,7,272,1467,7,2817,1490,3,1792,1494,9,3072,1580,5,2088,1586,6,2584,1620,10,2088,1631,5,2560,1665,10,2088,1676,6,2560,1706,3,1792,1710,3,3072,1714,5,2088,1740,7,2816,1883,6,2056,1890,3,3072,1914,15,2816,1937,3,1793,1942,3,1793,2102,4,3072],"endOfLineState":0}}
Info 216  [18:54:05.970] request:
    {"seq":48,"type":"request","command":"provideInlayHints","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","start":0,"length":2203}}
Perf 217  [18:54:06.001] 48::provideInlayHints: elapsed time (in milliseconds) 31.0457
Info 218  [18:54:06.001] response:
    {"seq":0,"type":"response","command":"provideInlayHints","request_seq":48,"success":true,"body":[{"text":"path:","position":{"line":13,"offset":3},"kind":"Parameter","whitespaceAfter":true},{"text":"path:","position":{"line":20,"offset":3},"kind":"Parameter","whitespaceAfter":true},{"text":"path:","position":{"line":35,"offset":3},"kind":"Parameter","whitespaceAfter":true},{"text":"path:","position":{"line":42,"offset":3},"kind":"Parameter","whitespaceAfter":true},{"text":"statusCode:","position":{"line":57,"offset":23},"kind":"Parameter","whitespaceAfter":true},{"text":"value:","position":{"line":64,"offset":19},"kind":"Parameter","whitespaceAfter":true},{"text":"path:","position":{"line":72,"offset":3},"kind":"Parameter","whitespaceAfter":true}]}
Info 219  [18:54:06.002] request:
    {"seq":49,"type":"request","command":"getApplicableRefactors","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","startLine":28,"startOffset":11,"endLine":28,"endOffset":11}}
Perf 220  [18:54:06.003] 49::getApplicableRefactors: elapsed time (in milliseconds) 0.8239
Info 221  [18:54:06.003] response:
    {"seq":0,"type":"response","command":"getApplicableRefactors","request_seq":49,"success":true,"body":[{"name":"Convert export","description":"Convert default export to named export","actions":[{"name":"Convert default export to named export","description":"Convert default export to named export","kind":"refactor.rewrite.export.named","notApplicableReason":"Could not find export statement"},{"name":"Convert named export to default export","description":"Convert named export to default export","kind":"refactor.rewrite.export.default","notApplicableReason":"Could not find export statement"}]},{"name":"Convert import","description":"Convert namespace import to named imports","actions":[{"name":"Convert namespace import to named imports","description":"Convert namespace import to named imports","kind":"refactor.rewrite.import.named","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Convert import","description":"Convert named imports to namespace import","actions":[{"name":"Convert named imports to namespace import","description":"Convert named imports to namespace import","kind":"refactor.rewrite.import.namespace","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Extract Symbol","description":"Extract function","actions":[{"name":"Extract Function","description":"Extract function","kind":"refactor.extract.function","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract Symbol","description":"Extract constant","actions":[{"name":"Extract Constant","description":"Extract constant","kind":"refactor.extract.constant","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract type","description":"Extract type","actions":[{"name":"Extract to typedef","description":"Extract to typedef","kind":"refactor.extract.typedef","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to type alias","description":"Extract to type alias","kind":"refactor.extract.type","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to interface","description":"Extract to interface","kind":"refactor.extract.interface","notApplicableReason":"Selection is not a valid type node"}]},{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","actions":[{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","kind":"refactor.rewrite.property.generateAccessors","notApplicableReason":"Could not find property for which to generate accessor"}]},{"name":"Move to a new file","description":"Move to a new file","actions":[{"name":"Move to a new file","description":"Move to a new file","kind":"refactor.move.newFile","notApplicableReason":"Selection is not a valid statement or statements"}]},{"name":"Convert to template string","description":"Convert to template string","actions":[{"name":"Convert to template string","description":"Convert to template string","kind":"refactor.rewrite.string","notApplicableReason":"Can only convert string concatenation"}]},{"name":"Infer function return type","description":"Infer function return type","actions":[{"name":"Infer function return type","description":"Infer function return type","kind":"refactor.rewrite.function.returnType","notApplicableReason":"Return type must be inferred from a function"}]}]}
Info 222  [18:54:06.003] request:
    {"seq":51,"type":"request","command":"completionEntryDetails","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","line":28,"offset":11,"entryNames":["params"]}}
Info 223  [18:54:06.004] getCompletionData: Get current token: 0.0341000109910965
Info 224  [18:54:06.004] getCompletionData: Is inside comment: 0.06009998917579651
Info 225  [18:54:06.004] getCompletionData: Get previous token: 0.05040000379085541
Info 226  [18:54:06.004] getCompletionsAtPosition: isCompletionListBlocker: 0.0031999945640563965
Info 227  [18:54:06.005] getCompletionData: Semantic work: 0.4302999973297119
Perf 228  [18:54:06.020] 51::completionEntryDetails: elapsed time (in milliseconds) 17.0060
Info 229  [18:54:06.020] response:
    {"seq":0,"type":"response","command":"completionEntryDetails","request_seq":51,"success":true,"body":[{"name":"params","kindModifiers":"declare","kind":"property","displayParts":[{"text":"(","kind":"punctuation"},{"text":"property","kind":"text"},{"text":")","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"Request","kind":"interfaceName"},{"text":"<","kind":"punctuation"},{"text":"{","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"id","kind":"propertyName"},{"text":":","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"number","kind":"keyword"},{"text":";","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"}","kind":"punctuation"},{"text":",","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"any","kind":"keyword"},{"text":",","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"unknown","kind":"keyword"},{"text":",","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"unknown","kind":"keyword"},{"text":",","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"Record","kind":"aliasName"},{"text":"<","kind":"punctuation"},{"text":"string","kind":"keyword"},{"text":",","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"any","kind":"keyword"},{"text":">","kind":"punctuation"},{"text":">","kind":"punctuation"},{"text":".","kind":"punctuation"},{"text":"params","kind":"propertyName"},{"text":":","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"{","kind":"punctuation"},{"text":"\n","kind":"lineBreak"},{"text":"    ","kind":"space"},{"text":"id","kind":"propertyName"},{"text":":","kind":"punctuation"},{"text":" ","kind":"space"},{"text":"number","kind":"keyword"},{"text":";","kind":"punctuation"},{"text":"\n","kind":"lineBreak"},{"text":"}","kind":"punctuation"}],"documentation":[],"tags":[]}]}
Info 230  [18:54:06.097] request:
    {"seq":52,"type":"request","command":"geterr","arguments":{"delay":0,"files":["c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts"]}}
Perf 231  [18:54:06.097] 52::geterr: async elapsed time (in milliseconds) 0.3917
Info 232  [18:54:06.112] event:
    {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","diagnostics":[{"start":{"line":28,"offset":11},"end":{"line":28,"offset":11},"text":"Identifier expected.","code":1003,"category":"error"}]}}
Info 233  [18:54:07.099] event:
    {"seq":0,"type":"event","event":"requestCompleted","body":{"request_seq":52}}
Info 234  [18:54:07.101] request:
    {"seq":53,"type":"request","command":"getApplicableRefactors","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","startLine":28,"startOffset":11,"endLine":28,"endOffset":11}}
Perf 235  [18:54:07.104] 53::getApplicableRefactors: elapsed time (in milliseconds) 2.7228
Info 236  [18:54:07.104] response:
    {"seq":0,"type":"response","command":"getApplicableRefactors","request_seq":53,"success":true,"body":[{"name":"Convert export","description":"Convert default export to named export","actions":[{"name":"Convert default export to named export","description":"Convert default export to named export","kind":"refactor.rewrite.export.named","notApplicableReason":"Could not find export statement"},{"name":"Convert named export to default export","description":"Convert named export to default export","kind":"refactor.rewrite.export.default","notApplicableReason":"Could not find export statement"}]},{"name":"Convert import","description":"Convert namespace import to named imports","actions":[{"name":"Convert namespace import to named imports","description":"Convert namespace import to named imports","kind":"refactor.rewrite.import.named","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Convert import","description":"Convert named imports to namespace import","actions":[{"name":"Convert named imports to namespace import","description":"Convert named imports to namespace import","kind":"refactor.rewrite.import.namespace","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Extract Symbol","description":"Extract function","actions":[{"name":"Extract Function","description":"Extract function","kind":"refactor.extract.function","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract Symbol","description":"Extract constant","actions":[{"name":"Extract Constant","description":"Extract constant","kind":"refactor.extract.constant","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract type","description":"Extract type","actions":[{"name":"Extract to typedef","description":"Extract to typedef","kind":"refactor.extract.typedef","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to type alias","description":"Extract to type alias","kind":"refactor.extract.type","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to interface","description":"Extract to interface","kind":"refactor.extract.interface","notApplicableReason":"Selection is not a valid type node"}]},{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","actions":[{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","kind":"refactor.rewrite.property.generateAccessors","notApplicableReason":"Could not find property for which to generate accessor"}]},{"name":"Move to a new file","description":"Move to a new file","actions":[{"name":"Move to a new file","description":"Move to a new file","kind":"refactor.move.newFile","notApplicableReason":"Selection is not a valid statement or statements"}]},{"name":"Convert to template string","description":"Convert to template string","actions":[{"name":"Convert to template string","description":"Convert to template string","kind":"refactor.rewrite.string","notApplicableReason":"Can only convert string concatenation"}]},{"name":"Infer function return type","description":"Infer function return type","actions":[{"name":"Infer function return type","description":"Infer function return type","kind":"refactor.rewrite.function.returnType","notApplicableReason":"Return type must be inferred from a function"}]}]}
Info 237  [18:54:07.106] request:
    {"seq":54,"type":"request","command":"getCodeFixes","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","startLine":28,"startOffset":11,"endLine":28,"endOffset":11,"errorCodes":[1003]}}
Perf 238  [18:54:08.332] 54::getCodeFixes: elapsed time (in milliseconds) 1226.3076
Info 239  [18:54:08.332] response:
    {"seq":0,"type":"response","command":"getCodeFixes","request_seq":54,"success":true,"body":[]}
Info 240  [18:54:08.332] request:
    {"seq":55,"type":"request","command":"geterr","arguments":{"delay":0,"files":["c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts"]}}
Perf 241  [18:54:08.333] 55::geterr: async elapsed time (in milliseconds) 0.3035
Info 242  [18:54:08.337] event:
    {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","diagnostics":[{"start":{"line":28,"offset":11},"end":{"line":28,"offset":11},"text":"Identifier expected.","code":1003,"category":"error"}]}}
Info 243  [18:54:08.337] event:
    {"seq":0,"type":"event","event":"semanticDiag","body":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","diagnostics":[]}}
Info 244  [18:54:08.338] event:
    {"seq":0,"type":"event","event":"suggestionDiag","body":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","diagnostics":[{"start":{"line":14,"offset":26},"end":{"line":14,"offset":29},"text":"'req' is declared but its value is never read.","code":6133,"category":"suggestion","reportsUnnecessary":true},{"start":{"line":73,"offset":26},"end":{"line":73,"offset":29},"text":"'req' is declared but its value is never read.","code":6133,"category":"suggestion","reportsUnnecessary":true},{"start":{"line":73,"offset":31},"end":{"line":73,"offset":34},"text":"'res' is declared but its value is never read.","code":6133,"category":"suggestion","reportsUnnecessary":true}]}}
Info 245  [18:54:08.338] event:
    {"seq":0,"type":"event","event":"requestCompleted","body":{"request_seq":55}}
Info 246  [18:54:08.657] request:
    {"seq":56,"type":"request","command":"getApplicableRefactors","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","startLine":28,"startOffset":11,"endLine":28,"endOffset":11}}
Perf 247  [18:54:08.658] 56::getApplicableRefactors: elapsed time (in milliseconds) 1.1175
Info 248  [18:54:08.658] response:
    {"seq":0,"type":"response","command":"getApplicableRefactors","request_seq":56,"success":true,"body":[{"name":"Convert export","description":"Convert default export to named export","actions":[{"name":"Convert default export to named export","description":"Convert default export to named export","kind":"refactor.rewrite.export.named","notApplicableReason":"Could not find export statement"},{"name":"Convert named export to default export","description":"Convert named export to default export","kind":"refactor.rewrite.export.default","notApplicableReason":"Could not find export statement"}]},{"name":"Convert import","description":"Convert namespace import to named imports","actions":[{"name":"Convert namespace import to named imports","description":"Convert namespace import to named imports","kind":"refactor.rewrite.import.named","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Convert import","description":"Convert named imports to namespace import","actions":[{"name":"Convert named imports to namespace import","description":"Convert named imports to namespace import","kind":"refactor.rewrite.import.namespace","notApplicableReason":"Selection is not an import declaration."}]},{"name":"Extract Symbol","description":"Extract function","actions":[{"name":"Extract Function","description":"Extract function","kind":"refactor.extract.function","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract Symbol","description":"Extract constant","actions":[{"name":"Extract Constant","description":"Extract constant","kind":"refactor.extract.constant","notApplicableReason":"Cannot extract empty range."}]},{"name":"Extract type","description":"Extract type","actions":[{"name":"Extract to typedef","description":"Extract to typedef","kind":"refactor.extract.typedef","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to type alias","description":"Extract to type alias","kind":"refactor.extract.type","notApplicableReason":"Selection is not a valid type node"},{"name":"Extract to interface","description":"Extract to interface","kind":"refactor.extract.interface","notApplicableReason":"Selection is not a valid type node"}]},{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","actions":[{"name":"Generate 'get' and 'set' accessors","description":"Generate 'get' and 'set' accessors","kind":"refactor.rewrite.property.generateAccessors","notApplicableReason":"Could not find property for which to generate accessor"}]},{"name":"Move to a new file","description":"Move to a new file","actions":[{"name":"Move to a new file","description":"Move to a new file","kind":"refactor.move.newFile","notApplicableReason":"Selection is not a valid statement or statements"}]},{"name":"Convert to template string","description":"Convert to template string","actions":[{"name":"Convert to template string","description":"Convert to template string","kind":"refactor.rewrite.string","notApplicableReason":"Can only convert string concatenation"}]},{"name":"Infer function return type","description":"Infer function return type","actions":[{"name":"Infer function return type","description":"Infer function return type","kind":"refactor.rewrite.function.returnType","notApplicableReason":"Return type must be inferred from a function"}]}]}
Info 249  [18:54:08.659] request:
    {"seq":57,"type":"request","command":"getCodeFixes","arguments":{"file":"c:/Users/PC/Developer/work-project/src/components/map/map.controller.ts","startLine":28,"startOffset":11,"endLine":28,"endOffset":11,"errorCodes":[1003]}}
Perf 250  [18:54:08.659] 57::getCodeFixes: elapsed time (in milliseconds) 0.7306
Info 251  [18:54:08.660] response:
    {"seq":0,"type":"response","command":"getCodeFixes","request_seq":57,"success":true,"body":[]}

Metadata

Metadata

Assignees

Labels

Needs InvestigationThis issue needs a team member to investigate its status.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions