Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 一种公开VSCode活动';when子句上下文';_Visual Studio Code_Vscode Extensions - Fatal编程技术网

Visual studio code 一种公开VSCode活动';when子句上下文';

Visual studio code 一种公开VSCode活动';when子句上下文';,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在搜索一种方法来公开VSCode活动的“when子句上下文”,例如“explorerResourcesFolder”。为了让您更好地理解我的用例,下面是正在开发VSCode扩展的项目的一些背景。我的扩展将有助于编程和控制语音VSCode Caster是一个基于蜻蜓的语音编程工具包。Dragonfly是一个语音识别框架。它是一个Python包,提供了高级对象模型,允许用户轻松编写使用语音识别的脚本、宏和程序。这些项目背后的目标是使那些限制与键盘或鼠标交互的人能够编程或为开发人员提高生产力 Ca

我正在搜索一种方法来公开VSCode活动的“when子句上下文”,例如“explorerResourcesFolder”。为了让您更好地理解我的用例,下面是正在开发VSCode扩展的项目的一些背景。我的扩展将有助于编程和控制语音VSCode

Caster是一个基于蜻蜓的语音编程工具包。Dragonfly是一个语音识别框架。它是一个Python包,提供了高级对象模型,允许用户轻松编写使用语音识别的脚本、宏和程序。这些项目背后的目标是使那些限制与键盘或鼠标交互的人能够编程或为开发人员提高生产力

Castor和Dragonfly当前的一些突出限制都是通过模拟击键进行交互的。这只是列举几个问题

  • 不同系统配置和IDE版本的IDE性能可靠性。这将引入诸如命令执行延迟之类的变量
  • Castor完全不知道IDE环境
  • 龙的自然峰值在语法上有一个复杂度上限。 达到限制后,将发生错误语法错误
  • 键盘组合有限,快捷键不能调用所有功能
通过Adom编辑器的一些示例

  • 在缓冲区中查找“:R(键(“c-f”),rdescript=“原子:在缓冲区中查找”) 在“在缓冲区中查找”上下文中,只有少数相关命令有用,但Castor命令是全局的,这会降低命令语音识别的准确性并增加语法复杂性。使用Caster IDE集成将允许为IDE上下文或焦点指定有限的命令集
  • “拆分为行”:R(键(“cs-p”)+文本(“拆分为行”)+暂停(原子调色板等待)+键(“回车”),rdescript=“原子:拆分为行”), 并非所有IDE函数都可以通过快捷方式调用,或者可以在castor中轻松重新创建。我在Adom中解决这一问题的尝试是利用命令调色板。虽然这扩展了我触发命令的能力,但却引入了延迟。要加快错误的命令将被触发。太慢会降低生产率。索引延迟基于在系统负载、系统规格、活动插件的数量和每个命令的字符数上。我们试图通过使用暂停(atom_palette_wait)来缓解这一问题,但延迟中的变量太复杂。Studio代码也是如此
  • Castor框架IDE集成

    • Castor将包含传递给IDE插件/扩展以执行的IDE函数。 例如“Find”:Find R(SendFunction(“actions.Find”),rdescript=“VisualStudioCode:Find”)

    • Castor将倾听IDE发布的上下文或焦点

    • Castor将根据IDE上下文或焦点存储命令和函数,然后根据IDE宣布的焦点激活包含快捷方式或IDE函数的唯一相关命令

      IDEs插件/扩展框架

    • 侦听并执行Caster提供的IDE特定功能

    • 向施法者宣布当前上下文或焦点

    • 作为扩展IDE功能的长期目标(例如,在Visual Studio代码中将数字添加到IntelliSense列表中),用户将说出数字,并选择并执行相应的行


    Studio代码扩展将包含三个部分

  • 运行服务器和客户端的websocket,允许与Castor进行双向通信
  • 正在执行“Command\u id”的函数,例如“editor.debug.action.toggleBreakpoint”,即将完成
  • 一种公开编辑器“when子句上下文”的方法,例如“explorerResourcesFolder”-搜索方法-到目前为止通过API没有运气-搜索源代码以了解实现

  • 欢迎提供任何建议。如果您认为值得在VSCode存储库上打开github票证,请告诉我。

    有一个非公共api用于获取有效的when上下文。您可以使用getValue(key:string)。此问题票证可从以下工作中获得:

    可在此处查看来源:

    通过使用getValue(键:string)

    截至2017年5月,仍在进行中。谢谢。祝您愉快