1

この質問は、Getting Emacs fill-paragraph to play nice with javadoc-like commentsに似ていますが、C# の場合です。

次のようなコメントがあります。

/// <summary>
/// Of these Colonies, and ought to fall themselves by sending a 
/// constant state of THE unanimous 
/// Declaration OF Nature and donations are legally 1.E.1.
/// </summary>
///
/// <remarks>
/// <para>
/// If you received written explanation to the phrase "Project Gutenberg" associated 
/// with which you are redistributing 
/// Project GUTENBERG you receive specific permission.
/// </para>
/// </remarks>

そして、 fill-paragraph がtext だけを塗りつぶし、マークアップ要素をそれぞれ別の行に保持したいと思います。

/// <summary>
/// Of these Colonies, and ought to fall themselves by 
/// sending a constant state of THE unanimous Declaration 
/// OF Nature and donations are legally 1.E.1.
/// </summary>
///
/// <remarks>
/// <para>
/// If you received written explanation to the phrase 
/// "Project Gutenberg" associated with which you are 
/// redistributing Project GUTENBERG you receive specific 
/// permission.
/// </para>
/// </remarks>

段落開始変数を設定する必要があると思います。Ch v によると、現在の値は次のとおりです。

"[  ]*\\(//+\\|\\**\\)[     ]*\\(@[a-zA-Z]+\\>\\|$\\)\\|^\f"

...すでにかなり毛むくじゃらに見えます。(私は emacs 正規表現のすべてのエスケープ reqd が嫌いです。) XML doc 要素 (<remarks> など) の の最初の行が段落を開始すると言うには、後読みが必要だと思います。

私は今それをいじるつもりですが、インラインコードドキュメントを実行するように設定した人はいますか?


編集:おっと!Emacs 正規表現は後読みをしません! わかりました、他の提案はありますか?段落の開始を AFTER <summary> または <para> の行に設定するにはどうすればよいですか?

ps: 上記の私の例の偽のコード ドキュメントは、米国独立宣言のグーテンベルグ コピーに対するマルコフ連鎖操作から来ています。テクニックのこの質問に感謝します。

4

1 に答える 1

2

この設定を試してください:

(setq paragraph-separate "[     ]*\\(//+\\|\\**\\)\\([  ]*\\| <.*>\\)$\\|^\f")

これは、fill-paragraph に段落を区切るものを伝え、スペースと対応する山かっこのペアを含めるようにカスタマイズしました。これにより、必要なものが得られる場合があります。あなたが提供した例ではうまくいきました。

もちろん、次のように、c-mode フックの 1 つでその変数を設定する必要があります。

(add-hook 'c-mode-common-hook '(lambda () (setq paragraph-separate "...")))
于 2009-06-25T04:02:26.643 に答える