4

私はいくつかの obj-c プログラミングに Emacs を使用していますが、デフォルトのインデント スキームに非常に苦労しています。私はこれを自分で修正するのに十分なリストや emacs lisp を知りませんが、ここにいる誰かが手を貸してくれることを願っています。

コードをインデントする方法の例を次に示します。

void someFunc() {
    NSBitmapImageRep* repout = [
        [NSBitmapImageRep alloc]
        initWithBitmapDataPlanes: NULL
        pixelsWide: width
        pixelsHigh: height
        bitsPerSample: 8
        samplesPerPixel: 4
        hasAlpha: YES
        isPlanar: NO
        colorSpaceName: NSDeviceRGBColorSpace
        bytesPerRow: width*4
        bitsPerPixel: 32
    ];
}

しかし、Mx indent-region が現在行っていることは次のとおりです。

void someFunc() {
    NSBitmapImageRep* repout = [
        [NSBitmapImageRep alloc]
                                   initWithBitmapDataPlanes: NULL
                                                 pixelsWide: width
                                                 pixelsHigh: height
                                              bitsPerSample: 8
                                            samplesPerPixel: 4
                                                   hasAlpha: YES
                                                   isPlanar: NO
                                             colorSpaceName: NSDeviceRGBColorSpace
                                                bytesPerRow: width*4
                                               bitsPerPixel: 32
        ];
}

最初の文字に並べるよりも、コロンに並べるのにあまり関心がありません。また、明らかに引数リストをインデントしすぎています。最後に、「];」で閉じます。1 インデント レベルが深すぎます。

応答を投稿する可能性のある emacs 構成ハッカーに事前に感謝します。

-パトリック

4

1 に答える 1

0

を呼び出して、さまざまな構文要素のインデントを変更できますc-set-offset。対話的に呼び出すと、emacs は変更したい「インデント変数」の値を教えてくれ、値を尋ねてきます。

プログラム的には、これはあなたが言及した例であなたが望むものに近いことをしますが、別の動作が必要な他の多くのユースケースがあるかもしれません:

(c-set-offset 'arglist-intro '+)
(c-set-offset 'arglist-close 0)
(c-set-offset 'objc-method-call-cont 'c-lineup-argcont)
于 2013-07-29T08:52:30.240 に答える