私は、emacs で Actionscript 3 コードをインデントするためにactionscript-mode-connors.elを使用しています。
私はほとんどのことを理解しましたが、気になることの1つは、関数の引数としてインラインクロージャーを使用すると、関数の内部のインデントが台無しになることです。
例えば:
var foo:int = some_function(
bar,
baz,
function():void {
return qux();
},
zap);
return qux() を、開いた括弧からの単一のインデントではなく、前の行の関数宣言からの単一のインデントにしたい。「バー」のインデントも台無しにされていましたが、それを修正しました
(add-hook 'actionscript-mode-hook
(lambda ()
(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-close 0)))
通常、ここでは Cc Cs を使用して、どの構文シンボルを変更する必要があるかを判断しますが、「return qux()」行の問題は、構文コンテキストが
((arglist-cont-nonempty 731 758) (brace-list-intro 731))
これらの数字は「some_function」行を参照しています。「arglist-cont-nonempty」は間違いのようです。その行の開き括弧の後には何もないため、「arglist-cont」にする必要があるようです。「arglist-cont-nonempty」のインデントを変更することはできません。これは、開き括弧が「some_function」行を終了しない場合にも影響するためです。
どうすればこれを修正できますか?