【发布时间】:2017-06-18 18:12:27
【问题描述】:
我正在尝试使用类结构为 Robot Framework 脚本创建一个 Notepad++ function list,以将 4 个不同的部分封装在一个机器人文件中:
- 设置
- 变量
- 测试用例
- 关键字
使用文档和一些实验,我创建了一个简单的过滤器,它将根据关键字和测试用例从行首开始返回。但是更复杂的类分组我需要一些正则表达式的帮助。似乎 *** 应该有助于清晰的标记。
这是我迄今为止所拥有的:
我已经安装了User Defined Robot Syntax Highlighting 并将以下部分添加到 %app%\notepad++\functionList.xml
<association userDefinedLangName="Robotframework" id="robot_function"/>
然后在解析器部分:
<parser
id="robot_function"
displayName="Robot Section"
commentExpr="((#.*?$)|(^Documentation*\w.*?$)|(^Meta*\w.*?$))|(^Library*\w.*?$)">
<function
mainExpr="^(\w.*?$)"
displayMode="$functionName">
<functionName>
<nameExpr expr="^(\w.*?$)"/>
</functionName>
</function>
</parser>
所以,我遇到问题的部分是:
<classRange mainExpr="^(\*).*(?=\n\S|\Z)">
<className>
<nameExpr expr="^(\w.*?$)"/>
</className>
<function mainExpr="^(\w.*?$)">
<functionName>
<nameExpr expr="^(\w.*?$)"/>
</functionName>
</function>
</classRange>
下面是一个示例机器人文件
*** Variables ***
${variable} variable value
*** Settings ***
Documentation multi
... line
... documentation.
Metadata Version 0.1
Library LibraryName some variable
Library String
*** Test Cases ***
Test Case RF 01
Run Keyword ${TEST_NAME}
Test Case RF 02
Run Keyword ${TEST_NAME}
*** Keywords ***
Test Case RF ${tc}
Sleep 30ms
Test Keyword
Sleep 300ms
我确信如果我可以使它适用于其中一个部分,例如测试用例,那么我也可以将它应用到其他部分。我主要对测试用例和关键字感兴趣。
【问题讨论】:
标签: regex list function notepad++ robotframework