2

カスタム言語の構文強調表示を有効にするために、Visual Studioコードで拡張機能を作成しようとしています。 @Wosiが提供している有益なアドバイスは、Create Custom Language in Visual Studio Codeです。それに基づいて、私は次のテストを試みました。 @によって与えられた例に基づいmylang.tmLanguageファイルを私は、その下の構文サブフォルダを作成カスタム言語の構文強調表示のためのVisual Studioコード拡張の作成

{ 
    "name": "mylang", 
    "version": "0.0.1", 
    "engines": { 
     "vscode": ">=0.9.0-pre.1" 
    }, 
    "publisher": "me", 
    "contributes": { 
     "languages": [{ 
      "id": "mylang", 
      "aliases": ["MyLang", "mylang"], 
      "extensions": [".mylang",".myl"] 
     }], 
     "grammars": [{ 
      "language": "mylang", 
      "scopeName": "source.mylang", 
      "path": "./syntaxes/mylang.tmLanguage" 
     }] 
    } 
} 

、及び含まれる:I(上記の例から)次のように定義されたルートにpackage.json%USERPROFILE%\.vscode\extensionsの下にサブフォルダを作成しwoziここに:How to create a simple custom language colorization to VS Codeあり、単純に上記のJSONファイルとの名前の一貫性を保つために若干の変更のカップル:

<?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>source.mylang</string> 

     <key>fileTypes</key> 
     <array> 
      <string>mylang</string> 
      <string>myl</string> 
     </array> 

     <key>name</key> 
     <string>mylang 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> 

しかし、私は、次のテストファイル(test.mylang)とVisual Studioのコード(v1.11.2)を開きます:

2017-04-17 18:38 Hint This should be blue! 
2017-04-17 18:38 Warning This should be amber! 
2017-04-17 18:38 Fail This should be red! 

キーワード(ヒント、警告、失敗)の色はありません。私はテーマを指定するために他の何かをする必要がありますか?あるいは、私は新しいユニークなUUIDを指定する必要がありますか?もしそうなら、私は自分自身で作ることができますか、何とか登録する必要がありますか?

答えて

2

あなたがDeveloper: Inspect TM scopesコマンドを実行すると、あなたは正しいスコープが使用されていることがわかります。

問題は、デフォルトのテーマ(複数可)にinfo-tokenスコープに関連付けられた色がありませんということです(したがって「テーマセレクタなし」)。 that other answer you linked以降、これらのスコープの名前は、token. -prefix(VSCode 1.9.0)を含むように変更されたようです。これは#18839で議論され、これらのスコープを新しい名前で再導入した関連コミットはb2aa308です。 VSCode 1.13.0では

、私はtoken.info-tokentoken.warn-tokentoken.error-tokenを使用して期待される着色を得る:

+0

'token.'プレフィックスは私の問題を修正追加、ありがとうございます。 –

関連する問題