Как добавить свой синтаксис в Sublime Text 2

Я хочу добавить свой собственный синтаксис (язык) в Sublime Text 2. Я уже знаю, как включить его в список синтаксиса, поэтому моя единственная проблема сейчас — это подсветка синтаксиса. Но сначала я хочу понять язык онигурума, используемый для сопоставления слов I хочу выделить, чтобы я мог сделать что-то самостоятельно.

Вот мой код

<?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>fileTypes</key>
    <array>
        <string>xmp</string>
    </array>
    <key>name</key>
    <string>XMP</string>
    <key>patterns</key>
    <array>
        <dict>
            <key>match</key>
            <string>??????????????????????????????????????????????</string>
            <key>name</key>
            <string>source.keyword.xmp</string>
        </dict>
    </array>
    <key>scopeName</key>
    <string>source.xmp</string>
    <key>uuid</key>
    <string>750d3b02-a1bc-4b09-a794-1b78c54a4e21</string>
</dict>
</plist>

И, как и в других языках программирования (например, HTML или XML), вместо использования <> (в HTML) я буду использовать [], а также / для закрытия оператора. Так что в основном я просто заменю эти <> на [], но как мне перевести их на Oniguruma (regex)?


Вот что я хочу, чтобы это было

<key>patterns</key>
<array>
    <dict>
        <key>match</key>
        <string>[SIZE=""][/SIZE]</string>
        <key>name</key>
        <string>code.size.xmp</string>
    </dict>
    <dict>
        <key>match</key>
        <string>[BOLD][/BOLD]</string>
        <key>name</key>
        <string>code.bold.xmp</string>
    </dict>
</array>

person JnFrks    schedule 11.06.2015    source источник


Ответы (2)


replace: /<(\/)?(.*?)>/g
     to: [\1\2]

https://regex101.com/r/zC8mG5/8

person Kerwin    schedule 11.06.2015

Честно говоря, я не понимаю, на что вы намекаете...

Возможно, я понял замену [\1\2], о которой вы говорите. Основываясь на объяснении, он будет соответствовать только любому символу, кроме символов новой строки (пожалуйста, поправьте меня, если я ошибаюсь), но я хочу сопоставить точное слово и символы [size=""], а не любые случайные символы. И я также хочу функцию автоматического листинга...

Например, если я наберу [, он автоматически перечислит только возможные точные слова, включенные в мой язык, точно так же, как другие языки программирования по умолчанию, которые уже есть в Sublime Text. (например, Java)

Да, не только коды, которые я хотел перевести в регулярное выражение, но и подсветку синтаксиса (окрашивание) и функцию автоматического листинга, о которой я говорю...

Вот только примеры моих кодов

[SIZE=""]texts here[/SIZE]          Will change the font size. (Usage [SIZE="integer"])
[BOLD]texts here[/BOLD]             Will change the font weight.
[CENTER]texts here[/CENTER]         Will align texts to center.
[ITALIC]texts here[/ITALIC]         ...
[UNDERLINE]texts here[/UNDERLINE]   ...
[STRIKE]texts here[/STRIKE]         ...
....

Спасибо за ответ :)

person JnFrks    schedule 11.06.2015