如何在Visual Studio代码extension.js中获取当前打开的文件的项目文件夹路径。

时间:2019-09-05 18:31:34

标签: visual-studio-code vscode-extensions

我正在尝试在Visual Studio代码扩展中获取当前打开的文件的项目文件夹路径,但不适用于“多根工作区”。

现在我正在获取路径值为空。

当前,我打开了project-ws文件夹文件app.component.html,然后在文件选项卡上按ctrl + shift + p,然后将打开框。如果我从扩展名框中单击“获取项目文件夹路径”,则路径值应类似于C:\ xampp \ htdocs \ projects \ project-ws。

如果我打开了project-bh文件夹中的任何文件,则在文件选项卡上按ctrl + shift + p,然后将打开该框。如果我从扩展名框中单击“获取项目文件夹路径”,则路径值应类似于C:\ xampp \ htdocs \ projects \ project-bh。

我从代码中找不到错误。任何人都可以解决此问题吗?

检查此网址,然后您就可以轻松地理解vs代码扩展名:https://github.com/jasonnutter/vscode-search-node-modules 我在扩展中使用了相同的概念。

enter image description here

按Ctrl + Shift + p =查看扩展名,然后单击“获取项目文件夹路径”,然后会出现路径消息。

enter image description here

C:/Users/ADMIN/.vscode/extensions/getprojectpath/extension.js:

  const vscode = require('vscode');
  const path = require('path');
  exports.activate = context => {

  const searchMyModules = vscode.commands.registerCommand('extension.search', () => {

  const preferences = vscode.workspace.getConfiguration('files.exclude');

  const getCurrentlyopenedtabprojectfolderpath = async() => {

  const editor = vscode.window.activeTextEditor;
  if (!editor || !vscode.workspace.workspaceFolders || vscode.workspace.workspaceFolders.length < 2) {
    return null;
  }
  let path;
  const resource = editor.document.uri;
  if (resource.scheme === 'file') {
    const folder = vscode.workspace.getWorkspaceFolder(resource);
    if (!folder) {
      path = `$(alert) <outside workspace> → ${basename(resource.fsPath)}`;
    } else {
      path = `$(file-submodule) ${basename(folder.uri.fsPath)} (${folder.index + 1} of ${vscode.workspace.workspaceFolders.length}) → $(file-code) ${basename(resource.fsPath)}`;

    }
  }
  return {
    path
  };
}

 getCurrentlyopenedprojectpath().then(result => {
  vscode.window.showInformationMessage(result.path)
 })
 })
 }

 exports.deactivate = () => {};

0 个答案:

没有答案