如何在 Sublime Text 3 中对齐正则表达式之间的表达式?

How to align expressions between alignment regex in Sublime Text 3?

我在 Sublime Text 3 中有以下两行:

Rectangle(Maxwell, "MagnetsWEstart" , "r_ta - h_pm",  42,"NdFe35", True, "WE")
Rectangle(Maxwell, "MagnetsWEend", "r_ta", 1984.42, "NdFe35",False, "WE")

而且我想将所有逗号和前面的文本向右对齐:

Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm",      42, "NdFe35",  True, "WE")
Rectangle(Maxwell,   "MagnetsWEend",        "r_ta", 1984.42, "NdFe35", False, "WE")

我下载了 Align Tab 包并创建了键绑定

{ "keys": ["ctrl+shift+a"], "command": "align_tab", "args" : {"user_input" : ","} }

结果已经很接近我想要的了:

Rectangle(Maxwell , "MagnetsWEstart" , "r_ta - h_pm" , 42      , "NdFe35" , True  , "WE")
Rectangle(Maxwell , "MagnetsWEend"   , "r_ta"        , 1984.42 , "NdFe35" , False , "WE")

但是我怎样才能使逗号之间的表达式向右对齐,并使逗号前添加的 space 变为红色?这甚至可能吗?

用Align Tab对齐后,匹配

[(,] *\K(.+?)( +)(?=,)

替换为

我找到了另一个解决方案。事实证明,对齐选项卡有一个内置选项,您可以将其添加到正则表达式中。只需按正则表达式对齐并键入 ,/r。这意味着右对齐

启发的以下步骤最终导致了预期的结果:

1) 安装 reg_replace and Align tab

2) 程序包:Reg_Replace -> 设置 -> 用户:

{
    "replacements": {
        "commaRightRegex": {
            "find": "(\s,)",
            "replace": ",",
            "greedy": true,
            "case": false
        }
    },
    "selection_only": true,
}

3) 工具 -> 新插件 -> 包含 run_multiple.py

4) 键绑定 -> 用户 -> 添加:

{ "keys": ["ctrl+shift+a"],
    "command": "run_multiple_commands",
    "args": {
        "commands": [
            {"command": "align_tab", "args" : {"user_input" : ",/r"}},
            {"command": "reg_replace", "args": {"replacements": ["commaRightRegex"]}}
        ]
    }
}

这最终将通过一个键盘快捷键启用所需的输出:

Rectangle(Maxwell, "MagnetsWEstart", "r_ta - h_pm",      42, "NdFe35",  True, "WE")
Rectangle(Maxwell,   "MagnetsWEend",        "r_ta", 1984.42, "NdFe35", False, "WE")