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

说明

shagabutdinov ALL

语言无关的源代码标记化和操作的尝试

详细信息

安装次数

  • 总数 2K
  • Win 1K
  • Mac 652
  • Linux 584
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 1 3 1 0 0 0 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
Mac 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 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
Linux 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 0 0 0 0 0 0 0 0 0 0 0

README

源文件
raw.githubusercontent.com

Sublime Statement 插件(测试版)

一个令人惊叹的插件,以语言无关的方式对源代码进行标记化。仅适用于C类语言。它处于测试版,所以某些罕见情况下可能会在检测语句或标记时出错。它还为其他插件提供API来操作标记和语句。

演示

安装

此插件是sublime-enhanced插件集的一部分。您可以安装sublime-enhanced,此插件将自动安装。

如果您想单独安装此包,请检查sublime-enhanced包的“单独安装包”部分。

警告

此插件处于测试版。它可能无法正常工作。此插件仅在源代码中工作,并且仅适用于C类语言。

功能

在此插件中,“标记”这个实体的定义是变量、方法调用或值,而不是操作符、分隔符或标点符号;例如,对于“call1() + call2(call3()) + variable + 100 + true”,如果光标在任何括号之外,则标记是“call1()”、“call2(call3())”、“variable”、“100”和“true”。参数是逗号和括号之间的内容,例如,如果光标位于call1的括号中(但不在call2的括号中),则参数是“call2()”、“var1 + var2”和“true and false”。语句是由“Statement/parser.py”中的魔法组合在一起的一组标记;这里确实有魔法,为此表示歉意,我不是足够聪明来做更好的代码。

  • 通过索引跳转到/选择标记/参数

  • 选择当前标记/参数/语句 - 在您想要替换或复制调用参数时非常有用。按热键多次选择更多父标记。

  • 删除当前标记/参数/语句 - 在您想要清除方法参数时非常有用

  • 跳转到下一个标记/参数 - 对于“在标记后/前添加”用例

  • 交换光标位置至当前标记/参数的开始或结束

  • 交换标记/参数 - 将标记/参数移动到下一个/上一个位置

  • 复制语句 - 创建当前语句的副本

  • 在语句后/前创建行 - 非常方便

使用说明

标记
# before
  |if call1() + call2(subcall()) + call3() # <- cursor at beginning of line

  # after goto third token
  if call1() + call2(subcall()) + |call3() # <- cursor at third token

  # after goto previous token
  if call1() + |call2(subcall()) + call3() # <- cursor at previous token

  # after swap position of cursor
  if call1() + call2(subcall())| + call3() # <- cursor at then end of token

  # after swap token forward
  if call1() + call3() + call2(subcall())| # <- cursor at then end of token

  # after delete token
  if call1() + call3()| # <- cursor at then end of previous token
参数
# before
  root(|100, call(sub()) + var, true) # <- cursor at beginning of c

  # after goto third argument
  root(100, call(sub()) + var, |true) # <- cursor at third argument

  # after goto previous argument
  root(100, |call(sub()) + var, true) # <- cursor at previous argument

  # after swap position of cursor
  root(100, call(sub()) + var|, true) # <- cursor at then end of argument

  # after swap argument forward
  root(100, true, call(sub()) + var|) # <- cursor at then end of argument

  # after delete argument
  root(100, true|) # <- cursor at then end of previous argument

命令

描述 键盘快捷键 命令面板
语句:跳转到第一个标记 alt+ctrl+1 语句:跳转到第一个标记
语句:跳转到第二个标记 alt+ctrl+2 语句:跳转到第二个标记
语句:跳转到第三个标记 alt+ctrl+3 语句:跳转到第三个标记
语句:跳转到第四个标记 alt+ctrl+4 语句:跳转到第四个标记
语句:跳转到第五个标记 alt+ctrl+5 语句:跳转到第五个标记
语句:跳转到第一个参数 alt+ctrl+1 语句:跳转到第一个参数
语句:跳转到第二个参数 alt+ctrl+2 语句:跳转到第二个参数
语句:跳转到第三个参数 alt+ctrl+3 语句:跳转到第三个参数
语句:跳转到第四个参数 alt+ctrl+4 语句:跳转到第四个参数
语句:跳转到第五个参数 alt+ctrl+5 语句:跳转到第五个参数
语句:选择第一个标记 alt+shift+1 语句:选择第一个标记
语句:选择第二个标记 alt+shift+2 语句:选择第二个标记
语句:选择第三个标记 alt+shift+3 语句:选择第三个标记
语句:选择第四个标记 alt+shift+4 语句:选择第四个标记
语句:选择第五个标记 alt+shift+5 语句:选择第五个标记
语句:选择第一个参数 alt+shift+1 语句:选择第一个参数
语句:选择第二个参数 alt+shift+2 语句:选择第二个参数
语句:选择第三个参数 alt+shift+3 语句:选择第三个参数
语句:选择第四个参数 alt+shift+4 语句:选择第四个参数
语句:选择第五个参数 alt+shift+5 语句:选择第五个参数
语句:选择标记 alt+s 语句:选择标记
语句:选择参数 alt+shift+s 语句:选择参数
语句:选择语句 alt+ctrl+s 语句:选择语句
语句:删除标记 alt+d 语句:删除标记
语句:删除参数 alt+shift+d 语句:删除参数
语句:删除语句 alt+ctrl+d 语句:删除语句
语句:跳转到下一个标记 alt+. 语句:跳转到下一个标记
语句:跳转到上一个标记 alt+, 语句:跳转到上一个标记
语句:跳转到下一个参数 alt+shift+. 语句:跳转到下一个参数
语句:跳转到上一个参数 alt+shift+ 语句:跳转到上一个参数
语句:交换标记的开始/结束位置 alt+m 语句:交换标记的开始/结束位置
语句:交换参数的开始/结束位置 alt+shift+m 语句:交换参数的开始/结束位置
语句:向前交换标记 ctrl+alt+. 语句:向前交换标记
语句:向后交换标记 ctrl+alt+, 语句:向后交换标记
语句:向前交换参数 ctrl+alt+shift+. 语句:向前交换参数
语句:向后交换参数 ctrl+alt+shift+ 语句:向后交换参数
语句:复制语句 ctrl+shift+d 语句:复制语句
语句:在语句后添加行 ctrl+' 语句:在语句后添加行
语句:在语句前添加行 ctrl+; 语句:在语句前添加行

API

语句文件下的方法(“from Statement import statement”)

is_arguments(view, point, nesting = None)

检查在指定点是否是传递的参数(由“,”分隔的项);返回布尔值。

get_root_statement(view, point)

返回包含指定点的最顶层语句嵌套的语句([开始,结束])。

get_parent_token(view, cursor, expr = r'[({[]')

返回包含指定点的父标记([开始,结束])。

get_parent_argument(view, cursor, expr = r'[({[]')

返回包含指定点的父参数([开始,结束])。

get_parent_statement(view, cursor, expr = r'[({[]')

返回包含指定点的父语句([开始,结束])。

get_tokens(view, cursor = None, statement = None)

返回指定点的标记;返回[token1, token2, …]列表;其中标记是[start, end]。

get_token(view, cursor, tokens = None)

返回指定点的标记索引和标记;如果没有找到标记返回None;返回:索引,[开始,结束]。

get_arguments(view, cursor, statement = None)

返回指定点的参数;返回[arg1, arg2, …]列表,其中arg是[start, end]列表。

get_argument(view, cursor, arguments = None)

返回指定点的参数索引和参数;如果没有找到参数返回None;返回索引,[开始,结束]。

get_assignments(view, cursor)

获取指定点的赋值信息。返回表示赋值左右部分的两个标记;返回[left, right]列表,其中left和right是[start, end]列表。

get_assignment(view, cursor, assignments = None)

获取指定点的赋值的左侧或右侧部分;返回[start, end]列表。

get_statement(view, cursor)

获取指定点的语句;返回[start, end]列表。

get_token_delete_region(view, point, tokens = None)

在给定点获取要删除的令牌时需要删除的区域;返回 sublime.Region。

依赖项