公开 VSCode 活动 'when Clause Contexts' 的方法
A method to expose the VSCode active 'when Clause Contexts'
我正在寻找一种公开 VSCode active 'when Clause Contexts' 例如 'explorerResourceIsFolder' 的方法。为了让您更好地理解我的用例,这里有一些正在开发 VSCode 扩展的项目的背景。我的分机将有助于通过语音编程和控制 VSCode。
Caster 是一个基于 Dragonfly 的语音编程工具包。 Dragonfly 是一个语音识别框架。它是一个 Python 包,提供高级对象模型并允许其用户轻松编写脚本、宏和使用语音识别的程序。这些项目背后的目标是让那些限制与键盘或鼠标交互的人能够编程或让开发人员提高生产力。
Castor 和 Dragonfly 当前的一些突出限制都通过模拟击键进行交互。这只是列举几个问题。
- 不同系统配置和 IDE 版本性能 IDE 的可靠性。这引入了变量,例如命令执行延迟。
- Castor 完全不知道 IDE 环境。
- Dragon NaturallySpeaking 对语法有复杂性上限。
达到限制后会出现BadGrammar错误
- 键盘组合有限,并非所有功能都可以通过快捷键调用。
Adom 编辑器中的一些示例
- 在缓冲区中查找": R(Key("c-f"), rdescript="Atom: Find in Buffer")
在 'Find in Buffer' 上下文中只有少数相关命令有用,但 Castor 命令是全局命令,这会降低命令语音识别的准确性并增加语法复杂性。使用 Caster IDE 集成将允许为 IDE 上下文或焦点指定有限的命令集。
- "split into lines": R(Key("cs-p") + Text("Split Into Lines") + Pause(atom_palette_wait) + Key("enter"), rdescript ="Atom: Split Into lines"),
并非所有 IDE 函数都可以通过快捷方式调用或在 castor 中轻松重新创建。我尝试在 Adom 中解决这个问题是利用命令面板。虽然这扩展了我触发命令的能力,但它引入了延迟。禁食会触发错误的命令。太慢会降低生产力。索引延迟基于系统负载、系统规格、活动插件的数量和每个命令的字符数。我们试图通过使用 Pause(atom_palette_wait) 来缓解这种情况,但延迟中的变量太复杂了。 Studio Code 也是如此。
Castor 框架IDE 集成
Castor 将包含 IDE 函数以传递给 IDEs plug-ins/extensions 执行。
例如"Find ":找到R(SendFunction("actions.find"), rdescript="VisualStudioCode: Find")
Castor 会监听 IDEs 宣布的上下文或焦点。
Castor 会根据 IDE 上下文或焦点来存储命令和函数。然后根据 IDE.
宣布的焦点激活包含快捷方式或 IDEs 功能的唯一相关命令
IDEs plug-ins/extensions 框架
侦听并执行来自 Caster
的 IDEs 特定功能
宣布当前上下文或关注施法者
作为长期目标扩展 IDE 的功能(例如,在 Visual Studio 代码中将数字添加到 IntelliSense 列表)用户会说出数字,相应的行会被选中并执行。
Studio 代码扩展包含三个部分。
- 一个 websocket 运行 一个允许与 Castor 双向通信的服务器和客户端。
- 执行 'Command_id' 的函数,例如 'editor.debug.action.toggleBreakpoint' 进行中 - 即将完成
- 一种公开编辑器的方法 'when Clause Contexts' 例如 'explorerResourceIsFolder' - 搜索方法 - 到目前为止通过 API 没有运气 - 搜索源代码以了解实现。
欢迎提出任何建议。如果您认为这值得在 VSCode 存储库中打开 github 票证,请告诉我。
有一个非 public api 用于获取 when 上下文生效。您可以使用 getValue(key: string)。可以从这个问题票的工作中获得:
Lift setContext
from a command to proper API Microsoft/vscode#10471
来源可在此处查看:
通过使用 getValue(key: string)
截至 2017 年 5 月,它仍在进行中。谢谢。美好的一天。
我正在寻找一种公开 VSCode active 'when Clause Contexts' 例如 'explorerResourceIsFolder' 的方法。为了让您更好地理解我的用例,这里有一些正在开发 VSCode 扩展的项目的背景。我的分机将有助于通过语音编程和控制 VSCode。
Caster 是一个基于 Dragonfly 的语音编程工具包。 Dragonfly 是一个语音识别框架。它是一个 Python 包,提供高级对象模型并允许其用户轻松编写脚本、宏和使用语音识别的程序。这些项目背后的目标是让那些限制与键盘或鼠标交互的人能够编程或让开发人员提高生产力。
Castor 和 Dragonfly 当前的一些突出限制都通过模拟击键进行交互。这只是列举几个问题。
- 不同系统配置和 IDE 版本性能 IDE 的可靠性。这引入了变量,例如命令执行延迟。
- Castor 完全不知道 IDE 环境。
- Dragon NaturallySpeaking 对语法有复杂性上限。 达到限制后会出现BadGrammar错误
- 键盘组合有限,并非所有功能都可以通过快捷键调用。
Adom 编辑器中的一些示例
- 在缓冲区中查找": R(Key("c-f"), rdescript="Atom: Find in Buffer") 在 'Find in Buffer' 上下文中只有少数相关命令有用,但 Castor 命令是全局命令,这会降低命令语音识别的准确性并增加语法复杂性。使用 Caster IDE 集成将允许为 IDE 上下文或焦点指定有限的命令集。
- "split into lines": R(Key("cs-p") + Text("Split Into Lines") + Pause(atom_palette_wait) + Key("enter"), rdescript ="Atom: Split Into lines"), 并非所有 IDE 函数都可以通过快捷方式调用或在 castor 中轻松重新创建。我尝试在 Adom 中解决这个问题是利用命令面板。虽然这扩展了我触发命令的能力,但它引入了延迟。禁食会触发错误的命令。太慢会降低生产力。索引延迟基于系统负载、系统规格、活动插件的数量和每个命令的字符数。我们试图通过使用 Pause(atom_palette_wait) 来缓解这种情况,但延迟中的变量太复杂了。 Studio Code 也是如此。
Castor 框架IDE 集成
Castor 将包含 IDE 函数以传递给 IDEs plug-ins/extensions 执行。 例如"Find ":找到R(SendFunction("actions.find"), rdescript="VisualStudioCode: Find")
Castor 会监听 IDEs 宣布的上下文或焦点。
Castor 会根据 IDE 上下文或焦点来存储命令和函数。然后根据 IDE.
宣布的焦点激活包含快捷方式或 IDEs 功能的唯一相关命令IDEs plug-ins/extensions 框架
侦听并执行来自 Caster
的 IDEs 特定功能
宣布当前上下文或关注施法者
作为长期目标扩展 IDE 的功能(例如,在 Visual Studio 代码中将数字添加到 IntelliSense 列表)用户会说出数字,相应的行会被选中并执行。
Studio 代码扩展包含三个部分。
- 一个 websocket 运行 一个允许与 Castor 双向通信的服务器和客户端。
- 执行 'Command_id' 的函数,例如 'editor.debug.action.toggleBreakpoint' 进行中 - 即将完成
- 一种公开编辑器的方法 'when Clause Contexts' 例如 'explorerResourceIsFolder' - 搜索方法 - 到目前为止通过 API 没有运气 - 搜索源代码以了解实现。
欢迎提出任何建议。如果您认为这值得在 VSCode 存储库中打开 github 票证,请告诉我。
有一个非 public api 用于获取 when 上下文生效。您可以使用 getValue(key: string)。可以从这个问题票的工作中获得:
Lift setContext
from a command to proper API Microsoft/vscode#10471
来源可在此处查看:
通过使用 getValue(key: string)
截至 2017 年 5 月,它仍在进行中。谢谢。美好的一天。