【问题标题】:Multi-line highlighting in Sublime Text syntax definitionSublime Text 语法定义中的多行突出显示
【发布时间】:2015-09-08 01:56:02
【问题描述】:

我正在尝试创建一个与我的日志中的自定义标题匹配的语法荧光笔。这是一个例子:

SYSTEM INFORMATION
Memory
----------------------------------------
Total                    14841733120
Free                     12260917248
Active                   583532544
Swap Total               5009104896
Swap Free                5009104896
% Used                   3
% Swap Used              0

Disk
----------------------------------------
Total                    114272681984
Free                     107483385856
% Used                   5

我要匹配的是标题行(例如,内存)和下一行的破折号。我开发了一个正则表达式模式来做到这一点:

^[\w|\ ]+(\ {0,})\n(\-{40})

不幸的是,当我尝试创建自定义语法荧光笔时,此正则表达式不再匹配。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>fileTypes</key>
    <array>
        <string></string>
    </array>
    <key>name</key>
    <string>mylog</string>
    <key>patterns</key>
    <array>
        <dict>
            <key>comment</key>
            <string>section header</string>
            <key>match</key>
            <string>^[\w|\ ]+(\ {0,})\n(\-{40})</string>
            <key>name</key>
            <string>constant.character.mylog</string>
        </dict>
    </array>
    <key>scopeName</key>
    <string>text.mylog</string>
    <key>uuid</key>
    <string>unique-uuid</string>
</dict>
</plist>

关于让自定义语法荧光笔匹配两行的任何建议?

【问题讨论】:

    标签: regex xml syntax syntax-highlighting sublimetext


    【解决方案1】:

    恐怕这是不可能的。请参阅TextMate Manual。您不能使用单个正则表达式跨行匹配。您可以做的最接近的事情可能是使用beginend 关键字。看看这是不是你喜欢的?

    ...
    <array>
        <dict>
            <key>begin</key>
            <string>^[A-Z][a-z ]*$</string>
            <key>end</key>
            <string>-{40}</string>
            <key>name</key>
            <string>variable.parameter</string>
        </dict>
    </array>
    ...
    

    【讨论】:

    • 这不是我想要的,但它足够接近我可以使用它。我没有考虑开始和结束结构——这些是最有用的部分。感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多