vscode_deno
vscode_deno copied to clipboard
Plugin incompatible with built-in tsserver `enableProjectDiagnostics`
Edit: From https://github.com/denoland/vscode_deno/issues/437#issuecomment-930501333:
Finally figured it out. I have this in my VSCode settings:
"typescript.tsserver.experimental.enableProjectDiagnostics": true
Without that setting it works (though I'd like to keep that setting!).
Original post:
The Deno VSCode extension doesn't seem to work at all for me. It acts the same as I would expect from the Typescript extension with the default tsconfig.json
. For example it doesn't know about Deno
, it complains about iterating over collections, using Promise<T>
and so on. I have demonstrated the simplest error below.
To Reproduce
- Create a workspace with the files shown in the screenshot below
- Install Deno and the Deno VSCode extension.
- Open the workspace. It should have no errors.
Screenshots
Versions
vscode: 1.56.2 deno: 1.10.3 extension: 3.5.1
I can't reproduce by your example. Maybe we need more info. I suggest,
- Turn on "Deno: internal debug" settings
- Post log of deno language server tab of output panel ((Ctrl or Cmd)+Shift+U).
And you missed OS information. It would be nice to have one because there can be platform issue. (I know one issue which have similar symptom but it seems not to be the case)
The first step is what does Output | Deno Language Server
show.
Ok it's very very verbose! So this is just the output from when I type the o
of Deno
:
{"type":"mark","name":"did_change","count":8,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts","version":9},"contentChanges":[{"range":{"start":{"line":2,"character":3},"end":{"line":2,"character":3}},"rangeLength":0,"text":"o"}]}},
{"type":"measure","name":"did_change","count":8,"duration":0},
{"type":"mark","name":"completion","count":2,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"position":{"line":2,"character":4},"context":{"triggerKind":1}}},
{"type":"mark","name":"get_line_index_sync","count":28,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":28,"duration":0},
{"type":"mark","name":"request","count":37,"args":{"id":38,"method":"getCompletions","specifier":"file:///Users/timh/d1/main.ts","position":29,"preferences":{"includeCompletionsWithInsertText":true}}},
{"type":"mark","name":"op_script_version","count":105,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":105,"duration":0},
{"type":"mark","name":"op_script_version","count":106,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":106,"duration":0},
{"type":"mark","name":"op_script_version","count":107,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":107,"duration":0},
{"type":"mark","name":"op_script_version","count":108,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"op_script_version","count":108,"duration":0},
{"type":"mark","name":"op_script_version","count":109,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":109,"duration":0},
{"type":"mark","name":"op_get_length","count":25,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"8"}},
{"type":"measure","name":"op_get_length","count":25,"duration":0},
{"type":"mark","name":"op_get_change_range","count":13,"args":{"specifier":"file:///Users/timh/d1/main.ts","oldLength":29,"oldVersion":"8","version":"9"}},
{"type":"measure","name":"op_get_change_range","count":13,"duration":0},
{"type":"mark","name":"op_get_text","count":16,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"9","start":28,"end":29}},
{"type":"measure","name":"op_get_text","count":16,"duration":0},
{"type":"mark","name":"op_dispose","count":7,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"8"}},
{"type":"measure","name":"op_dispose","count":7,"duration":0},
{"type":"measure","name":"request","count":37,"duration":21},
{"type":"measure","name":"completion","count":2,"duration":69},
{"type":"mark","name":"folding_range","count":8,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":29,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":29,"duration":0},
{"type":"mark","name":"request","count":38,"args":{"id":39,"method":"getOutliningSpans","specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"mark","name":"op_script_version","count":110,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":110,"duration":0},
{"type":"mark","name":"op_get_length","count":26,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"8"}},
{"type":"measure","name":"op_get_length","count":26,"duration":0},
{"type":"mark","name":"op_get_change_range","count":14,"args":{"specifier":"file:///Users/timh/d1/main.ts","oldLength":30,"oldVersion":"8","version":"9"}},
{"type":"measure","name":"op_get_change_range","count":14,"duration":0},
{"type":"mark","name":"op_get_length","count":27,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"9"}},
{"type":"measure","name":"op_get_length","count":27,"duration":0},
{"type":"mark","name":"op_get_text","count":17,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"9","start":0,"end":30}},
{"type":"measure","name":"op_get_text","count":17,"duration":0},
{"type":"measure","name":"request","count":38,"duration":0},
{"type":"measure","name":"folding_range","count":8,"duration":1},
{"type":"mark","name":"update_diagnostics"},
{"type":"mark","name":"update_diagnostics_lint"},
{"type":"mark","name":"update_diagnostics_ts"},
{"type":"mark","name":"update_diagnostics_deps"},
{"type":"mark","name":"request","count":39,"args":{"id":40,"method":"getDiagnostics","specifiers":["file:///Users/timh/d1/main.ts"]}},
{"type":"mark","name":"op_script_version","count":111,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":111,"duration":0},
{"type":"mark","name":"op_script_version","count":112,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":112,"duration":0},
{"type":"mark","name":"op_script_version","count":113,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":113,"duration":0},
{"type":"mark","name":"op_script_version","count":114,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"op_script_version","count":114,"duration":0},
{"type":"mark","name":"op_script_version","count":115,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":115,"duration":0},
{"type":"measure","name":"update_diagnostics_lint","count":12,"duration":2},
{"type":"measure","name":"update_diagnostics_deps","count":12,"duration":0},
{"type":"measure","name":"request","count":39,"duration":2},
{"type":"measure","name":"update_diagnostics_ts","count":12,"duration":4},
{"type":"measure","name":"update_diagnostics","count":12,"duration":4},
{"type":"mark","name":"semantic_tokens_full","count":11,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":30,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":30,"duration":0},
{"type":"mark","name":"request","count":40,"args":{"id":41,"method":"getEncodedSemanticClassifications","specifier":"file:///Users/timh/d1/main.ts","span":{"start":0,"length":30}}},
{"type":"mark","name":"op_script_version","count":116,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":116,"duration":0},
{"type":"mark","name":"op_script_version","count":117,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":117,"duration":0},
{"type":"mark","name":"op_script_version","count":118,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":118,"duration":0},
{"type":"mark","name":"op_script_version","count":119,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"op_script_version","count":119,"duration":0},
{"type":"mark","name":"op_script_version","count":120,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":120,"duration":0},
{"type":"measure","name":"request","count":40,"duration":0},
{"type":"measure","name":"semantic_tokens_full","count":11,"duration":1},
{"type":"mark","name":"document_symbol","count":6,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":31,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":31,"duration":0},
{"type":"mark","name":"request","count":41,"args":{"id":42,"method":"getNavigationTree","specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"mark","name":"op_script_version","count":121,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":121,"duration":0},
{"type":"measure","name":"request","count":41,"duration":0},
{"type":"measure","name":"document_symbol","count":6,"duration":1},
{"type":"mark","name":"code_action","count":6,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":4},"end":{"line":2,"character":4}},"context":{"diagnostics":[{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":4}},"severity":4,"source":"cSpell","message":"\"Deno\": Unknown word."},{"range":{"start":{"line":2,"character":0},"end":{"line":2,"character":4}},"severity":1,"code":2304,"source":"deno-ts","message":"Cannot find name 'Deno'."}]}}},
{"type":"mark","name":"get_line_index_sync","count":32,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":32,"duration":0},
{"type":"mark","name":"request","count":42,"args":{"id":43,"method":"getCodeFixes","specifier":"file:///Users/timh/d1/main.ts","startPosition":25,"endPosition":29,"errorCodes":["2304"]}},
{"type":"mark","name":"op_script_version","count":122,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":122,"duration":0},
{"type":"mark","name":"op_script_version","count":123,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":123,"duration":0},
{"type":"mark","name":"op_script_version","count":124,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":124,"duration":0},
{"type":"mark","name":"op_script_version","count":125,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"op_script_version","count":125,"duration":0},
{"type":"mark","name":"op_script_version","count":126,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":126,"duration":0},
{"type":"measure","name":"request","count":42,"duration":1},
{"type":"measure","name":"code_action","count":6,"duration":1},
Not sure if that is very helpful...
Here is the output with the original document (with Deno;
) if I don't edit anything. One weird thing is that it doesn't show any errors until I make an edit. But the edit can just be adding a space after the semicolon.
I edited some lines where the log includes the entire contents of enormous files (you may want to change your JSON printing routing to elide long strings).
Starting Deno language server...
version: 1.10.3 (release, x86_64-apple-darwin)
Connected to "Visual Studio Code" 1.56.2
{"type":"mark","name":"update_tsconfig"},
{"type":"mark","name":"request","count":1,"args":{"id":2,"method":"configure","compilerOptions":{"allowJs":true,"esModuleInterop":true,"experimentalDecorators":true,"isolatedModules":true,"jsx":"react","lib":["deno.ns","deno.window"],"module":"esnext","noEmit":true,"strict":true,"target":"esnext","useDefineForClassFields":true}}},
{"type":"measure","name":"request","count":1,"duration":0},
{"type":"measure","name":"update_tsconfig","count":1,"duration":104},
{"type":"mark","name":"request","count":2,"args":{"id":3,"method":"getSupportedCodeFixes"}},
{"type":"measure","name":"request","count":2,"duration":0},
{"type":"measure","name":"initialize","count":1,"duration":106},
language server initialized
{"type":"mark","name":"update_import_map"},
{"type":"measure","name":"update_import_map","count":1,"duration":0},
{"type":"mark","name":"update_registries"},
{"type":"measure","name":"update_registries","count":1,"duration":0},
Server ready.
{"type":"mark","name":"did_open","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts","languageId":"typescript","version":1,"text":"#!/usr/bin/env deno run\n\nDeno;"}}},
{"type":"measure","name":"did_open","count":1,"duration":0},
{"type":"mark","name":"code_action","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":1,"duration":0},
{"type":"mark","name":"code_action","count":2,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":2,"duration":0},
{"type":"mark","name":"semantic_tokens_range","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":0,"character":0},"end":{"line":2,"character":5}}}},
{"type":"mark","name":"get_line_index_sync","count":1,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":1,"duration":0},
{"type":"mark","name":"request","count":3,"args":{"id":4,"method":"getEncodedSemanticClassifications","specifier":"file:///Users/timh/d1/main.ts","span":{"start":0,"length":30}}},
{"type":"mark","name":"op_script_version","count":1,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":1,"duration":0},
{"type":"mark","name":"op_get_length","count":1,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":1,"duration":0},
{"type":"mark","name":"op_get_text","count":1,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"1","start":0,"end":30}},
{"type":"measure","name":"op_get_text","count":1,"duration":0},
{"type":"measure","name":"request","count":3,"duration":507},
{"type":"measure","name":"semantic_tokens_range","count":1,"duration":507},
{"type":"mark","name":"update_diagnostics"},
{"type":"mark","name":"folding_range","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":2,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":2,"duration":0},
{"type":"mark","name":"update_diagnostics_lint"},
{"type":"mark","name":"update_diagnostics_ts"},
{"type":"mark","name":"request","count":4,"args":{"id":5,"method":"getOutliningSpans","specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"mark","name":"update_diagnostics_deps"},
{"type":"mark","name":"op_script_version","count":2,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":2,"duration":0},
{"type":"mark","name":"op_get_length","count":2,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":2,"duration":0},
{"type":"mark","name":"op_get_text","count":2,"args":{"specifier":"file:///Users/timh/d1/main.ts","version":"1","start":0,"end":30}},
{"type":"measure","name":"op_get_text","count":2,"duration":0},
{"type":"measure","name":"update_diagnostics_lint","count":1,"duration":2},
{"type":"measure","name":"update_diagnostics_deps","count":1,"duration":1},
{"type":"measure","name":"request","count":4,"duration":1},
{"type":"measure","name":"folding_range","count":1,"duration":3},
{"type":"mark","name":"semantic_tokens_full","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":3,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":3,"duration":0},
{"type":"mark","name":"request","count":5,"args":{"id":6,"method":"getDiagnostics","specifiers":["file:///Users/timh/d1/main.ts"]}},
{"type":"mark","name":"op_script_version","count":3,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":3,"duration":0},
{"type":"measure","name":"request","count":5,"duration":4},
{"type":"measure","name":"update_diagnostics_ts","count":1,"duration":7},
{"type":"mark","name":"request","count":6,"args":{"id":7,"method":"getEncodedSemanticClassifications","specifier":"file:///Users/timh/d1/main.ts","span":{"start":0,"length":30}}},
{"type":"measure","name":"update_diagnostics","count":1,"duration":7},
{"type":"mark","name":"op_script_version","count":4,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":4,"duration":0},
{"type":"measure","name":"request","count":6,"duration":0},
{"type":"measure","name":"semantic_tokens_full","count":1,"duration":4},
{"type":"mark","name":"code_action","count":3,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":3,"duration":0},
{"type":"mark","name":"code_action","count":4,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":4,"duration":0},
{"type":"mark","name":"code_action","count":5,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":5,"duration":0},
{"type":"mark","name":"document_symbol","count":1,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":4,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"get_line_index_sync","count":4,"duration":0},
{"type":"mark","name":"request","count":7,"args":{"id":8,"method":"getNavigationTree","specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"mark","name":"op_script_version","count":5,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":5,"duration":0},
{"type":"measure","name":"request","count":7,"duration":1},
{"type":"measure","name":"document_symbol","count":1,"duration":1},
{"type":"mark","name":"did_open","count":2,"args":{"textDocument":{"uri":"file:///Applications/Visua (... manually elided, the entire contents of lib.dom.es5.js or whatever)
{"type":"measure","name":"did_open","count":2,"duration":18},
{"type":"mark","name":"semantic_tokens_full","count":2,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":5,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"get_line_index_sync","count":5,"duration":0},
{"type":"mark","name":"request","count":8,"args":{"id":9,"method":"getEncodedSemanticClassifications","specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts","span":{"start":0,"length":212331}}},
{"type":"mark","name":"op_script_version","count":6,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":6,"duration":0},
{"type":"mark","name":"op_script_version","count":7,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":7,"duration":0},
{"type":"mark","name":"op_get_length","count":3,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":3,"duration":1},
{"type":"mark","name":"op_get_text","count":3,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts","version":"1","start":0,"end":212331}},
{"type":"measure","name":"op_get_text","count":3,"duration":0},
{"type":"measure","name":"request","count":8,"duration":242},
{"type":"measure","name":"semantic_tokens_full","count":2,"duration":244},
{"type":"mark","name":"update_diagnostics"},
{"type":"mark","name":"update_diagnostics_lint"},
{"type":"mark","name":"update_diagnostics_ts"},
{"type":"measure","name":"update_diagnostics_ts","count":2,"duration":0},
{"type":"mark","name":"update_diagnostics_deps"},
{"type":"measure","name":"update_diagnostics_lint","count":2,"duration":0},
{"type":"measure","name":"update_diagnostics_deps","count":2,"duration":0},
{"type":"measure","name":"update_diagnostics","count":2,"duration":0},
{"type":"mark","name":"did_open","count":3,"args":{"textDocument":{"uri":"file (lib.dom again)
{"type":"measure","name":"did_open","count":3,"duration":108},
{"type":"mark","name":"semantic_tokens_full","count":3,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":6,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"get_line_index_sync","count":6,"duration":0},
{"type":"mark","name":"request","count":9,"args":{"id":10,"method":"getEncodedSemanticClassifications","specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts","span":{"start":0,"length":842607}}},
{"type":"mark","name":"op_script_version","count":8,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":8,"duration":0},
{"type":"mark","name":"op_script_version","count":9,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":9,"duration":0},
{"type":"mark","name":"op_script_version","count":10,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":10,"duration":0},
{"type":"mark","name":"op_get_length","count":4,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":4,"duration":3},
{"type":"mark","name":"op_get_text","count":4,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts","version":"1","start":0,"end":842607}},
{"type":"measure","name":"op_get_text","count":4,"duration":0},
{"type":"measure","name":"request","count":9,"duration":796},
{"type":"measure","name":"semantic_tokens_full","count":3,"duration":812},
{"type":"mark","name":"code_action","count":6,"args":{"textDocument":{"uri":"file:///Users/timh/d1/main.ts"},"range":{"start":{"line":2,"character":5},"end":{"line":2,"character":5}},"context":{"diagnostics":[]}}},
{"type":"measure","name":"code_action","count":6,"duration":0},
{"type":"mark","name":"update_diagnostics"},
{"type":"mark","name":"update_diagnostics_lint"},
{"type":"mark","name":"update_diagnostics_ts"},
{"type":"measure","name":"update_diagnostics_ts","count":3,"duration":0},
{"type":"mark","name":"update_diagnostics_deps"},
{"type":"measure","name":"update_diagnostics_lint","count":3,"duration":1},
{"type":"measure","name":"update_diagnostics_deps","count":3,"duration":0},
{"type":"measure","name":"update_diagnostics","count":3,"duration":1},
{"type":"mark","name":"did_open","count":4,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","languageId":"typescript","version":1,"text":"/*! *************** (and again!)
{"type":"measure","name":"did_open","count":4,"duration":0},
{"type":"mark","name":"semantic_tokens_full","count":4,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":7,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"get_line_index_sync","count":7,"duration":0},
{"type":"mark","name":"request","count":10,"args":{"id":11,"method":"getEncodedSemanticClassifications","specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","span":{"start":0,"length":1044}}},
{"type":"mark","name":"op_script_version","count":11,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":11,"duration":0},
{"type":"mark","name":"op_script_version","count":12,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":12,"duration":0},
{"type":"mark","name":"op_script_version","count":13,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":13,"duration":0},
{"type":"mark","name":"op_script_version","count":14,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":14,"duration":0},
{"type":"mark","name":"op_get_length","count":5,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":5,"duration":0},
{"type":"mark","name":"op_get_text","count":5,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","version":"1","start":0,"end":1044}},
{"type":"measure","name":"op_get_text","count":5,"duration":0},
{"type":"measure","name":"request","count":10,"duration":2},
{"type":"measure","name":"semantic_tokens_full","count":4,"duration":3},
{"type":"mark","name":"did_open","count":5,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts","languageId":"typescript","version":1,"text":"/*! ************ .... another very long file
{"type":"measure","name":"did_open","count":5,"duration":0},
{"type":"mark","name":"semantic_tokens_full","count":5,"args":{"textDocument":{"uri":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}}},
{"type":"mark","name":"get_line_index_sync","count":8,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"get_line_index_sync","count":8,"duration":0},
{"type":"mark","name":"request","count":11,"args":{"id":12,"method":"getEncodedSemanticClassifications","specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts","span":{"start":0,"length":9782}}},
{"type":"mark","name":"op_script_version","count":15,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts"}},
{"type":"measure","name":"op_script_version","count":15,"duration":0},
{"type":"mark","name":"op_script_version","count":16,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts"}},
{"type":"measure","name":"op_script_version","count":16,"duration":0},
{"type":"mark","name":"op_script_version","count":17,"args":{"specifier":"file:///Users/timh/d1/main.ts"}},
{"type":"measure","name":"op_script_version","count":17,"duration":0},
{"type":"mark","name":"op_script_version","count":18,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts"}},
{"type":"measure","name":"op_script_version","count":18,"duration":0},
{"type":"mark","name":"op_script_version","count":19,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts"}},
{"type":"measure","name":"op_script_version","count":19,"duration":0},
{"type":"mark","name":"op_get_length","count":6,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts","version":"1"}},
{"type":"measure","name":"op_get_length","count":6,"duration":0},
{"type":"mark","name":"op_get_text","count":6,"args":{"specifier":"file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts","version":"1","start":0,"end":9782}},
{"type":"measure","name":"op_get_text","count":6,"duration":0},
{"type":"measure","name":"request","count":11,"duration":7},
{"type":"measure","name":"semantic_tokens_full","count":5,"duration":8},
{"type":"mark","name":"update_diagnostics"},
{"type":"mark","name":"update_diagnostics_lint"},
{"type":"mark","name":"update_diagnostics_ts"},
{"type":"measure","name":"update_diagnostics_ts","count":4,"duration":0},
{"type":"mark","name":"update_diagnostics_deps"},
{"type":"measure","name":"update_diagnostics_lint","count":4,"duration":0},
{"type":"measure","name":"update_diagnostics_deps","count":4,"duration":0},
{"type":"measure","name":"update_diagnostics","count":4,"duration":0},
There have been some changes to the extension recently that provide slightly more information. If the issue is still a problem, please ensure the extension is updated (along with the version of Deno) and provide the output of at least the first section of the document that opens when doing Deno: Language Server Status from the command pallette.
Here you go:
Deno Language Server Status
Workspace Settings
{
"enable": true,
"cache": null,
"config": null,
"importMap": null,
"codeLens": {
"implementations": false,
"references": false,
"referencesAllFunctions": false,
"test": true
},
"internalDebug": true,
"lint": true,
"suggest": {
"completeFunctionCalls": false,
"names": true,
"paths": true,
"autoImports": true,
"imports": {
"autoDiscover": true,
"hosts": {}
}
},
"unstable": true
}
Workspace Details
-
Documents in memory: 5
- file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts
- file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts
- file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts
- file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
- file:///Users/timh/d9/main.ts
-
Sources in memory: 0
-
Performance measures: 397
- document_symbol (0ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- goto_definition (1ms)
- request (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_action (4ms)
- request (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- request (3ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_exists (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- hover (1ms)
- request (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- document_symbol (0ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_action (1ms)
- request (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (1ms)
- request (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_lens (1ms)
- get_navigation_tree (0ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- update_diagnostics (6ms)
- update_diagnostics_ts (6ms)
- request (5ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- update_diagnostics_deps (0ms)
- update_diagnostics_lint (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- folding_range (1ms)
- request (0ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- document_symbol (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_action (1ms)
- request (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_lens (1ms)
- get_navigation_tree (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (2ms)
- request (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- update_diagnostics (12ms)
- update_diagnostics_ts (11ms)
- request (10ms)
- update_diagnostics_deps (3ms)
- update_diagnostics_lint (4ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- folding_range (1ms)
- request (0ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- code_action (1ms)
- request (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- folding_range (1ms)
- request (0ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (4ms)
- request (3ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- did_change (0ms)
- did_change (0ms)
- completion (55ms)
- request (18ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- folding_range (1ms)
- request (0ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- did_change (0ms)
- did_change (0ms)
- completion (2ms)
- request (1ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- did_change (0ms)
- code_action (31ms)
- request (30ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- folding_range (1ms)
- request (0ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- completion (4ms)
- request (3ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- did_change (0ms)
- semantic_tokens_full (4ms)
- request (3ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (6ms)
- request (5ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_open (0ms)
- did_open (0ms)
- did_change (0ms)
- semantic_tokens_full (2ms)
- request (2ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- did_change (0ms)
- update_diagnostics (7ms)
- did_change (0ms)
- update_diagnostics_ts (7ms)
- request (5ms)
- update_diagnostics_deps (6ms)
- op_script_version (0ms)
- update_diagnostics_lint (1ms)
- op_script_version (0ms)
- op_script_version (0ms)
- completion (78ms)
- request (35ms)
- op_dispose (0ms)
- op_get_text (0ms)
- op_get_change_range (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_change (0ms)
- semantic_tokens_full (1976ms)
- request (493ms)
- update_diagnostics (1478ms)
- update_diagnostics_ts (1478ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- request (1468ms)
- update_diagnostics_deps (452ms)
- update_diagnostics_lint (439ms)
- op_get_text (0ms)
- op_get_length (2ms)
- get_line_index_sync (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- did_open (122ms)
- semantic_tokens_full (193ms)
- request (191ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_open (14ms)
- folding_range (1ms)
- request (1ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_lens (5ms)
- get_navigation_tree (4ms)
- request (0ms)
- op_script_version (0ms)
- update_diagnostics (6ms)
- update_diagnostics_ts (6ms)
- request (4ms)
- update_diagnostics_deps (0ms)
- op_script_version (0ms)
- update_diagnostics_lint (1ms)
- get_line_index_sync (0ms)
- document_symbol (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- document_symbol (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (449ms)
- request (448ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- document_symbol (1ms)
- request (1ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- did_open (0ms)
- did_change_watched_files (0ms)
- update_diagnostics (0ms)
- update_diagnostics_deps (0ms)
- update_diagnostics_lint (0ms)
- update_diagnostics_ts (0ms)
- did_change_configuration (1ms)
- update_tsconfig (0ms)
- request (0ms)
- update_registries (0ms)
- update_import_map (0ms)
- update_cache (0ms)
- did_close (0ms)
- did_change (0ms)
- did_open (0ms)
- did_change_configuration (5ms)
- update_tsconfig (0ms)
- request (0ms)
- update_registries (0ms)
- update_import_map (0ms)
- update_cache (0ms)
- did_close (0ms)
- did_change (0ms)
- did_open (0ms)
- did_change_configuration (1ms)
- update_tsconfig (0ms)
- request (0ms)
- update_registries (0ms)
- update_import_map (0ms)
- update_cache (0ms)
- did_close (0ms)
- did_change (0ms)
- did_change (0ms)
- did_open (0ms)
- initialize (120ms)
- update_registries (0ms)
- update_import_map (0ms)
- request (0ms)
- update_tsconfig (118ms)
- request (1ms)
- update_cache (0ms)
Performance
Name | Duration | Count |
---|---|---|
code_action | 8ms | 5 |
code_lens | 2ms | 3 |
completion | 35ms | 4 |
did_change | 0ms | 22 |
did_change_configuration | 3ms | 3 |
did_change_watched_files | 0ms | 1 |
did_close | 0ms | 3 |
did_open | 17ms | 8 |
document_symbol | 1ms | 6 |
folding_range | 1ms | 6 |
get_line_index_sync | 0ms | 35 |
get_navigation_tree | 2ms | 3 |
goto_definition | 1ms | 1 |
hover | 1ms | 1 |
initialize | 120ms | 1 |
op_dispose | 0ms | 10 |
op_exists | 0ms | 8 |
op_get_change_range | 0ms | 14 |
op_get_length | 0ms | 24 |
op_get_text | 0ms | 20 |
op_script_version | 0ms | 124 |
request | 59ms | 46 |
semantic_tokens_full | 293ms | 9 |
update_cache | 0ms | 4 |
update_diagnostics | 251ms | 6 |
update_diagnostics_deps | 77ms | 6 |
update_diagnostics_lint | 74ms | 6 |
update_diagnostics_ts | 251ms | 6 |
update_import_map | 0ms | 4 |
update_registries | 0ms | 4 |
update_tsconfig | 30ms | 4 |
What do you have in main.ts
and why do you have these documents open in your editor?
file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.dom.d.ts
file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.es5.d.ts
file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.scripthost.d.ts
file:///Applications/Visual%20Studio%20Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/lib.webworker.importscripts.d.ts
I don't have those documents open in my editor. main.ts
is:
const x = Deno;
Well somehow the are getting opened. Information you provided indicates those documents are in memory and also the previous information on the debug trace you can see that did_open
of those files is being sent from the client to the server.
How are you starting VSCode. If you don't open a workspace, you can get some strange behaviours. Could you possibly be starting vscode like this?
> code main.ts
Instead of:
> code .
If this occurs, and you have a tsconfig.json
in the same directory that you have main.ts
and that tsconfig.json
includes a lib
section and deno.ns
is not listed in the lib section, and you have "deno.enable"
set globally, it could in theory reproduce the behaviours you are experiencing.
Hmm I suspect they might have been open in a different VSCode window. Either way, I closed all the VSCode windows, restarted it, and this bug still happens even though those documents are no longer open. (And I don't see why they would matter anyway.)
How are you starting VSCode.
Like code ~/d9
(i.e. I open a directory). It isn't a workspace, i.e. there's no .workspace
file. But I do have the directory open; not just one file.
I don't have a tsconfig.json
. main.ts
is literally the only file in the directory.
This is really easy to reproduce for me but it sounds like you are a bit skeptical that it happens - can you reproduce it?
Deno Language Server Status
Workspace Settings
{
"enable": true,
"cache": null,
"config": null,
"importMap": null,
"codeLens": {
"implementations": false,
"references": false,
"referencesAllFunctions": false,
"test": true
},
"internalDebug": true,
"lint": true,
"suggest": {
"completeFunctionCalls": false,
"names": true,
"paths": true,
"autoImports": true,
"imports": {
"autoDiscover": true,
"hosts": {}
}
},
"unstable": true
}
Workspace Details
-
Documents in memory: 1
- file:///Users/timh/d9/main.ts
-
Sources in memory: 0
-
Performance measures: 43
- hover (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- hover (4ms)
- request (4ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_full (1ms)
- request (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- code_lens (6ms)
- get_navigation_tree (4ms)
- request (3ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- folding_range (5ms)
- request (4ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- get_line_index_sync (0ms)
- semantic_tokens_range (97ms)
- request (3ms)
- op_script_version (0ms)
- update_diagnostics (678ms)
- update_diagnostics_ts (678ms)
- request (677ms)
- get_line_index_sync (0ms)
- update_diagnostics_deps (17ms)
- update_diagnostics_lint (18ms)
- op_get_text (0ms)
- op_get_length (0ms)
- op_script_version (0ms)
- did_open (1ms)
- initialize (114ms)
- update_registries (0ms)
- update_import_map (0ms)
- request (0ms)
- update_tsconfig (112ms)
- request (1ms)
- update_cache (0ms)
Performance
Name | Duration | Count |
---|---|---|
code_lens | 6ms | 1 |
did_open | 1ms | 1 |
folding_range | 5ms | 1 |
get_line_index_sync | 0ms | 6 |
get_navigation_tree | 4ms | 1 |
hover | 2ms | 2 |
initialize | 114ms | 1 |
op_get_length | 0ms | 2 |
op_get_text | 0ms | 2 |
op_script_version | 0ms | 7 |
request | 77ms | 9 |
semantic_tokens_full | 1ms | 1 |
semantic_tokens_range | 97ms | 1 |
update_cache | 0ms | 1 |
update_diagnostics | 678ms | 1 |
update_diagnostics_deps | 17ms | 1 |
update_diagnostics_lint | 18ms | 1 |
update_diagnostics_ts | 678ms | 1 |
update_import_map | 0ms | 1 |
update_registries | 0ms | 1 |
update_tsconfig | 112ms | 1 |
This is really easy to reproduce for me but it sounds like you are a bit skeptical that it happens - can you reproduce it?
No. The only way I could reproduce it is the way I mentioned above, there I launched it from the command line giving a specific file (e.g. code main.ts
) and there was a tsconfig.json
file in that path that didn't include the deno.ns
and deno.enable
was set globally. Every other scenario it works as expected.
Hmm interesting. Ok I'll try it on a couple of different machines. Are you using a Mac?
Finally figured it out. I have this in my VSCode settings:
"typescript.tsserver.experimental.enableProjectDiagnostics": true
Without that setting it works (though I'd like to keep that setting!).
That setting specifically tells tsc to report issues across all files not open in the editor, which means that the plugin we use to "mute" diagnostics for Deno enabled projects is bypassed. It might be possible to change the plugin to support that, but it may not be easy to do. Instead of setting it globally, I would set it on a per project basis, and only for projects that are not Deno enabled.
Maybe set it to false when you run the "Initialise Deno" command?
We don't adjust other plugin settings.
It's not actually a plugin - it's built in to VSCode.
Also, why not?
It is a plugin/extension. Just one that us included and enabled by default and can be disabled as well.
Because, it tightly couples the Deno extension to other extensions. Deno does not "own" other extension settings and modifying them is dangerous. Plus, we would have to modify it based on the deno.enable
setting, dynamically, plus it is just bad behaviour changing things others have explicitly set.
The plugin API we use in the language server to mute the diagnostics is an officially supported way to change the behaviour of the builtin tsserver extension.
Hmm, is it at least possible to detect if that option is set and display a warning?
You must agree that not doing anything is not a good solution? This problem was very difficult to track down.
As I stated previously:
It might be possible to change the plugin to support that, but it may not be easy to do.
It is tagged as an enhancement and the issue is open.
In order to fix this, we have to re-engineer how mutating diagnostics occur when enableProjectDiagnostics
is enabled. It is all part of what is occurring via the language server plugin part of the extension (https://github.com/denoland/vscode_deno/tree/main/typescript-deno-plugin). It will require trying to figure out how to identify messages related to deno enabled projects and not are being handled.
It looks like the diagnostics that result from this setting are from a separate TS server, which we have no access to in the plugin. https://github.com/microsoft/vscode/blob/bccfade64adb249f57c8fcf03cba41609f76ce5c/extensions/typescript-language-features/src/tsServer/spawner.ts#L67