我正在使用Austin Haas的动作脚本模式和Emacs 23.3.1。当我在ActionScript中编写一个包含大量参数的函数时,我喜欢将它分成几行。我希望它看起来像
public function foo(bar:Bar,
baz:Baz,
qux:Qux):void {...}
但是对于actionscript-mode的缩进,它看起来像是
public function foo(bar:Bar,
baz:Baz,
qux:Qux):void {...}
这让我很烦恼。有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
一个简短的回答是:我认为没有一个好办法可以做到这一点。今天缩进仅基于前一行,如果使用E4X,或者嵌套的对象文字或数组文字等等,它会完全被破坏:(
但是,如果您不介意应用于要修改的每个此类实例的一些手工操作,那么可能会有所帮助:
(defun as3-align-regex ()
(interactive)
(let ((align-to-tab-stop nil))
(align-regexp (region-beginning) (region-end)
"\\(\\s(\\|\\s-\\)\\(\\sw+\\)" 1 1 nil)))
请注意,您需要以第一个括号,括号或空格开头的方式选择区域,直到您想要对齐的最后一个术语。这有点难看,但一个好的解决方案需要付出太多努力。