PL / SQL的Notepad ++函数列表

时间:2014-10-16 19:58:52

标签: notepad++

我正在尝试为pl / sql源文件创建一个函数列表。我有spc和bdy文件(包的规格和正文)。

这就是我在functionList.xml中定义的关联(也尝试使用"。"在扩展名之前):

 <association ext="bdy" id="plsql_func"/>
 <association ext="spc" id="plsql_func"/>

现在,在<parsers>内(与其他解析器处于同一级别):

 <parser id="plsql_func" displayName="PLSQL Function Parser" commentExp="--.*$">
    <function
       mainExpr="^[\t ]*FUNCTION[\t ]*[\w]*\(*"
       displayMode="$functionName">
       <functionName>
          <nameExpr expr="[\w]+\("/>
       </functionName>
    </function>
 </parser>

当我在文件中搜索时,正则表达式^[\t ]*FUNCTION[\t ]*[\w]*\(*匹配所有函数名称(没有问题)。

我也试过&#34;。*&#34;作为名称解析器,但仍然没有运气。功能列表窗格保持为空。

我错过了什么吗?

PS:

示例函数头:

FUNCTION TEST_FUNCTION(O_error    VARCHAR2(300),
                       I_args     VARCHAR2(10))
return BOOLEAN IS

2 个答案:

答案 0 :(得分:2)

我的pl / sql源文件有扩展名sql所以我定义了:

        <association langID="17" id="plsql_func"/>

并改善你的解析器。

        <parser id="plsql_func" displayName="PL/SQL" commentExpr="((/\*.*?\*)/|(--.**$))">
            <function
                mainExpr="^[\t ]*(FUNCTION|PROCEDURE)[\s]*[\w]*[\s]*(\(|IS|AS)*"
                displayMode="$functionName">
                <functionName>
                    <nameExpr expr="[\w]+[\s]*(\(|IS|AS)"/>
                </functionName>
            </function>
        </parser>

在我的情况下它起作用(notepad ++ v6.6.9)

答案 1 :(得分:0)

我猜你正在为PL-SQL使用用户定义的语言。

尝试在functionList.xml中添加它

<association userDefinedLangName="PL-SQL" id="plsql_func"/>

PL-SQL就是你用户定义的语言。