ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-07-12中級

自分のDSLがモノクロのままだった — Antigravity に最小構成の TextMate 文法を足して色を通す

個人開発で使う独自の設定ファイル(DSL)がエディタで真っ白なままだと、読み違いが増えます。Antigravity に最小構成の TextMate 文法とlanguage-configuration を足して、独自ファイルにハイライトを通すまでの手順を、動くコードと落とし穴つきで整理します。

antigravity430editor28textmateシンタックスハイライト拡張機能2個人開発88

プレミアム記事

夜、自作のアプリで使っている壁紙生成ルールのファイルを開いたとき、画面がやけに静かに見えました。palette: sunset@when season == winter も、コメントも文字列も、すべて同じ灰色。JavaScript や Python なら一目で読める構造が、自分で決めた拡張子 .wprules になった途端に平坦なテキストに戻ってしまう。行を目で追うたびに、キーと値の境目を頭の中で引き直している自分に気づきました。

原因はエディタの性能ではありません。Antigravity は .wprules という拡張子を知らないので、色を塗る手がかり(言語定義)を持っていないだけです。逆に言えば、その手がかりを一枚渡せば色は通ります。ここでは、独自ファイルにハイライトを効かせる最小構成の拡張を、実際に動くコードで組み立てていきます。派手な機能は足しません。まず「読める」状態を最短で作ることに絞ります。個人開発でアプリを長く保守していると、自分だけが読む設定ファイルは少しずつ増えていきます。だからこそ、この一枚の投資は日々の視認性にそのまま返ってきます。

モノクロの正体 — ハイライトは「スコープ」を色に写す作業

シンタックスハイライトは、テキストを直接色付けしているわけではありません。まず文法(grammar)がテキストの各部分に keyword.controlstring.quoted といったスコープ名を割り当て、次にテーマがそのスコープ名に色を対応づけます。二段構えです。

独自ファイルがモノクロなのは、この一段目が存在しないからです。テーマは十分な色を持っているのに、塗るべき対象にスコープ名が付いていない。だから、私たちがやるべきことは色を選ぶことではなく、テキストに正しいスコープ名を割り当てる文法を書くことに尽きます。

この設計は Antigravity 固有の発明ではなく、TextMate に由来し VS Code 系エディタが広く採用している方式です。Antigravity も同じ仕組みを踏襲しているため、TextMate 文法(.tmLanguage.json)をそのまま持ち込めます。

対象にするファイル

今回色を通すのは、次のような自作の .wprules です。壁紙生成の条件を宣言的に書くための、ごく小さな DSL だと考えてください。

# 冬の夕暮れプリセット
@when season == winter
palette: sunset
brightness: 0.82
title: "Winter Glow"

ここには4種類の意味の異なる要素があります。コメント(#)、ディレクティブ(@when ...)、キー(palette など)、値(数値・真偽・文字列)。この4つにそれぞれ違うスコープを割り当てれば、読むときの手がかりが一気に戻ってきます。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
独自ファイルがモノクロになる原因は「言語登録がない」ことで、TextMate 文法を1枚足すだけで色が通る仕組み
grammar・language-configuration・スニペットを含む最小拡張の全ファイルと、スコープ検査で色を検証する手順
正規表現の並び順・埋め込み言語・テーマ非依存にするための標準スコープ命名という3つの落とし穴と回避策
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Editor View2026-05-27
Antigravity の Settings Sync を3週間運用した所感 — 2台の Mac で個人開発を続けるための同期設計
自宅と外出用の2台の Mac で同じプロジェクトを行き来する個人開発者として、Antigravity の Settings Sync を3週間運用した実装メモを、ぶつかった壁と現在の同期設計に沿って書きました。
Editor View2026-05-27
Antigravity の Walkthroughs を『リグレッション再現メモ』として育てた4ヶ月の運用記録
Antigravity の Walkthroughs を一度限りの解説ツールではなく『リグレッション再現の永続メモ』として4ヶ月運用した記録です。重複バグ起票が6割減った具体運用と命名規則、Agent との連携設計を整理しました。
Editor View2026-06-28
自作スキルが呼ばれない日 — 組み込み Guide スキルと発火がぶつかったとき
組み込みの Guide スキルが入って以降、自作スキルが呼ばれない・二重に呼ばれる場面が増えました。スキルの発火をどう観測し、説明文と命名でどう交通整理するかをまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →