vscode_deno icon indicating copy to clipboard operation
vscode_deno copied to clipboard

Plugin incompatible with built-in tsserver `enableProjectDiagnostics`

Open Timmmm opened this issue 3 years ago • 22 comments

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

  1. Create a workspace with the files shown in the screenshot below
  2. Install Deno and the Deno VSCode extension.
  3. Open the workspace. It should have no errors.

Screenshots

image

Versions

vscode: 1.56.2 deno: 1.10.3 extension: 3.5.1

Timmmm avatar Jun 07 '21 17:06 Timmmm

I can't reproduce by your example. Maybe we need more info. I suggest,

  1. Turn on "Deno: internal debug" settings
  2. 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)

jeiea avatar Jun 07 '21 18:06 jeiea

The first step is what does Output | Deno Language Server show.

kitsonk avatar Jun 07 '21 20:06 kitsonk

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...

Timmmm avatar Jun 07 '21 21:06 Timmmm

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},

Timmmm avatar Jun 07 '21 21:06 Timmmm

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.

kitsonk avatar Aug 30 '21 22:08 kitsonk

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

Timmmm avatar Sep 08 '21 10:09 Timmmm

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

kitsonk avatar Sep 08 '21 10:09 kitsonk

I don't have those documents open in my editor. main.ts is:

const x = Deno;

Timmmm avatar Sep 08 '21 10:09 Timmmm

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.

kitsonk avatar Sep 08 '21 11:09 kitsonk

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

Timmmm avatar Sep 08 '21 19:09 Timmmm

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.

kitsonk avatar Sep 14 '21 04:09 kitsonk

Hmm interesting. Ok I'll try it on a couple of different machines. Are you using a Mac?

Timmmm avatar Sep 14 '21 06:09 Timmmm

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!).

Timmmm avatar Sep 29 '21 20:09 Timmmm

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.

kitsonk avatar Sep 29 '21 21:09 kitsonk

Maybe set it to false when you run the "Initialise Deno" command?

Timmmm avatar Sep 29 '21 22:09 Timmmm

We don't adjust other plugin settings.

kitsonk avatar Sep 29 '21 22:09 kitsonk

It's not actually a plugin - it's built in to VSCode.

Also, why not?

Timmmm avatar Sep 30 '21 06:09 Timmmm

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.

kitsonk avatar Sep 30 '21 20:09 kitsonk

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.

Timmmm avatar Oct 01 '21 06:10 Timmmm

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.

kitsonk avatar Oct 01 '21 21:10 kitsonk

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.

kitsonk avatar Oct 27 '22 00:10 kitsonk

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

nayeemrmn avatar Sep 15 '23 02:09 nayeemrmn