2012年11月27日火曜日

Sublime Text 2 で TypeScript をビルドする

Sublime Text 2 に TypeScript の Build System を作ります。

[Tools] → [Build System] → [New Build System...]

TypeScript.build-system という名前で以下を保存
(パッケージフォルダのしたの User/ の保存される)

  1. {  
  2.     "cmd": ["tsc","$file"],  
  3.     "file_regex""(.*\\.ts?)\\s\\(([0-9]+)\\,([0-9]+)\\)\\:\\s(...*?)$",  
  4.     "selector""source.ts",  
  5.     "osx": {  
  6.        "path""/usr/local/bin:/opt/local/bin"  
  7.     },  
  8.     "linux": {  
  9.        "path""/usr/local/bin:/usr/bin"  
  10.     }  
  11. }  
TypeScript でのビルドを明示したいなら、[Tools] → [Build System] → [TypeScript] を選択する。
Auto のままでも拡張子が .ts なら TypeScript でビルドされる。

[Tools] → [Build] もしくは Ctrl (Mac は Command) + B でビルド



var を ver とタイポしたときのエラー表示



file_regex は tsc のエラーの正規表現にする。



解説は以下↓


Build Systems

Sublime Text には、外部のプログラムにファイルをかませる機能があります。

独自の Build System を作るには以下のステップを行います。
  • オプション : 外部の実行可能ファイル(スクリプトやバイナリファイル)を用意する
  • .sublime-build という拡張子の設定ファイル(JSON 形式で記述する)を用意する
  • ビルドを開始する Sublime Text のコマンドを用意する
デフォルトでは build systems は Packages/Default/exec.py に実装されている exec コマンドを使います。このコマンドをオーバーライドすることができます。

.build-system ファイルの例
  1. {  
  2.     "cmd": ["python""-u""$file"],  
  3.     "file_regex""^[ ]*File \"(...*?)\", line ([0-9]*)",  
  4.     "selector""source.python"  
  5. }  


オプション
  • cmd
    実行するコマンドと必要な引数が入った配列。
    フルパスを指定しなかった場合、システムの環境変数 PATH から外部のプログラムが検索される。

  • file_regex
    オプション。
    cmd のエラー出力をキャプチャするための正規表現。

  • line_regex
    オプション。
    もし file_regex が現在のラインとマッチせず、line_regex が存在して現在のラインとマッチするなら、file_regex とマッチするラインが見つかるまでバッファ使って遡り、これら2つのマッチを使って進むべきファイルとラインを決定する

  • selector
    オプション。
    [Tools] → [Build System] → [Automatic] が true にセットされているときに利用される。
    Sublime Text はアクティブな View 用の適切な build system を見つけるためにこのスコープセレクターを使う。

  • working_dir
    オプション。
    cmd を走らせる前に変更するカレントディレクトリとして変更するディレクトリ。
    元のカレントディレクトリは後でリストアされる。

  • encoding
    オプション。
    cmd の出力エンコーディング。有効な python エンコーディングでなければならない。デフォルトは UTF-8。

  • target
    オプション。
    実行する Sublime Text コマンド。デフォルトは exec (Packages/Default/exec.py)。

  • env
    オプション。
    現在のプロセスの環境変数が cmd に渡されるまえに、現在のプロセスの環境変数にマージされる環境変数の Dictonary。

  • shell
    オプション。
    true の場合、cmd は shell を介して実行される。

  • path
    オプション。
    cmd が呼ばれる前に、現在のプロセスの PATH がこの文字列に置き換わる。
    元の PATH の値は後でリストアされる。

  • variants
    オプション。
    メインの build system のオプションを上書きするオプションの Dictionary のリスト。

  • name
    variants の内部でだけ有効。
    variant build system を識別する。
    name が Run の場合、variant は Tools | Build System メユーの下に表示され、Ctrl + Shift + B がバインドされる。


プラットフォーム独自のオプション
  • windows
  • osx
  • linux
  1. {  
  2.     "cmd": ["ant"],  
  3.     "file_regex""^ *\\[javac\\] (.+):([0-9]+):() (.*)$",  
  4.     "working_dir""${project_path:${folder}}",  
  5.     "selector""source.java",  
  6.   
  7.     "windows":  
  8.     {  
  9.         "cmd": ["ant.bat"]  
  10.     }  
  11. }  


Variants

  1. {  
  2.     "selector""source.python",  
  3.     "cmd": ["date"],  
  4.   
  5.     "variants": [  
  6.   
  7.         { "cmd": ["ls -l *.py"],  
  8.           "name""List Python Files",  
  9.           "shell"true  
  10.         },  
  11.   
  12.         { "cmd": ["wc""$file"],  
  13.           "name""Word Count (current file)"  
  14.         },  
  15.   
  16.         { "cmd": ["python""-u""$file"],  
  17.           "name""Run"  
  18.         }  
  19.     ]  
  20. }  


Build System の変数
  • $file_path
    現在のファイルのディレクトリ 例) /Files/
  • $file
    現在のファイルのフルパス 例)/Files/File.txt
  • $file_name
    現在のファイルの名前 例) File.txt
  • $file_extension
    現在のファイルの拡張子 例) .txt
  • $file_base_name
    現在のファイルの名前部分 例) File.
  • $packages
    パッケージフォルダへのフルパス
  • $project
    現在のプロジェクトファイルへのフルパス
  • $project_path
    現在のプロジエクとファイルのディレクトリ
  • $project_name
    現在のプロジェクトファイルの名前
  • $project_extension
    現在のプロジェクトファイルの拡張子
  • $project_base_name
    現在のプロジェクトファイルの名前部分


Build System を実行する

[Tools] → [Build System] から実行したい build system を選択して、[Tools] → [Build] を選択するか Ctrl (Command) + B を押す。



1 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除