更新 (5/2016):TextMate 获得了缩进指南!从版本 2.0-beta.9.2 View->Show Indent Guides 开始。它们是一项正在进行的工作,但它们是可用的。
更新:如果您能够完成这项工作并愿意建立自己的文本伙伴via the official instructions,那么您可能会建造一座裂缝(甚至可能为@987654322 做出贡献) @。没有构建,它还没有准备好被引入 TextMate2,因为它缺少禁用指南的设置。
这是一个正在开发中的功能,完成后它将比我将要描述的更智能。新版本最终出来时,将尊重语言的缩进规则,而不是简单地填充成对的空格/制表符。
也就是说,我用它来确保无数行模板都是完美的。
方法已更新,其他与described for Textmate1 by Cocabits相同。
你最终会得到这样的结果:
注意倒数第二行,缺少触发行的空白。新版本会更接近 Sublime 的
首先,我们需要教 TextMate 如何识别我们在每行代码之前使用的制表符和空格。
我创建了一个fold guides bundle,但这是我第一次发布它,我很害怕它对你不起作用,说试试看。
如果不起作用,您将需要手动添加这些规则,我将向您展示如何使其成为自己的捆绑包,但您可以直接将其添加到您喜欢的任何语言中。
从Bundles->Edit Bundles创建一个bundle,然后,File->New,选择bundle并为其命名,然后File->New并创建一个语法。语法应该有这样的代码:
{ patterns = (
{ include = '#leading-spaces'; },
{ name = 'meta.leading-tabs';
begin = '^(?=\t)';
end = '(?=[^\t])';
patterns = (
{ match = '(\t)(\t)?';
captures = {
1 = { name = 'meta.odd-tab'; };
2 = { name = 'meta.even-tab'; };
};
},
);
},
);
repository = {
leading-spaces = {
begin = '^(?=\s\s)';
end = '(?=[^\s\s])';
patterns = (
{ match = '(\s\s)(\s\s)?';
captures = {
1 = { name = 'meta.odd-tab'; };
2 = { name = 'meta.even-tab'; };
};
},
);
};
};
}
检查员应该是这样的:
现在我们只需要一个主题规则来匹配“meta.even-tab”和/或“meta.odd-tab”,所以只需将其添加到您当前的主题中:
{name = 'Alternating Tabs';
scope = 'meta.even-tab';
settings = {
background = '#232323';
};
}