2
1

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.

正規表現で、テキストエディタに光を当てよう(コーディング規約チェック)

Last updated at Posted at 2020-02-13

はじめに

最近、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文字がどぎつい配色になってしまうことを防止します。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?