Microsoft/vscode

Relative path does not in Typescript/Javascript cells in vscode Notebooks.

Open

#196.172 geöffnet am 21. Okt. 2023

Auf GitHub ansehen
 (0 Kommentare) (2 Reaktionen) (1 zugewiesene Person)TypeScript (10.221 Forks)batch import
bughelp wantednotebook

Repository-Metriken

Stars
 (74.848 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 11h 43m) (1.000 gemergte PRs in 30 T)

Beschreibung

Does this issue occur when all extensions are disabled?: Yes/No

  • VS Code Version: 1.83.1
  • OS Version: windows 10

Steps to Reproduce:

  1. install https://marketplace.visualstudio.com/items?itemName=donjayamanne.typescript-notebook or https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter-renderers
  2. open a workspace
  3. create typescript file 'a.ts' with some exports in the workspace, for example export const a = 1
  4. create a notebook with one of the extensions and save it next to the typescript file.
  5. add a cell with language type 'typescript' or 'javascript'.
  6. import the exported symbol from step 3, for example: import {a} from './a.ts'
  7. right click on file name and click go to definition

Expected:

  1. The symbol imported normally.
  2. go to definition lead you to the file next to it

Actually:

  1. The import has a red underline with TS(2307) Cannot find module
  2. go to definition lead you to a error page that has a nonsense path like this 圖片

Note:

It seems this is caused by the way typescript language extension handles virtual paths. The typescript language extension put all virtual path under ^/{protocol}/{authority}/{file-path}#{cell-id} Which end up being treated as {workspace root}/^/{protocol}/{authority}/{file-path}#{cell-id} by the language server And thus broke all relative paths.

I made a experiment about appending the cell id and authority to file name instead, and it seems fix this issue.

https://github.com/mmis1000/vscode/commit/bb9910b06271537ef71427f21d75a955a7594b84

Related issue: https://github.com/DonJayamanne/typescript-notebook/issues/79

Contributor Guide