1

我想将我自己的语法(语言)添加到 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 中)[]而不是使用/for 来关闭语句。所以基本上我只是将它们替换<>为,[]但我怎样才能将它翻译成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>
4

2 回答 2

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

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

于 2015-06-11T06:26:44.413 回答
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]         ...
....

谢谢你的回答:)

于 2015-06-11T23:53:18.910 回答