【问题标题】:Add a menu context to search specific strings.(How to use workbench.action.findInFiles?)添加菜单上下文以搜索特定字符串。(如何使用 workbench.action.findInFiles?)
【发布时间】:2023-02-10 11:38:06
【问题描述】:

我想添加一个菜单上下文选项来搜索特定的查询字符串。
此查询字符串由常量字符串(使用正则表达式)和选定字符串连接而成。

例如 :

字符串 = "HANDLE*"
当我在编辑器中选择“事件”并右键单击菜单并单击选项时。
它将跳转到搜索视图并自动执行搜索“HANDLE*EVENT”。

根据#99575。 这是我在 package.json 中的代码:

"contributes": {
    "commands": [
      {
        "command": "testext.hello",
        "title": "HELLO"
      }
    ],
    "menus": {
      "editor/context": [
        {
          "when": "editorTextFocus",
          "command": "workbench.action.findInFiles",
          "args": {
            "query": "HANDLE*${selectedText}",
            "regexp": true
          },
          "group": "navigation"
        }
      ]
    }

该选项已成功添加到菜单,单击它将跳转到搜索视图。
但是查询字符串没有传递给搜索视图。

我想知道如何正确传递查询字符串?谢谢

【问题讨论】:

  • 你不能在package.json中指定参数,在你的扩展中创建一个命令然后调用workbench.action.findInFiles
  • 我应该在 extension.ts 中使用 vscode.commands.executeCommand('search.action.openEditor') 吗?如何在这里传递“args”?
  • 你在问题的什么地方提到search.action.openEditor,当你想在搜索栏中填写几个字段时,为什么要打开搜索编辑器
  • 哦,对不起,我只想在文件中搜索特定的字符串。 search.action.openEditor 可能是替代方案。
  • 我看到了问题,#99575 的用例仅适用于keybindings.json。现在我可以通过添加一个快捷键来使用“args”进行搜索。

标签: visual-studio-code vscode-extensions


【解决方案1】:

keybindings.json中使用内置命令:
它可以添加一个快捷键来搜索带参数的字符串。

    {
        "key": "alt+f",
        "command": "search.action.openEditor",
        "args": {
            "query":"${selectedText}",
            "isRegexp": true,
            "matchWholeWord":true
        }
    }

如果想从菜单触发搜索命令,应该遵循扩展开发流程。
openEditorextension.ts中的参数调用executeCommand

vscode.commands.executeCommand('search.action.openEditor',{
            query:"${selectedText}",
            matchWholeWord:true
        });

附言workbench.action.findInFiles ${selectedText} 有问题。
我已经举报了。 #173653

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-07
    • 1970-01-01
    相关资源
    最近更新 更多