2012/12/24

Visual Studio C# エディタの配色のHTMLを生成

コードに Visual Studio のエディタと同じような文字色を付けたかったので,変換コードを作成しました.

http://code.google.com/p/google-code-prettify/のような外部ライブラリは動的に色を付けるため,どうしてもキーワードや文字列など正規表現で判別できる区間でしか色を変化させられません.クラスとインターフェイスで異なる色を付ける Visual Studio のエディタの配色を再現するにはどうしても,静的な変換をせざるをえませんでした.

Visual Studio のエディタで現在設定している色は CurrentSettings.vssettings で定義されており,このファイルをもとに色をつけてみようと考えました.一方,Visual Studio エディタ上のテキストをコピーし,rich text で貼り付けようとすると,なんとテキストの色付きでコピーされます.そのため,この rich text を CurrentSettings.vssettings の配色と class 属性を対応させた HTML に変換し,CSSに対応関係を記述することで,CSSを書き換えて配色のみ変更することも可能にしました.

自動的に変換後の HTML と CSS を出力するソフト公開中.

Visual Studio 2010 C# エディタ上でHTMLにしたい区間を選択してコピー,実行ファイルを実行すると デスクトップ/output/html/ フォルダに自動的にファイルが作成されます.

CSSを同時に生成し,配色を CSS で後から変更することも可能です.また,同時に生成する javaScript によってコードの折りたたみを再現しました.

実行時に /nocss オプションを付けると css と javaScript をHTMLに埋め込みます.(スマートフォン用?)
実行時に /noclp オプションを付けると折りたたみ階層の表示をOFFにします.