Вам потребуется определение синтаксиса XML, чтобы по-разному закрывать теги , чтобы иметь возможность исключать их из списка символов, так как логика, которая определяет, что помещается в список символов, основана исключительно на областяхназначается определением синтаксиса.т. е. предполагая, что вы изменили определение синтаксиса , чтобы закрывающие теги области видились как meta.tag.xml.closing
, ваш селектор области действия мог бы выглядеть как <string>text.xml meta.tag.xml - meta.tag.xml.closing</string>
, и вы получите только открывающие (и самозакрывающиеся) теги.
Что касается отступов, это обычно делается с помощью преобразований регулярных выражений , которые на самом деле не предназначены для рекурсивного вложения, так как обычно для доступа к заменам регулярных выражений недостаточно контекста.
Один из обходных путей заключается в том, чтобы снова изменить определение синтаксиса для применения метаобласти к содержимому каждого тега и иметь несколько файлов tmPreferences
, каждый из которых работает с более конкретной вложенностью, чем предыдущий, и простожестко закодируйте отступ, но это будет ограничено тем, сколько файлов вы создаете, сколько вложений обрабатывается правильно, но это будет работать независимо от макета XML-файла.
Если ваши XML-файлы хорошиуже с отступом (- и есть плагины для этого, если нет -), то вы можете достичь того, что вы хотитеизменив определение синтаксиса, чтобы ограничить пробелы перед открытыми тегами.Определение его как meta.tag
может мешать некоторым встроенным командам ST, которые полагаются на эту область, поэтому, возможно, было бы лучше добавить отдельную область, которая покрывает пробел и сам тег, оставив исходные области действия meta.tag
без изменений.Используя этот подход, символ уже будет содержать такой же отступ из файла, и вы можете потенциально преобразовать 4 пробела в 1, например, чтобы индекс символа не выглядел так же, как отступ основного документа.