函数参数列表中的Emacs ActionScript缩进

函数参数列表中的Emacs ActionScript缩进,actionscript,emacs,Actionscript,Emacs,我在Emacs 23.3.1中使用Austin Haas的actionscript模式。当我在ActionScript中编写一个包含很多参数的函数时,我喜欢将它分成几行。我希望它看起来像 public function foo(bar:Bar, baz:Baz, qux:Qux):void {...} 但是随着actionscript模式的缩进,它看起来 public function foo(bar:Bar,

我在Emacs 23.3.1中使用Austin Haas的actionscript模式。当我在ActionScript中编写一个包含很多参数的函数时,我喜欢将它分成几行。我希望它看起来像

public function foo(bar:Bar,
                    baz:Baz,
                    qux:Qux):void {...}
但是随着actionscript模式的缩进,它看起来

public function foo(bar:Bar,
    baz:Baz,
    qux:Qux):void {...}

这让我很恼火。有什么办法可以解决这个问题吗?

一个简短的回答是:我看根本没有什么好办法。今天的缩进仅基于前一行,如果使用E4X,或嵌套对象文字或数组文字等,缩进将完全中断:(

但是,如果您不介意对每个要修改的实例进行一些手工操作,下面的内容可能会对您有所帮助:

(defun as3-align-regex ()
  (interactive)
  (let ((align-to-tab-stop nil))
    (align-regexp (region-beginning) (region-end)
          "\\(\\s(\\|\\s-\\)\\(\\sw+\\)" 1 1 nil)))

请注意,您需要选择区域,使其从第一个括号、括号或空格开始,直到您要对齐的最后一个术语。这有点难看,但一个好的解决方案需要付出太多的努力。

一个简短的回答是:我看根本没有好的方法。今天的缩进仅基于上一个缩进s行,如果使用E4X或嵌套对象文字或数组文字等,则完全断开:(

但是,如果您不介意对每个要修改的实例进行一些手工操作,下面的内容可能会对您有所帮助:

(defun as3-align-regex ()
  (interactive)
  (let ((align-to-tab-stop nil))
    (align-regexp (region-beginning) (region-end)
          "\\(\\s(\\|\\s-\\)\\(\\sw+\\)" 1 1 nil)))

请注意,您需要选择区域,使其从第一个括号、括号或空格开始,直到您要对齐的最后一个术语。这有点难看,但一个好的解决方案需要付出太多的努力。

函数调用而不是定义如何?您希望在那里看到类似的行为吗?mult如何i-line数组?我想我应该写这个,但那不是立即的麻烦。是的,我也希望在那里有相同的行为。函数调用而不是定义呢?你想在那里也看到类似的行为吗?多行数组呢?我想我应该写那个,但那不是立即的麻烦。是的,我想我也希望有同样的行为。好吧。好吧,那太糟糕了。但是我把你的方法弄出来了,它有点效果。当我说“有点”的时候,因为它会把下面几行的缩进搞砸。但是没关系!我可以学着接受它。非常感谢你!好吧。那太糟糕了。但是我把你的方法弄出来了,它有点效果。什么我说,这是因为它在某种程度上把下面几行的缩进搞砸了。但没关系!我可以学会接受它。非常感谢!