VSCode 能否扩展为调用 COM 对象公开的函数的功能

Can VSCode be extended with functionality to call functions exposed by a COM object

可能最容易解释我的用例。我正在寻找用于转录而不是编码的文本编辑器。但我需要的关键功能是能够使用可以调用 COM 对象接口的小“宏”片段扩展文本编辑器。

此时会调用音频播放工具自带的COM接口,该接口具有获取当前时间戳、播放时切换不同时间、切换频道on/off、跳转[=20=等功能],等等

实际例子: 我在 VSCode 中按了一个快捷键 这会触发某种宏 这个宏为我的播放器实例化了一个 COM 对象(我们称之为“myplayer”) 宏调用“myplayer.GetCurrentTimeStamp”,其中 returns 时间戳作为值。 我格式化输出以获取 h:mm:ss am/pm 格式的时间。 时间戳被插入到我的文本文件中。

可能吗?

如果您有将时间戳存储在临时文件中的外部程序,您可以使用扩展名 Command Variable (v1.12) 读取(部分)文件内容并将其插入编辑器.

使用扩展名 multi-command 组合这 2 个命令。

  1. 定义一个运行外部命令的任务
  2. 定义调用任务的多命令然后extension.commandvariable.file.contentInEditor
  3. 定义调用多命令的键绑定

添加到.vscode/tasks.json

    {
      "label": "get Timestamp",
      "type": "shell",
      "command": "echo timestamp=2021-04-01 12:34 >/tmp/timequery.txt",
      "problemMatcher": []
    }

添加到.vscode/settings.json

  "multiCommand.commands": [
    {
      "command": "multiCommand.insertTimestamp",
      "interval": 500,
      "sequence": [
        { "command": "workbench.action.tasks.runTask",
          "args": "get Timestamp"
        },
        { "command": "extension.commandvariable.file.contentInEditor",
          "args": {
            "fileName": "/tmp/timequery.txt",
            "key": "timestamp",
            "default": "Query failed"
          }
        }
      ]
    }
  ]

添加到keybindings.json

{
    "key": "ctrl+F1", // or any other key combo
    "command": "extension.multiCommand.execute",
    "args": { "command": "multiCommand.insertTimestamp" },
    "when": "editorTextFocus"
}