如何在 Sublime Text 3 中定义自定义关键字自动缩进行为?

How to define custom keywords auto-indentation behavior in Sublime Text 3?

Sublime Text 3 中 Matlab 的语法突出显示已过时。不支持许多关键字,例如 classdefproperties 等。

在互联网上进行一些搜索后,我设法通过编辑 Matlab.tmLanguage 文件来添加自定义关键字并使语法突出显示工作。但是我找不到修改自动缩进行为的方法。

以关键字while为例。当我键入 while something 并按下 ENTER 键时,光标将移动到下一行并自动缩进一层。我希望 classdef 也发生确切的行为。如何在 Sublime Text 3 中执行此操作?

谢谢!

EDIT 问题不必局限于Matlab。您可以将其视为关于 ST3 中自定义关键字自动缩进的一般性问题

我已经有一段时间没有这样做了,而且我使用的是旧版本的 SublimeText,所以这个答案可能不完全正确 - 但希望它能引导您朝着正确的方向前进。

在文件夹 SublimeText\Data\Packages\Matlab 中,以及 Matlab.tmLanguage 应该有一个文件 Indent.tmPreferences。在此文件中,应该有一个部分 <key>increaseIndentPattern</key>,其中包含 MATLAB 关键字列表。您应该能够向列表添加额外的条目,例如 classdef|properties|methods|enumeration|events,以及(如果您有 Parallel Computing Toolbox)parfor|spmd

PS 您也可以联系 MathWorks 支持人员,请他们找一位友好的开发人员,抽出一些空闲时间,为 SublimeText 贡献一个现代的、最新的语法高亮、缩进等实现。他们已经使用 Eric Ludlam 的 MATLAB mode for emacs 为 emacs 做到了这一点 - 为什么 SublimeText 也不能​​呢?