2015-10-28 9 views
6

ログファイルの単純な色付けを作成しようとしています。コードにカスタム言語を含めることができるようになりました(私は0.9.2です)。私は文字列 'q'の色付けのための単純な.tmLanguageファイルを作成しましたが、これは起動のためのものですが、失敗しました。シンプルなカスタム言語の色分けをVSコードに作成する方法

私の新しい言語「ログ」はファイル拡張子に正しく関連付けられており、コード内から手動で選択することもできますが、色付けは行われません。私はそれが私のパターンを関連付ける「範囲」と関係していると感じていますが、わかりません。選択できる有効範囲のリストはありますか?当初、「コメント」のような一般的なものを使って色を出すと思っていましたが、うまくいかないようです。私はおそらくここで何かを誤解してい

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
     <key>scopeName</key> 
     <string>text.log</string> 

     <key>fileTypes</key> 
     <array> 
      <string>log</string> 
     </array> 

     <key>name</key> 
     <string>Log file</string> 

     <key>patterns</key> 
     <array> 
      <dict> 
       <key>match</key> 
       <string>q</string> 
       <key>name</key> 
       <string>comment</string> 
      </dict> 
     </array> 
    </dict> 
</plist> 

ので、任意のヘルプは非常にあなたが記述するために、静的な文字列の代わりに正規表現を使用する必要が

答えて

5

:-)感謝されています

は、ここに私の.tmLanguageファイルですパターン:

<key>match</key> 
<string>q</string> <- This needs to be a regular expression 
<key>name</key> 
<string>comment</string> 

これは、ログファイルのハイライターのより便利な例です。数値、ヒント、警告、エラーを色分けして表示します。これらのキーワードと数字を識別するルールは、正規表現に基づいています。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
     <key>scopeName</key> 
     <string>text.log</string> 

     <key>fileTypes</key> 
     <array> 
      <string>log</string> 
     </array> 

     <key>name</key> 
     <string>Log file</string> 

     <key>patterns</key> 
     <array> 
      <dict> 
       <key>match</key> 
       <string>\b(?i:(hint|info|information))\b</string> 
       <key>name</key> 

       <string>info-token</string> 
      </dict>     
      <dict> 
       <key>match</key> 
       <string>\b(?i:(warning|warn))\b</string> 
       <key>name</key> 
       <string>warn-token</string> 
      </dict> 
      <dict> 
       <key>match</key> 
       <string>\b(?i:(Error|Failure|Fail))\b</string> 
       <key>name</key> 
       <string>error-token</string> 
      </dict> 
      <dict> 
       <key>match</key> 
       <string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b</string> 
       <key>name</key> 
       <string>constant.numeric</string> 
      </dict>         
     </array> 
     <key>uuid</key> 
     <string>FF0550E0-3A29-11E3-AA6E-0800200C9A77</string> 
    </dict> 
</plist> 

ハイライトは、(デフォルトのテーマを使用して)このような結果を与える:

enter image description here

私は(error-tokenconstant.numericなどのような)利用できるトークンの公式ドキュメントを見つけることができませんでした。しかし、ファイルは%VSCODE_INSTALLATION%\resources\app\out\vs\languages\markdown\common\tokens.cssにあります。使用可能なすべてのトークンなどがリストされているようです。.tmLanguageファイルを作成するときに参照として使用してください。

ただし、一部のテーマでは、の基本トークンのみが使用されています。そして、他のいくつかのテーマは、多くの異なるトークンに同じ色を使用しています。したがって、最も一般的なテーマに対してハイライターを頻繁にテストして、結果が良好かどうかを確認する必要があります。

詳しくはLanguage Grammarsについてはこのページをご覧ください。

+0

あなたの便利なサンプルと言語のトークンのヒントのための多くのおかげで、私は本当に感謝します!あなたのサンプルはすぐに使えましたので、私はそれを私のより基本的なファイルと比較しました。それは私が** uuid **の部分を欠いていたことが判明しました。 – emilast

+1

実際には 'q'は実際には有効な正規表現ですが、非常に短いものです...テストのためのもので、私は本当にq:sをログに記録する必要はありませんファイル:-) – emilast

+2

有効な言語トークンのリストを抽出しました。ここで利用できます: https://gist.github.com/vivainio/b89bd60a3f2c7bbb31f7e149d6cb8806 – vivainio

1

@Woshiによると、正規表現が必要です。

ほとんどの色のテーマで一般的に機能するスコープについては、this answerにリンクします。 スコープを取得するには、キー "name"を持つ辞書を使用する必要があります。

+0

ありがとう、私はそのページを昨日見つけました。有用な読書ですが、私の問題は、私が** uuid **データが欠けていたことが判明しました。私のスコープの 'comment'が有効であることが判明しました。 – emilast

5

出力パネルに色付けを行う言語拡張機能をリリースしました。基本的には、このスレッドで承認された回答と同じことを行い、出力パネルで使用されるtext/x-code-output mimeタイプを追加します。

は、ここではそれが無料で入手:ここ https://marketplace.visualstudio.com/items?itemName=IBM.output-colorizer

出典: https://github.com/IBM-Bluemix/vscode-log-output-colorizer 貢献助けてください!バグ、機能リクエスト、寄付はすべて歓迎します。ここで

が働いて、それのいくつかのスクリーンショットは以下のとおりです。

enter image description here enter image description here enter image description here

関連する問題