如何在 Textmate 中格式化代码

如何在 Textmate 中格式化代码

我喜欢 Textmate,但无论我使用哪种语言,在格式化代码时它都让我抓狂。有什么方法可以格式化代码吗?快捷方式、捆绑包或任何可以提供帮助的东西(例如 netbeans 中的 ctrl+shift+F)?

答案1

不。

有一个重新格式化段落指挥下的文本菜单但它对于编程来说基本上没用。

一些特定于语言的包(例如JavaScript 工具) 提供重新格式化选项。

答案2

Textmate 2 对每种语言都具有缩进智能(尽可能多:见下文)。

您可以使用 重新缩进一个块,⌥⌘-[ 您可以使用 重新换行,^-Q 您可以使用 对齐符号上的代码^⌥⌘-9

设置中的缩进规则示例(普通用户无需编辑这些规则)

{   increaseIndentPattern = '(?x)
    (   \{ (?! .* \} ) .*
    |   array\(
    |   (\[)
    |   ((else)?if|else|for(each)?|while|switch) .* :
    )   \s* (/[/*] .*)? $';
decreaseIndentPattern = '(?x)
    ^ (.* \*/)? \s*
    (
        (\})         |
        (\)[;,])     |
        (\][;,])     |
        (else:)      |
        ((end(if|for(each)?|while|switch));)
    )
';
indentNextLinePattern = '(?x)^(?! .*? (<\?|\?>) )
    ( . ( (?![/*]) | /(/.*$|\*.*?\*/ \s*) ) )*
    [^\s;:{}(,] \s*
    ( /(/.*$|\*.*?\*/ \s*) )*
    $
';
unIndentedLinePattern = '^\s*$';
}

答案3

今天,我在 Bundles > HTML 下找到了“Tidy”选项,它工作得很好。(Ctrl-Shift-H)。不过,我不能说它对其他语言的效果如何。

答案4

如果您想要做的只是重新缩进:

  1. 选择代码
  2. 文本 > 缩进行

它所做的只是使每个嵌套级别比其父级缩进更多。它不会删除空行或创建任何回车符。

我个人很喜欢这个,因为它似乎与语言无关。已使用 HTML、ERB、CSS、SCSS 进行测试。

相关内容