为了账号安全,请及时绑定邮箱和手机立即绑定

带有蜻蜓的模态命令

带有蜻蜓的模态命令

猛跑小猪 2022-06-07 17:00:51
我正在使用Dragonfly2,我想创建一个语法,例如vim,是模态的。我希望能够使用命令启用和禁用语法。例如,如果我说link,我有一个操作在屏幕上显示带有 2 个字母标签的可能链接列表,因此我希望语法启用仅接受 2 个字母单词的模式。特别是,在说之后link,我不希望语法接受任何正常的命令,比如另一个link.这可能吗?
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

啊哈!我刚刚在别人的语法中发现了这个:


class PythonEnabler(CompoundRule):

    spec = "Enable Python"                  # Spoken command to enable the Python grammar.


    def _process_recognition(self, node, extras):   # Callback when command is spoken.

        pythonBootstrap.disable()

        pythonGrammar.enable()

        print "Python grammar enabled"


class PythonDisabler(CompoundRule):

    spec = "switch language"                  # spoken command to disable the Python grammar.


    def _process_recognition(self, node, extras):   # Callback when command is spoken.

        pythonGrammar.disable()

        pythonBootstrap.enable()

        print "Python grammar disabled"


pythonBootstrap = Grammar("python bootstrap")                

pythonBootstrap.add_rule(PythonEnabler())

pythonBootstrap.load()


pythonGrammar = Grammar("python grammar")

pythonGrammar.add_rule(PythonTestRule())

pythonGrammar.add_rule(PythonCommentsSyntax())

pythonGrammar.add_rule(PythonControlStructures())

pythonGrammar.add_rule(PythonDisabler())

所以基本上,你可以简单地使用some_grammar.disable()or some_grammar.enable!


查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信