はじめに
最近、VSCodeを使い始めまして、自分のPC上で、秀丸やサクラエディタが空気になりつつあります。
そんなテキストエディタたちに光を当てるべく、コーディング規約チェックツール代わりにすることを考えてみました。
この投稿は、アイデアのメモです。なので・・・
- 世の中は広いもので、既に同じアイデアがあるかもしれません。かぶっていたら、本当にごめんなさい。。。
- 思いついたら、内容が増えていく予定です。(永久に増えないかも)
- 実は、VSCodeに独自のハイライト設定を追加する方法が分からなかっただけ、だったりします・・・教えて、エロい人!
アイデア
秀丸やサクラエディタにある強調表示の配色設定にて、「優先度が高いほうに」どぎつい配色を用意してください。
$\style{background-color:pink;}{こんな感じですね。}$
ちなみに秀丸の場合、強調表示1~強調表示8だと、強調表示8のほうが、優先度が高いです。
で、この設定を何に使うかというと、コーディング規約違反を視覚的にパッと見せるために使います。
後で示す正規表現にヒットしたら、どぎつい配色で表示させるのです。
後で示すパターン3を例にして、どんな表示になるかのイメージを示しておきます。
int max(int a, int b)
{
if (a > b)
$\style{background-color:pink;}{ }${
return a;
} else {
$\style{background-color:pink;}{ }$return b;
}
}
パターン1:コード1行あたりの文字数はn文字以内
例えば、1行あたり120文字以内にしろ、というルールですね。
^.{121,}
任意の文字が121個以上あったらOUT、ということです。
強調表示での検索は1行ずつなので、検索文字列先頭の^
は有っても無くてもよいかと思います。
パターン2:タブ使用禁止
組み込みソフトだと、コードにタブ使うな、って言われることあるんです。
\t
・・・ごめんなさい、石は投げないでください><
パターン3:インデントは半角空白4文字ずつ
4n+1 ≦ [空白の個数] ≦ 4n+3 かどうかをチェックします。
^( {4})* {1,3}(?! )
後ろの(?! )
は、インデントのために、普通に書いた4連続空白でも、先頭3文字がどぎつい配色になってしまうことを防止します。