前回はエスケープシーケンスを使ってターミナルのサイズを取得する部分やその方法を紹介した。ソースコードはkilo / kilo.cで閲覧できるので参考にしてもらえればと思う。コメント抜きで1,000行以内なので実用的なCのコードを勉強するには扱いやすい教材だ。今回はKiloで実装されているシンタックスハイライトについて取り上げる。 処理を最初から見ていこう。まず、520行目辺りから始まっているeditorSelectSyntaxHighlight()という関数の中で、どのハイライトを利用するかを調べている。判断の基準はファイル名の拡張子だ。530行目辺りにある「strstr(filename,s->filematch[i])」の処理で拡張子が.cかまたは.cppだった場合に条件に一致するようになっており、今のところこの2つの拡張子にだけ対応している。 どのシンタックスハイライトを使用するか判