2013年8月19日月曜日

Sublime Text 2 用の Syntax Definition を作る

本家のリファレンスはこちら Syntax Definitions : SUBLIME TEXT HELP


1. AAAPackageDev を Sublime Text に入れる
  • https://bitbucket.org/guillermooo/aaapackagedev/downloads から AAAPackageDev.sublime-package をダウンロードする
  • AAAPackageDev.sublime-package を Sublime Text の Installed Packages ([Preferences] - [Browse Packages...] から開くフォルダの一つ上の階層にある)に入れる
  • Sublime Text を再起動する


2. Package を作成する

作成する Syntax Definition に対応するパッケージがない場合は

[Tools] - [Packages] - [Package Development] - [New Packages...]

を選択し、パッケージ名を入力して Enter を押す



3. Syntax Definition を作成する
  • [Tools] - [Packages] - [Package Development] - [New Syntax Definition]
  • <lang_name>.JSON-tmLanguage というファイル名で Packages/User フォルダーか、対応するパッケージフォルダに保存する { "name": "ReVIEW", "scopeName": "text.review", "fileTypes": ["re"], "patterns": [ { "match": "^={1,4} ", "name": "keyword.review", "comment": "Patagraph = " }, ... { "name": "column.review", "begin": "(^={3}\\[column\\]) ", "beginCaptures": { "1": { "name": "keyword.review" } }, "end": "(^={3}\\[/column\\])", "endCaptures": { "1": { "name": "keyword.review" } }, "comment": "Column ===[column] ... ===[/column]" } ], "uuid": "5fa7fee2-7333-4924-a208-ab04d0a64748" }
  • "name" : [View] - [Syntax] に表示される名前。
  • "scopeName" : syntax definition のトップレベルスコープ。source.<lang_name> か text.<lang_name> とする。プログラミング言語の場合は source を、マークアップなどそれ以外は text を使う。
  • "fileTypes" : 拡張子のリスト。
  • "patterns" : パターンのコンテナ。パターンは JSON 用にエスケープした正規表現で記述する。
    "name" に指定した scope 文字によって色が変わる。用意されている scope は TextMate のマニュアルにある
    • comment : コメント(灰)
      • line : ラインコメント
      • block : ブロックコメント
      { "match": "#@#.*", "name": "comment.line.review", "comment": "Comment #@# " },
    • constant : 定数
      • numeric : 数字(紫)
    • entity : エンティティ、タグ名とか
      • name :
        • function : 関数名(緑)
        • tag : タグ名(赤)
    • invalid : 無効
    • keyword : キーワード(赤)
    • markup : マークアップ言語用
    • meta :
    • storage :
    • string : 文字列(黄)
    • support :
      • function : (青)
    • variable : 変数
      • parameter : パラメータとして宣言されている変数(橙)
      • language : this, super, self などの予約語(色無し)
      • other : その他(色無し)


4. .tmLanguage ファイルに変換する
  • [Tools] - [Build System] - [JSON to Property List] を選択
  • F7(または [Tools] - [Build])を押すと .JSON-tmLanguage ファイルと同じディレクトリに .tmLanguage ファイルができる
  • Sublime Text を再起動する




# 今 ReVIEW 用の Syntax Definition 作ってるからもうちょいまって!



0 件のコメント:

コメントを投稿