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

AnySwap

wolray ST3

未提供描述

详情

  • 0.1.1
  • github.​com
  • github.​com
  • 5年前
  • 2小时前
  • 5年前

安装数量

  • 总数 265
  • Win 196
  • Mac 45
  • Linux 24
Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23
Windows 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 1 0 0 0 1 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 0 0 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
Linux 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

README

源代码
raw.​githubusercontent.​com

Any Swap

Sublime Text 3的一个插件,帮助用户交换当前光标处的参数、行和表达式。

行为类似于IntelliJ IDE中的Move-Element-Left/Right,但更智能。它基于一个通用的抽象语法树分析器,允许用户递归地交换复杂的表达式,同时保持正确的操作符优先级。

使用方法

首先,通过Package Control(尚未发布)安装包AnySwap,或者将此仓库克隆到您的Sublime Text 3/Packages/文件夹中。

将命令any_swap与参数forward等于truefalse绑定到您喜欢的键。默认情况下,命令设置为alt+[alt+]

{ "keys": ["alt+["], "command": "any_swap", "args": {"forward": false} },
{ "keys": ["alt+]"], "command": "any_swap", "args": {"forward": true} },

将光标(|)置于单词/括号的开始/结束处,然后触发命令。

功能

参数

func(a|, b)         => func(b, a|)         => func(|a, b)
func(int a|, int b) => func(int b, int a|) => func(|int a, int b)

a|, b   =>  b, a|   =>  c, d
c, d        c, d        b, a|

数学表达式

a| * b + c   => b * a| + c   => c + b * a|
(a| + b) * c => (b + a|) * c => c * (b + a)|

带有函数的表达式

func(a| + b, c) * d => func(b + a|, c) * d  => func(c, b + a|) * d   => d * func(c, b + a)|

嵌套函数的表达式

func(a().b(c| + d), f)  => func(a().b(d + c|), f)   => func(f, a().b(d + c)|)

逻辑表达式

a| and b or c   => b and a| or c    => c or b and a|
if a| and b     => if b and a|

数组表达式

a[0|][1]        => a[1][0|]
a[b[c| + 1]][0] => a[b[1 + c|]][0] => a[0][b[1 + c]|]

语句

a = 1|; b = 2;     => b = 2; a = 1;|
return a|, b     => return b, a|

跨行表达式

func(a|, => func(b,
    b)          a|)