ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

AutoSplit

Sublime 的 Autosplit 插件

详细信息

  • 0.1.2
  • github.com
  • github.com
  • 4 年前
  • 2 小时前
  • 4 年前

安装

  • 总计 451
  • Win 256
  • Mac 113
  • Linux 82
8 月 6 日 8 月 5 日 8 月 4 日 8 月 3 日 8 月 2 日 8 月 1 日 7 月 31 日 7 月 30 日 7 月 29 日 7 月 28 日 7 月 27 日 7 月 26 日 7 月 25 日 7 月 24 日 7 月 23 日 7 月 22 日 7 月 21 日 7 月 20 日 7 月 19 日 7 月 18 日 7 月 17 日 7 月 16 日 7 月 15 日 7 月 14 日 7 月 13 日 7 月 12 日 7 月 11 日 7 月 10 日 7 月 9 日 7 月 8 日 7 月 7 日 7 月 6 日 7 月 5 日 7 月 4 日 7 月 3 日 7 月 2 日 7 月 1 日 6 月 30 日 6 月 29 日 6 月 28 日 6 月 27 日 6 月 26 日 6 月 25 日 6 月 24 日 6 月 23 日
Windows 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Mac 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

readme

源代码
raw.githubusercontent.com

AutoSplit

AutoSplit 是一个 Sublime Text 3 插件,用于自动在多行中拆分参数并将它们合并回一行。目前仅适用于 Python。其他语言的支持在开发中。

AutoSplit 假设函数或方法调用可以是以下三种形式之一

  • 内联:所有参数都放在同一行上,与开启括号 ( 在同一行

    view_id = sublime_api.window_find_open_file(self.window_id, fname)
    
  • 下一行:所有参数都在下一行,关闭括号 ) 在第三行

    view_id = sublime_api.window_find_open_file(
        self.window_id, fname
    )
    
  • 多行:每个参数都占一行新行

    view_id = sublime_api.window_find_open_file(
        self.window_id,
        fname
    )
    

拆分/合并命令

AutoSplit 提供在(半)自动切换参数列表形式的功能。所有命令都作用于光标所在的内部 arglist 上。

  • 拆分(建议快捷键:Alt+]

    将参数从第一行推到下一行(开启括号 ( 的所在行)。如果已经在下一行上,则将它们拆分到多行(每个参数占一行)。

  • 合并(建议快捷键:Alt+[)

    尝试将所有参数合并到下一行。如果所有参数已经在下一行,则尝试将它们提升到第一行。

split-join animation

如果太长则拆分

如果你已配置标尺,AutoSplit 将自动拆分长参数列表(超过标尺的)。

typing animation

合并指示

一旦删除足够的 arglist 内容,使其可以再次合并,就会出现一个(可点击的)箭头指示符。箭头是通过 Sublime phantom 实现的,所以它不是你文本的一部分。箭头只是说明“可以合并当前的 arglist”。

join arrow up join arrow left

向上箭头表示“可以合并到第一行”,向左箭头表示“可以合并到下一行”。

您可以通过名为 show_arrows 的设置来开启/关闭箭头指示。

多行尾部

最后的嵌套参数列表实际上可以跨越多行,而其初始部分仍然与父函数的开括号在同一行

def new_file(self, flags=0, syntax=""):
        """ flags must be either 0 or TRANSIENT """
        return View(sublime_api.window_new_file(self.window_id, flags, get_syntax(
            nested_call_1(arg1),
            nested_call_2(arg2),
            nested_call_3(arg3)
        )))

我们称这样的参数列表为其父函数的“多行尾部”。在这个例子中,get_syntaxwindow_new_file调用中的一个多行尾部。AutoSplit对多行尾部有特殊支持

  • 正确分割带有多行尾部的参数列表会正确调整尾部内的缩进

    def new_file(self, flags=0, syntax=""):
            """ flags must be either 0 or TRANSIENT """
            return View(
                sublime_api.window_new_file(
                    self.window_id, flags, get_syntax(
                        nested_call_1(arg1),
                        nested_call_2(arg2),
                        nested_call_3(arg3)
                    )
                )
            )
    

    相应地,合并带有多行尾部的参数列表会将尾部恢复缩进

  • 如果只能合并一个带有多行尾部的参数列表,则使用虚线和左箭头表示

    typing animation

    在这个例子中,不可能将参数列表完全合并到一行。但可以部分合并,即不合并多行尾部。这由虚线箭头表示。

快捷键

最好使用快捷键使用两个命令autosplit_splitautosplit_join,如Alt+[Alt+]或您喜欢的任何其他按键。有关建议的快捷键,请选择首选项 -> AutoSplit -> 示例快捷键菜单。