物置き

Doxygen用の関数コメント定型文を生成するVimスクリプト書いた

最近、コードを書く際にメインで使用するエディタを
VisualStudioからVimに移行したのだけど、

VisualStudioを使っていた際は、Doxygen用の関数コメントを生成する自作アドインを使っていたのだけど、当然のことながらVimだとその機能を利用することができない。

で、既存のスクリプトで代用できないか探してみたのだけど、
ちょうどいいのを見付けられなかったので、自作してみまんた。
ということで晒してみるテスト。

これは何か

C/C++向けの、関数コメントを生成するスクリプトです。
関数部分をビジュアルモードで選択して、機能を実行すると、
選択した部分の書式を解析して、定型文を生成・挿入します。

また、一度生成したコメントを含めて関数部分を選択し、
再実行すると、以前のコメントも解析して再出力します。
引数を追加/削除した際に、それが反映されます。

動作イメージ

使い方

関数部分をビジュアルモードで選択して、mキーで機能を実行します。
出力するコメントの形式は、ある程度、設定でカスタマイズすることができます。
以下、パラメータの説明です。

g:dsfcg_format_header

関数コメント先頭部の書式を指定します。

g:dsfcg_format_footer

関数コメント末尾部の書式を指定します。

g:dsfcg_comment_words

コメント開始、終了を表すキーワードをリストで記述します。

g:dsfcg_element_order

関数コメント内での出力順序を指定します。
たとえば、"DRA"と記述した場合は、
関数説明,戻り値,引数リスト という順序でコメントを生成します。
コメント新規生成時、"D"行は、g:dsfcg_default_descriptionN(1〜)の設定値を出力します。
関数説明行を複数行出力する場合には、
"DDRA"のように出力する行数だけ'D'を記述し、

g:dsfcg_default_description1="..."
g:dsfcg_default_description2="..."

のように出力行数分だけ、定型文を設定します。

g:dsfcg_is_alignment

関数を整形出力するか?を指定

g:dsfcg_default_descriptionN(1〜)

関数コメント新規作成時の関数説明記述部の定型文

g:dsfcg_text_type_input

引数の入出力タイプ(入力)を表すワード

g:dsfcg_text_type_output

引数の入出力タイプ(出力)を表すワード

g:dsfcg_text_type_inout

引数の入出力タイプ(入出力)を表すワード

g:dsfcg_template_argument

関数コメント新規作成時の、引数説明行の出力書式

  • %inout 入出力タイプ
  • %name 引数名
  • %description 説明文
g:dsfcg_regexp_argument

既存の関数コメントを解析する際の、引数説明行を識別するための正規表現パターン

g:dsfcg_escapetext_argument

g:dsfcg_regexp_argumentでの正規表現マッチングを行った結果、
どのグループが、どの要素に対応するか(,区切りで指定)

g:dsfcg_template_return

関数コメント新規作成時の、戻り値説明行の出力書式

  • %description 説明文
g:dsfcg_regexp_return

既存の関数コメントを解析する際の、戻り値説明行を識別するための正規表現パターン

g:dsfcg_escapetext_return

g:dsfcg_regexp_returnでの正規表現マッチングを行った結果、
どのグループが、どの要素に対応するか(,区切りで指定)

g:dsfcg_enable_mapping

'vmap m :call DSMakeFunctionComment()'という
デフォルトのキーマッピングを有効にするか