Microsoft/vscode

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

Open

#196.172 aperta il 21 ott 2023

Vedi su GitHub
 (0 commenti) (2 reazioni) (1 assegnatario)TypeScript (10.221 fork)batch import
bughelp wantednotebook

Metriche repository

Star
 (74.848 star)
Metriche merge PR
 (Merge medio 11h 43m) (1000 PR mergiate in 30 g)

Descrizione

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

Guida contributor