如何将自己的语法添加到Sublime Text 2

时间:2015-06-11 05:26:41

标签: regex sublimetext2 syntax-highlighting sublimetext oniguruma

我想将自己的语法(语言)添加到Sublime Text 2.我已经知道如何将它包含在语法列表中,所以我现在唯一的问题是语法高亮。但首先,我想了解用于匹配我想要突出显示的单词的Oniguruma语言,以便我可以自己制作。

这是我的代码

<?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 (正则表达式)?

这就是我想要的东西

<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>

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

老实说,我无法理解你指的是什么......

也许我确实理解了你所说的替代[\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]         ...
....

感谢您的回答:)