Как да добавите свой собствен синтаксис към Sublime Text 2

Искам да добавя свой собствен синтаксис (език) към Sublime Text 2. Вече знам как да го включа в списъка със синтаксис, така че единственият ми проблем сега е подчертаването на синтаксиса. Но първо искам да разбера езика Oniguruma, използван за съпоставяне на думите 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