Menu

Perl in FunctionListRules.xml

2010-01-22
2013-05-21
  • Dmitry Popov

    Dmitry Popov - 2010-01-22

    My settings for parsing Perl modules based on C++ icons.

    <Language name="Perl" imagelistpath="C:\Program Files\Notepad++\plugins\config\C++.flb">
            <CommList param1="#" param2="" />
            <Group name="PACKAGE" subgroup="" icon="2" child="9" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="\&lt;package\s+" regexfunc="+" regexend="\&gt;;" bodybegin="" bodyend="" sep="" />
            </Group>
            <Group name="USE" subgroup="" icon="4" child="11" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="\&lt;use\s+" regexfunc="+" regexend="" bodybegin="" bodyend=";" sep="" />
            </Group>
            <Group name="SUB" subgroup="" icon="6" child="12" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="\&lt;sub\s+" regexfunc='+\s***' regexend="" bodybegin="\{" bodyend="\}" sep="" />
            </Group>
        </Language>

     
  • Dmitry Popov

    Dmitry Popov - 2010-01-22

    And small addition to parse Template::Toolkit files.
    Made in HTML  parsing rules

    <Language name="HTML" imagelistpath="C:\Program Files\Notepad++\plugins\config\C++.flb">
            <CommList param1="#" param2="" />
            <Group name="TT" subgroup="" icon="4" child="9" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg='\&lt;PROCESS\s+&quot;*' regexfunc="+" regexend="\&gt;" bodybegin="" bodyend="\s" sep="" />
                <Rules regexbeg="\&lt;INCLUDE\s+" regexfunc="+" regexend="\&gt;" bodybegin="" bodyend="\s" sep="" />
            </Group>
            <Group name="CSS" subgroup="" icon="4" child="15" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg='&lt;link\s.+\shref=&quot;' regexfunc="+" regexfunc='+' regexend="\s*\(.*\)" bodybegin="\{" bodyend="\}" sep=";" />
                <Rules regexbeg="^\s*" regexfunc='+' regexend="\s*\s*function\s*\(*\)" bodybegin="\{" bodyend="\}" sep=";" />
                <Rules regexbeg="^\s*var\s*" regexfunc='+' regexend="\s*\s*function\s*\(*\)" bodybegin="\{" bodyend="\}" sep=";" />
            </Group>
            <Group name="MACRO" subgroup="" icon="7" child="14" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="\&lt;MACRO\s+" regexfunc="+" regexend="\&gt;" bodybegin="+" bodyend="END" sep="" />
            </Group>
        </Language>

     
  • Johannes Kilian

    Johannes Kilian - 2010-02-02

    I merged your perl rules with my "extended" perl rules.
    The main extensions are:

    • Own group for parsing variables (VAL)

    • Variables are used within their scope (each SUB has a subgroup VAL - showing local variables within the SUB)

    Here it is:

         <Language name="Perl" imagelistpath="C:\Programme\NotePad++\plugins\Config\C++.flb">
            <CommList param1="#" param2="" />
            <CommList param1="&apos;" param2="&apos;" />
            <CommList param1='&quot;' param2='&quot;' />
            <Group name="PACKAGE" subgroup="" icon="2" child="9" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="\&lt;package\s+" regexfunc="[\w_:]+" regexend="\&gt;;" bodybegin="" bodyend="" sep="" />
            </Group>
            <Group name="USE" subgroup="" icon="4" child="4" autoexp="0" matchcase="0" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="use\s+constant\s+" regexfunc="[\w_:]+" regexend="[^\w_:]+" bodybegin="" bodyend="$" sep="" />
                <Rules regexbeg="use\s+" regexfunc="[\w_:]+" regexend="[^\w_:]+" bodybegin="" bodyend="$" sep="" />
                <Rules regexbeg="\&lt;use\s+" regexfunc="[\w_:\s\(\)]+" regexend="" bodybegin="" bodyend=";" sep="" />
            </Group>
            <Group name="VAL" subgroup="" icon="15" child="15" autoexp="0" matchcase="0" fendtobbeg="" bbegtobend="" keywords="">
                <Rules regexbeg="my\s*\(" regexfunc="[$@\%\w,\s]*" regexend=".*[;=\)]" bodybegin="" bodyend="$" sep="\s*[,]+\s*" />
                <Rules regexbeg="my\s*" regexfunc="[$@\%]\w*" regexend=".*[\(;=]" bodybegin="" bodyend="$" sep="" />
                <Rules regexbeg="our\s*\(" regexfunc="[$@\%\w,\s]*" regexend=".*[;=\)]" bodybegin="" bodyend="$" sep="\s*[,]+\s*" />
                <Rules regexbeg="our\s*" regexfunc="[$@\%]\w*" regexend=".*[\(;=]" bodybegin="" bodyend="$" sep="" />
            </Group>
            <Group name="SUB" subgroup="VAL" icon="9" child="9" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="\{" keywords="">
                <Rules regexbeg="\&lt;sub\s+" regexfunc='[\w_]+\s*[\(\$\%\@\)]*[\w_\s\(\),&apos;&quot;\.\:]*' regexend="" bodybegin="\{" bodyend="\}" sep="" />
            </Group>
        </Language>
    
     
  • Dmitry Popov

    Dmitry Popov - 2010-02-02

    I like it, thanks :)

     
  • Tobias Schirmer

    Tobias Schirmer - 2010-04-28

    would update:

    <Rules regexbeg="my\s*\("
    

    to

    <Rules regexbeg="my\s*\(\s*"
    

    to allow spaces after the '('.
    Same to

    <Rules regexbeg="our\s*\(\s*"
    


    otherwise this rule set is great. Please include in default xml !!

     

Log in to post a comment.

MongoDB Logo MongoDB