【问题标题】:Notepad++ UDL highlight lineNotepad++ UDL 高亮行
【发布时间】:2016-06-16 12:11:26
【问题描述】:

我正在尝试在记事本++ 中定义我自己的用户定义语言。原因:我想为不同的日志文件条目介绍着色方案。有人知道是否有办法突出显示包含特定关键字的完整行吗?

【问题讨论】:

    标签: notepad++ udl2


    【解决方案1】:

    如果特殊关键字在开头,您可以使用注释行

    如果你想知道有一些错误的行,你最好使用搜索窗口的标记标签,勾选Bookmark line

    [2016 年 6 月 28 日编辑]

    如果您想要一个更强大的解决方案来完全满足您的需求,您可以尝试使用插件 Python Scripts

    插件安装完成后,就可以编写python脚本了。

    • 在您的脚本中创建一个函数highlight_preprocessor,它执行以下操作:
      1. 对于您拥有的每个关键字,通过调用 Editor.markerDeleteAll(<ID_keyword>) 删除之前的所有突出显示,其中 <ID_keyword> 是与关键字关联的数字(例如,10 表示 错误,11 表示 警告 em> 等)
      2. 对于每个<ID_keyword>,通过调用函数editor.markerSetBack(<ID_keyword>, (<R>, <G>, <B>) ) 设置突出显示的颜色(例如深灰色)(其中最后 3 个数字是颜色的 RGB 值 - 深灰色为 20/20/20)
      3. 解析文档文本,每行匹配一个关键字,调用函数editor.markerAdd(<line_number>, <ID_keyword>)
    • 每次保存文件时调用该函数,方法是将此行放在脚本的末尾notepad.callback(highlight_preprocessor, [NOTIFICATION.FILEBEFORESAVE])

    需要一些时间和精力才能使其发挥作用,但至少是可能的。

    【讨论】:

    • 不幸的是关键字不在日志的开头。
    • 好的,但至少单词和后面的内容会被突出显示。另一个简单的替代方法是为某些特定行添加书签(例如有错误的行)。如果您想要更强大的解决方案,可以尝试使用 Python Scipt(我已经更新了我的解决方案)。
    【解决方案2】:

    使用 ((EOL)) in close: 使其突出显示直到带有特定关键字的行尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 2015-05-23
      • 2013-11-21
      • 2011-09-22
      • 2015-05-22
      • 1970-01-01
      相关资源
      最近更新 更多