4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【UnityEditor】 ソースコード中のTODOコメントを一括取得して表示する

Last updated at Posted at 2016-12-26

はじめに

C#コード中に書かれたTODOコメントの一覧をUnity上で表示させてみました。

きっかけ

自分は以下のようなTODOコメントをソースコード中に書くことがよくあります。

Hoge.cs
//TODO: このメソッドをあとで実装する

しかし、一つの問題がありました。

TODOコメントを書いたことを忘れてしまう


「TODOの一覧を表示することができればこの問題を解決することができるのではないだろうか」

ということでソースコード中に書かれているTODOコメントをUnityのConsole上に出してみました。

環境

Unity5.5.0f3
Windows 10

ソースコード

以下のスクリプトをUnityプロジェクト内のEditorフォルダ以下へ配置してください

TodoExtractor.cs
using UnityEditor;
using UnityEngine;
using System.Text.RegularExpressions;

public class TodoExtractor
{
    [MenuItem("TODO/コード中のTODOを表示")]
    public static void ShowTodos()
    {
        var monoScripts = Resources.FindObjectsOfTypeAll<MonoScript>();
        foreach (var monoScript in monoScripts)
        {
            var matches = Regex.Matches(monoScript.text, @"/{2}\s*TODO.*", RegexOptions.IgnoreCase);
            foreach (var match in matches)
            {
                Debug.Log(match.ToString() + "\n" + AssetDatabase.GetAssetPath(monoScript), monoScript);
            }
        }
    }
}

動かしてみる

1) コードの配置

検証用として以下のコードをプロジェクト内に入れます。

NewBehaviourScript.cs
using UnityEngine;

// Todo: このクラスを直す
public class NewBehaviourScript : MonoBehaviour {

    //todo: このメソッドを直す
    void Start () {
        
    }
    
    //TODO :こっちのメソッドも直す
    void Update () {
        
    }
}

2) 実行

画面上部のメニューの "TODO" -> "コード中のTODOを表示" を選んでコードを実行します
image

3) 結果

image
ソースコード中のTODOコメントの一覧がConsoleへ出力されました。

おわり

上記のTODO表示コードをエディター起動時に実行させるなどすれば、TODO忘れを防止できそうです。(完

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?