Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manage special defaults of the virtualWorkspaces property #122836

Closed
18 of 61 tasks
egamma opened this issue May 3, 2021 · 6 comments
Closed
18 of 61 tasks

Manage special defaults of the virtualWorkspaces property #122836

egamma opened this issue May 3, 2021 · 6 comments
Assignees
Labels
plan-item VS Code - planned item for upcoming

Comments

@egamma
Copy link
Member

egamma commented May 3, 2021

Extensions have started to adopt the new Virtual Workspace capability: Guide, Tracking Issue

Until extensions have adopted the new capability, we came up with an internal list of extensions that we think should be disabled in virtual workspaces. The list that is reflected in product's project.json.

The issue is used to keep the list updated. We can remove extensions as a soon as they adopted the virtualWorkspaces property.

  • ms-python.python
  • ms-vscode.cpptools
  • dbaeumer.vscode-eslint
  • esbenp.prettier-vscode
  • msjsdiag.debugger-for-chrome
  • redhat.java
  • eamodio.gitlens
  • HookyQR.beautify
  • ritwickdey.LiveServer
  • VisualStudioExptTeam.vscodeintellicode
  • vscjava.vscode-java-debug
  • octref.vetur
  • ms-azuretools.vscode-docker
  • vscjava.vscode-maven
  • vscjava.vscode-java-test
  • vscjava.vscode-java-pack
  • formulahendry.code-runner
  • felixfbecker.php-intellisense
  • vscjava.vscode-java-dependency
  • redhat.vscode-yaml
  • felixfbecker.php-debug
  • ms-mssql.mssql
  • christian-kohler.path-intellisense
  • eg2.tslint
  • eg2.vscode-npm-script
  • donjayamanne.githistory
  • Zignd.html-css-class-completion
  • christian-kohler.npm-intellisense
  • EditorConfig.EditorConfig
  • austin.code-gnu-global
  • ms-vscode-remote.remote-wsl
  • johnpapa.Angular2
  • ms-vscode.vscode-typescript-tslint-plugin
  • DotJoshJohnson.xml
  • techer.open-in-browser
  • DavidAnson.vscode-markdownlint
  • tht13.python
  • bmewburn.vscode-intelephense-client
  • Angular.ng-template
  • felixfbecker.php-pack
  • dbaeumer.jshint
  • msjsdiag.vscode-react-native
  • Dart-Code.dart-code
  • yzhang.markdown-all-in-one
  • Dart-Code.flutter
  • streetsidesoftware.code-spell-checker
  • rebornix.Ruby
  • ms-vscode.sublime-keybindings
  • batisteo.vscode-django
  • alefragnani.project-manager
  • mitaki28.vscode-clang
  • steoates.autoimport
  • donjayamanne.python-extension-pack
  • shd101wyy.markdown-preview-enhanced
  • mikestead.dotenv
  • GrapeCity.gc-excelviewer
  • pranaygp.vscode-css-peek
  • ikappas.phpcs
  • platformio.platformio-ide
  • jchannon.csharpextensions
  • gruntfuggly.todo-tree
@egamma egamma added the plan-item VS Code - planned item for upcoming label May 3, 2021
@egamma egamma added this to the May 2021 milestone May 3, 2021
@egamma egamma closed this as completed May 3, 2021
@rebornix
Copy link
Member

rebornix commented May 3, 2021

@aeschli from the release note that it seems we generated list by checking if an extension is using fs. Do you have an idea how this will impact Vim. Vim's desktop version uses fs but it can work with a virtual file (textDocument). Asking as the wiki link is not valid yet.

@egamma egamma reopened this May 4, 2021
@egamma
Copy link
Member Author

egamma commented May 4, 2021

@rebornix @aeschli has started to update the guide https://github.com/microsoft/vscode/wiki/Virtual-Workspaces and there is more info available.

Just to share what I've found when I did the initial checking of the Vim extension. I found that it works OK, but I haven't tested all the features of Vim. From reviewing the code the extension already abstracts fs access in src/platform/node/fs.ts and uses vscode.workspace.fs where possible 👍 . However, vscode.workspace.fs is not used everywhere and it would be good investigate the impact of this in a virtual workspace setup and to handle it gracefully. For example, unlink is using fs directly.

@egamma egamma assigned aeschli and unassigned egamma and sandy081 May 10, 2021
@aeschli aeschli changed the title Track the adoption of the virtualWorkspaces property Manage special defaults of the virtualWorkspaces property May 10, 2021
@cyrilletuzi
Copy link

cyrilletuzi commented May 12, 2021

My Angular Schematics extension is doing a lot of files/paths management, and trying to comply with the virtual workspaces guide (PR cyrilletuzi/vscode-angular-schematics#551) revealed many things (being forced to use Node APIs because of missing methods on vscode.Uri, being forced to use fsPath in some place because of an issue with path in some scenarios, etc.). Where should I report these things?

@aeschli
Copy link
Contributor

aeschli commented May 14, 2021

@cyrilletuzi You can find path like utilities in the vscode-uri node module:
See https://www.npmjs.com/package/vscode-uri, section Usage: Util

@cyrilletuzi
Copy link

@aeschli Thanks, vscode-uri solved some of my issues.

  1. Is there a reason some methods (like joinPath()) are directly available in @types/vscode while some others (like dirname() and basename()) require vscode-uri? Now that you explicitly require to not use Node APIs directly, it would make sense to include everything directly in @types/vscode.

Also, there is still some issues and missing features so I'm able to get rid of all Node APIs:

  1. I need path.relative() a lot, and it doesn't exist in vscode-uri. Can it be added? It would work the same (2 Uris as params, and returns a string representing the relative path).

  2. contextUri.path wrongly uppercased on Windows #116298, which was not taken into account properly, should be reopened and fixed (otherwise I'm forced to use .fsPath in some places, as .path is buggy in some scenarios explained in the issue).

  3. vscode.workspace.createFileSystemWatcher() only accepts a fsPath string, and not a Uri as all other VS Code APIs. Do you confirm it's intended and it can't be done with schemes other than file, and thus that extensions require a manual check (if (uri.scheme === 'file'))?

@aeschli aeschli modified the milestones: May 2021, June 2021 May 31, 2021
@aeschli aeschli modified the milestones: June 2021, July 2021 Jun 29, 2021
@aeschli aeschli modified the milestones: July 2021, August 2021 Jul 25, 2021
@aeschli aeschli modified the milestones: August 2021, September 2021 Aug 24, 2021
@aeschli
Copy link
Contributor

aeschli commented Sep 15, 2021

Only one more adoption since July. My guess is that given we provide the default, the listed extensions don't have any pressure to adopt.

I'll close this issue now and will make changes to our default on request.

@aeschli aeschli closed this as completed Sep 16, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Oct 31, 2021
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
plan-item VS Code - planned item for upcoming
Projects
None yet
Development

No branches or pull requests

5 participants