Visual Studio Code - 拡張機能 - Doxygen - Generator カスタマイズ

クラウディア 
1. 概要
2. テンプレート追加

1. 概要

 拡張機能、「Documentation Generator」のカスタマイズについて、少し、つっこんでみます。

2. テンプレート追加

 「C/C++」の関数・メソッドは、デフォルトで。

int main(int argc, char* argv[])
{
    return 0;
}
 てなソースの関数の前で「/**」Enter すれば。

/**
 * @brief
 *
 * @param argc
 * @param argv
 * @return int
 */
int main(int argc, char* argv[])

・・・	略	・・・
 と、つけてくれるのありますが・・・。  これが、デフォルトのテンプレートで。

  // The order to use for the comment generation. Values can be used multiple times. Valid values are `brief`, `empty`, `tparam`, `param`, `return`, `custom`, `author`, `date`, `version` and `copyright`.
  "doxdocgen.generic.order": [
    "brief",
    "empty",
    "tparam",
    "param",
    "return",
    "custom"
  ],
 てな、定義があるかららしい。  このテンプレートを変えたいのだ。  ある、プロジェクトで、最後に、「@attention」(注記)ちゅう記述が必須になっているのだ。  「@brief」の後ろの空白行もいらないしね。  てことで、ユーザかプロジェクトの「setting.json」に

"doxdocgen.generic.order":
[
	"brief",
	"tparam",
	"param",
	"return",
	"attention",
],
 と書けば、「@brief」の後ろの空白行はなくなります。  だがしかし、「@attention」は、出力してくれない。  出力するためには・・・。

c:/Users/ユーザ名/.vscode/extensions/cschlosser.doxdocgen-1.4.0/out/Lang/Cpp/CppDocGen.js
 を編集します(バージョン番号は変わるかもしれないので、ご注意)。


    generateCommonTag(lines, tags) {
        switch (tags) {
            case "brief": {
                this.insertBrief(lines);
                break;
            }
            case "empty": {
                lines.push("");
                break;
            }
            case "version": {
                this.generateVersionTag(lines);
                break;
            }
            case "author": {
                this.generateAuthorTag(lines);
                break;
            }
            case "date": {
                this.generateDateFromTemplate(lines);
                break;
            }
            case "copyright": {
                this.generateCopyrightTag(lines);
                break;
            }
            default: {
                break;
            }
        }
    }
 227 と 228行の間に、下記の1行をぶっこみます。


            case "attention": {
                lines.push("@attention");
                break;
            }
 「Visual Studio Code」を再起動して、さきほどと同じ手順をふむと、自動生成されるコードが。

/**
 * @brief
 * @param argc
 * @param argv
 * @return int
 * @attention
 */
int main(int argc, char* argv[])

・・・	略	・・・
 となります。
audiobook.jp
AbemaTV 無料体験