如何设置Sublime Text 3鼠标事件以触发自定义行为和默认行为?

骗局

我想重写Sublime Text 3中的双击以在且仅当用户在特定视图中时运行我的插件代码。否则,双击应能正常运行(突出显示单词和文件中的其他实例)。但是,我不希望在我的自定义视图中运行正常行为。

可以在https://www.sublimetext.com/forum/viewtopic.php?f=6&t=8823中找到在Sublime Text 2(和Python 2)中实现此目的的适当代码,但我无法将其重构为正常工作在Sublime Text 3(和Python 3)中。

Sublime Text 2的工作代码(摘自上述链接)为:

class MySpecialDoubleclickCommand(sublime_plugin.TextCommand):
    def run_(self, args):
        if self.view.name() == "mySpecialBuffer":
            self.doMyStuff()
        else:
            system_command = args["command"] if "command" in args else None
            if system_command:
                system_args = dict({"event": args["event"]}.items() + args["args"].items())
                self.view.run_command(system_command, system_args)

为了使其能够在Python 3中工作,我将字典处理代码重构为(否则代码是相同的):

system_args = dict({"event" : args["event"].items() | args["args"].items()})

但是,当我调用该run_command(system_command, system_args)方法时,它返回以下错误消息:

File "C:\Program Files\Sublime Text 3\sublime.py", line 607, in run_command
sublime_api.view_run_command(self.view_id, cmd, args)
TypeError: Value required

由于Sublime Text 3的API文档几乎不存在,因此我试图找出system_args字典中是否存在问题,或者仅以其他方式更改了API?

宗法制度

问题是古老的,但迟到总比抱歉好,今天跌跌撞撞地走了

ValueError 我认为是由 sublime.decode_value(string)

此方法将JSON字符串解码为一个对象,并且我认为用于run_command解析args以便从击键或内部调用运行命令。

这些.sublime-keymap文件包含一个JSON数组,该数组包含用于指定键绑定的JSON对象。JSON对象必须包含keyscommand键,args如果命令需要参数,则还可能包含键。

因此,如果arg值不是有效的JSON对象,您将获得 ValueError

解决方法-传递字符串或数字

view.run_command('name', {'string_arg': 'string', 'num_arg': 1})

class NameCommand(sublime_plugin.TextCommand):

    def run(self, edit, string_arg, num_arg):
        pass

或者将您的对象作为JSON字符串传递给命令转储并就地还原

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为Sublime Text 3设置Ctags

来自分类Dev

如何为React设置Sublime Text 3?

来自分类Dev

如何设置 Sublime Text 3 的默认缩进设置?

来自分类Dev

如何在 sublime text 3 上设置快捷方式?

来自分类Dev

如何在Sublime Text 3中定义自定义关键字自动缩进行为?

来自分类Dev

Sublime Text 3:如何在 sublime 设置中配置 rubocop.yml 路径?

来自分类Dev

如何设置快捷方式在Sublime Text 3上打开特定于语法的设置文件?

来自分类Dev

如何在Sublime Text 3中为语法设置默认文件扩展名?

来自分类Dev

如何将Sublime Text 3设置为默认文本编辑器

来自分类Dev

无法设置Sublime Text 3和SFTP

来自分类Dev

如何在Ubuntu 14.10上将WinSCP默认编辑器设置为Sublime Text?

来自分类Dev

如何将Sublime Text设置为默认首选项?

来自分类Dev

如何设置用于显示和隐藏Sublime Text行号的键绑定?

来自分类Dev

如何在Sublime Text 3上设置HTML自动缩进格式?

来自分类Dev

如何在Sublime Text 3中为ruby设置do-end块的突出显示?

来自分类Dev

如何在Sublime Text 3上设置HTML自动缩进格式?

来自分类Dev

如何在终端中将符号链接快捷方式设置为Sublime Text 3?

来自分类Dev

无论如何要在 Sublime Text 3 中设置文件夹的单个颜色

来自分类Dev

如何设置 Sublime Text 3 以便我只能搜索项目中的文件夹和文件?

来自分类Dev

如何编辑Sublime Text构建设置?

来自分类Dev

如何从Polymer Dart触发自定义事件?

来自分类Dev

如何在角度触发自定义事件

来自分类Dev

jQuery nestedSortable:如何触发自定义事件?

来自分类Dev

如何使Sublime Text 3默认模板

来自分类Dev

在Sublime Text 3中设置缩进/非缩进的自定义热键

来自分类Dev

如何在Sublime Text 3中为特定语法设置保存文件的默认文件扩展名

来自分类Dev

更改Sublime Text 3中的默认设置

来自分类Dev

Sublime Text 2和3的python / django设置,代码完成

来自分类Dev

如何在Sublime Text 3中设置文件选项卡(即tabset_control)的最大宽度?

Related 相关文章

  1. 1

    如何为Sublime Text 3设置Ctags

  2. 2

    如何为React设置Sublime Text 3?

  3. 3

    如何设置 Sublime Text 3 的默认缩进设置?

  4. 4

    如何在 sublime text 3 上设置快捷方式?

  5. 5

    如何在Sublime Text 3中定义自定义关键字自动缩进行为?

  6. 6

    Sublime Text 3:如何在 sublime 设置中配置 rubocop.yml 路径?

  7. 7

    如何设置快捷方式在Sublime Text 3上打开特定于语法的设置文件?

  8. 8

    如何在Sublime Text 3中为语法设置默认文件扩展名?

  9. 9

    如何将Sublime Text 3设置为默认文本编辑器

  10. 10

    无法设置Sublime Text 3和SFTP

  11. 11

    如何在Ubuntu 14.10上将WinSCP默认编辑器设置为Sublime Text?

  12. 12

    如何将Sublime Text设置为默认首选项?

  13. 13

    如何设置用于显示和隐藏Sublime Text行号的键绑定?

  14. 14

    如何在Sublime Text 3上设置HTML自动缩进格式?

  15. 15

    如何在Sublime Text 3中为ruby设置do-end块的突出显示?

  16. 16

    如何在Sublime Text 3上设置HTML自动缩进格式?

  17. 17

    如何在终端中将符号链接快捷方式设置为Sublime Text 3?

  18. 18

    无论如何要在 Sublime Text 3 中设置文件夹的单个颜色

  19. 19

    如何设置 Sublime Text 3 以便我只能搜索项目中的文件夹和文件?

  20. 20

    如何编辑Sublime Text构建设置?

  21. 21

    如何从Polymer Dart触发自定义事件?

  22. 22

    如何在角度触发自定义事件

  23. 23

    jQuery nestedSortable:如何触发自定义事件?

  24. 24

    如何使Sublime Text 3默认模板

  25. 25

    在Sublime Text 3中设置缩进/非缩进的自定义热键

  26. 26

    如何在Sublime Text 3中为特定语法设置保存文件的默认文件扩展名

  27. 27

    更改Sublime Text 3中的默认设置

  28. 28

    Sublime Text 2和3的python / django设置,代码完成

  29. 29

    如何在Sublime Text 3中设置文件选项卡(即tabset_control)的最大宽度?

热门标签

归档