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 个命令。
- 定义一个运行外部命令的任务
- 定义调用任务的多命令然后
extension.commandvariable.file.contentInEditor
- 定义调用多命令的键绑定
添加到.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"
}
可能最容易解释我的用例。我正在寻找用于转录而不是编码的文本编辑器。但我需要的关键功能是能够使用可以调用 COM 对象接口的小“宏”片段扩展文本编辑器。
此时会调用音频播放工具自带的COM接口,该接口具有获取当前时间戳、播放时切换不同时间、切换频道on/off、跳转[=20=等功能],等等
实际例子: 我在 VSCode 中按了一个快捷键 这会触发某种宏 这个宏为我的播放器实例化了一个 COM 对象(我们称之为“myplayer”) 宏调用“myplayer.GetCurrentTimeStamp”,其中 returns 时间戳作为值。 我格式化输出以获取 h:mm:ss am/pm 格式的时间。 时间戳被插入到我的文本文件中。
可能吗?
如果您有将时间戳存储在临时文件中的外部程序,您可以使用扩展名 Command Variable (v1.12) 读取(部分)文件内容并将其插入编辑器.
使用扩展名 multi-command 组合这 2 个命令。
- 定义一个运行外部命令的任务
- 定义调用任务的多命令然后
extension.commandvariable.file.contentInEditor
- 定义调用多命令的键绑定
添加到.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"
}