Notepad++ 中的用户定义语言(NLog)

Notepad++ 中的用户定义语言(NLog)

在我目前的公司,NLog大量使用于日志记录目的,而 Notepad++ 用于平面文本编辑(如日志)。

我想添加一种用户定义的“NLog语言”,以便根据典型NLog关键字Debug、、Error和来修改日志的前景/背景颜色。WarnInfoFatal

我听到你说“就这些吗?只需创建相应的 XML 文件就可以了。”,但是有一个问题:

我已经开始编写 XML 文件,它如下所示(未经测试):

<NotepadPlus>
    <UserLang name="NLog" ext="log" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="yes" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Debug">| Debug |</Keywords>
            <Keywords name="Info">| Info |</Keywords>
            <Keywords name="Error">| Error |</Keywords>
            <Keywords name="Warn">| Warn |</Keywords>
            <Keywords name="Fatal">| Fatal |</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="Debug" fgColor="000000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="Info"  fgColor="009100" bgColor="0FFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="Error" fgColor="009100" bgColor="8FFFFF" colorStyle="1" fontStyle="0" nesting="32768" />
            <WordsStyle name="Warn"  fgColor="804000" bgColor="4FFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="Fatal" fgColor="0078B3" bgColor="CFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

...但你可能已经看到了问题所在:我可以改变关键字的颜色,但这不是我想要的:我想要改变的颜色关键字所属的整行

看一下这个Styler Dialog功能,它并不是很有前景:

在此处输入图片描述

有:

  • 更改字体,包括名称、大小、粗体、斜体、下划线
  • 改变颜色(前景和背景)和透明度。

...但这一切都适用于简单关键字,而不是整行。

在 Notepad++ 的语言设置中,有没有办法改变包含关键字的整行颜色?

提前致谢

附言:我试图将这个问题添加到 Notepad++ 社区,但它被某个 Aksimet 视为垃圾邮件。

Ps2:与此同时,我尝试过一些插件, 喜欢 ”文本可视化工具“ 和 ”分析插件“,但这些都不能达到这个目的。

答案1

如果你想不使用插件,即只使用 Notepad++ 中的用户定义语言 (UDL) 来突出显示日志,到目前为止,我只找到了使用的部分解决方案分隔符用于((EOL))我的简单 Python 日志。我这里缺少 RegEx。

我假设每行只有一条消息,并且没有换行符。

对于您的用例,您仍然需要从 进行调整,[DEBUG例如| Debug

在此处输入图片描述

我已在此处添加了生成的 UDL.xml 以便导入它进行测试。

<NotepadPlus>
    <UserLang name="MyLog" ext=".log" udlVersion="2.1">
        <Settings>
            <Global caseIgnored="no" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
            <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Comments">00# 01 02 03 04</Keywords>
            <Keywords name="Numbers, prefix1"></Keywords>
            <Keywords name="Numbers, prefix2"></Keywords>
            <Keywords name="Numbers, extras1"></Keywords>
            <Keywords name="Numbers, extras2"></Keywords>
            <Keywords name="Numbers, suffix1"></Keywords>
            <Keywords name="Numbers, suffix2"></Keywords>
            <Keywords name="Numbers, range"></Keywords>
            <Keywords name="Operators1"></Keywords>
            <Keywords name="Operators2"></Keywords>
            <Keywords name="Folders in code1, open"></Keywords>
            <Keywords name="Folders in code1, middle"></Keywords>
            <Keywords name="Folders in code1, close"></Keywords>
            <Keywords name="Folders in code2, open"></Keywords>
            <Keywords name="Folders in code2, middle"></Keywords>
            <Keywords name="Folders in code2, close"></Keywords>
            <Keywords name="Folders in comment, open"></Keywords>
            <Keywords name="Folders in comment, middle"></Keywords>
            <Keywords name="Folders in comment, close"></Keywords>
            <Keywords name="Keywords1"></Keywords>
            <Keywords name="Keywords2"></Keywords>
            <Keywords name="Keywords3"></Keywords>
            <Keywords name="Keywords4"></Keywords>
            <Keywords name="Keywords5"></Keywords>
            <Keywords name="Keywords6"></Keywords>
            <Keywords name="Keywords7"></Keywords>
            <Keywords name="Keywords8"></Keywords>
            <Keywords name="Delimiters">00[DEBUG 01 02((EOL)) 03[INFO 04 05((EOL)) 06[WARNING 07 08((EOL)) 09[ERROR 10 11((EOL)) 12[CRITICAL 13 14((EOL)) 15 16 17 18 19 20 21 22 23</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" fgColor="C0C0C0" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="COMMENTS" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="LINE COMMENTS" fgColor="FF8000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="NUMBERS" fgColor="C0C0C0" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS1" fgColor="8080FF" bgColor="FFFFFF" fontStyle="1" nesting="0" />
            <WordsStyle name="KEYWORDS2" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS3" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS4" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS5" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="OPERATORS" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE1" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN CODE2" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="FOLDER IN COMMENT" fgColor="008000" bgColor="FFFFFF" fontStyle="3" nesting="0" />
            <WordsStyle name="DELIMITERS1" fgColor="8080FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS2" fgColor="0080FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS3" fgColor="FF8080" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS4" fgColor="FF0000" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS5" fgColor="FF00FF" bgColor="FFFFFF" colorStyle="1" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
            <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontStyle="0" nesting="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

相关内容