最初の手順は、編集のためにXML構文定義を開くことです。私はそれを行う方法を説明します。 tmLanguage
(XML形式)ファイルを参照するものは古くなっています。サブライムテキスト3は、すべてデフォルトの構文強調表示のためにsublime-syntax
(YAML形式)ファイルを使用します。
公式のgit repo https://github.com/sublimehq/Packagesを複製することをお勧めします(リポジトリのreadmeの説明に従ってください。パッケージのクローンを作成して崇高なテキストがそれを選択する方法を詳しく説明しています)。 gitを使用して正式版にあなたのバージョンに加えられた将来の変更(このカスタマイズされたバージョンで、STで自動的にアップグレードされるデフォルトのものを上書きするので)。 (基本的に、あなたはPreferences -> Browse Packages
メニュー項目に移動して、STからアクセス可能であり、あなたの崇高Packages
フォルダ内のレポからXML
フォルダをしたい。)
我々が興味を持っているファイルがXML/XML.sublime-syntax
です。ご覧のとおり、正規表現がいっぱいです。私たちが最も興味を持っているのは、XML属性を解析する場所です。
double-quoted-string:
を検索してください。すぐにこの行の下に、次のように貼り付けます。最初の文字(match
前-
)があった元- match: '"'
に並ぶ必要があり
- match: '"(?=%function\(self\))'
scope: string.quoted.double.xml punctuation.definition.string.begin.xml
push:
- clear_scopes: true
- match: '"'
scope: string.quoted.double.xml punctuation.definition.string.end.xml
pop: true
- include: scope:source.lua
注こと。
保存してください。以上です!
基本的に、私たちが何をしているか、である:平野二重引用符("
)、それは文字列リテラル%function(self)
続く二重引用符を探しますの構文をチェックする前に
- 。これは先読みを使用して、
include
source.lua
のスコープになり、そのテキストとコードはLUAとして残りのLUAコードと共に正しく強調表示されます。
clear_scopes: true
を使用して、LUAコードがXMLテキスト/属性のように見えないことを確認してください。
- 次に、閉じるXML属性の引用符(
"
)を探し、スタックからコンテキストを「ポップ」してプレーンなXMLタグの内部に戻します。(私はend
の前に"
を探すことを選んだので、end
はまだLUA構文定義で選択されます。そうでなければ、マッチ正規表現とスコープをXML構文で複製する必要があります。これは理想的ではありません。)
(あなたの地元のレポに新しいブランチを作成し、これらの変更をコミットし、それが簡単で、将来の公式変更をマージできるようにすることにしたいかもしれません。)
してくださいすることができますLUAを埋め込んだサンプルXMLファイルをコピーして貼り付けることができます。それを行う方法の詳細なステップで答えと答え:) –
[ここに行く](http://hastebin.com/vawicezuxu.xml)ありがとう! –