• Login
Community
  • Login

Function List not working in v7.2

Scheduled Pinned Locked Moved Notepad++ & Plugin Development
30 Posts 13 Posters 38.9k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M
    MAPJe71
    last edited by MAPJe71 Aug 9, 2017, 1:25 AM Aug 9, 2017, 1:23 AM

    Notepad++ uses the commentExpr to determine which parts of the text to skip when searching for classes, methods and/or functions.
    “Embedded” comments are not supported.

    1 Reply Last reply Reply Quote 0
    • M
      MAPJe71
      last edited by Aug 9, 2017, 1:29 AM

      @t12122013-Fink
      See also issues #344 and #1023 on GitHub.

      1 Reply Last reply Reply Quote 0
      • D
        David Liang
        last edited by Aug 9, 2017, 7:48 AM

        C# function list fix for v7.4.2
        Basically copy the function section inside classRange and paste it at the same level of classRange.
        <!-- ========================================================== [ C# ] -->

        		<!--
        		|   Based on:
        		|       http://sourceforge.net/p/notepad-plus/patches/613/
        		\-->
        		<parser
        			displayName="C#"
        			id         ="csharp_class"
        			commentExpr="(?s:/\*.*?\*/)|(?m-s://.*?$)"
        		>
        			<classRange
        				mainExpr    ="^[\t\x20]*((public|protected|private|internal)\s+)?(\w+\s*)?(class|struct|interface)[\t\x20]+[^\{]+\{"
        				openSymbole ="\{"
        				closeSymbole="\}"
        			>
        				<className>
        					<nameExpr expr="(class|struct|interface)[\t\x20]+\w+" />
        					<nameExpr expr="[\t\x20]+\w+" />
        					<nameExpr expr="\w+" />
        				</className>
        				<function
        					mainExpr="^[^\S\r\n]*(?&lt;modifier1&gt;(?:public|protected|internal|private)\s*)?(?&lt;modifier2&gt;(?:new|static|virtual|sealed|override|abstract|extern)\s*)?(partial\s*)?(?&lt;type&gt;(?!(return|if|else))\w+(?&lt;genericType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s+)(?&lt;name&gt;\w+(?&lt;genericNameType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\((?&lt;params&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\)(?&lt;ctorChain&gt;\s*\:\s*(?:base|this)\s*\((?&lt;ctorParams&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\))?[\w\s&lt;&gt;\:,\(\)\[\]]*(?:\{|;)"
        				>
        					<functionName>
        						<funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\(" />
        						<funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)" />
        					</functionName>
        				</function>
        			</classRange>
        			<function
        				mainExpr="^[^\S\r\n]*(?&lt;modifier1&gt;(?:public|protected|internal|private)\s*)?(?&lt;modifier2&gt;(?:new|static|virtual|sealed|override|abstract|extern)\s*)?(partial\s*)?(?&lt;type&gt;(?!(return|if|else))\w+(?&lt;genericType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s+)(?&lt;name&gt;\w+(?&lt;genericNameType&gt;&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\((?&lt;params&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\)(?&lt;ctorChain&gt;\s*\:\s*(?:base|this)\s*\((?&lt;ctorParams&gt;[\w\s,&lt;&gt;\[\]\:=\.]*)\))?[\w\s&lt;&gt;\:,\(\)\[\]]*(?:\{|;)"
        			>
        				<functionName>
        					<funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)\(" />
        					<funcNameExpr expr="(\w+(&lt;[\w,\s&lt;&gt;]+&gt;)?\s?)" />
        				</functionName>
        			</function>
        		</parser>
        
        M 1 Reply Last reply Aug 22, 2017, 7:23 PM Reply Quote 0
        • T
          t12122013 Fink
          last edited by t12122013 Fink Aug 9, 2017, 2:13 PM Aug 9, 2017, 2:12 PM

          @ MAPJe71
          Thank you for the explanation about comment handling. Of course I assumed Notepad++ would strip comments lexically, replacing them by an empty string, and only then apply mainExpr, but it seems not to be the case.

          For my situation and needs I prefer to disable commentExpr at all, and do the other minor improvements written in my comments. I do get all functions, and do not get false functions. Reasoning, I do not have functions inside comments, and I do not place comments in function headers except between ) and { . Besides that, functions temporarely commented out, may still count as functions.
          At least the <parser> above is a partial proposal to my and other’s issues.

          By the way do you have an idea how to remove the mis-written earlier posts. I was not fluent with this BB and with markup language, and is there a preview?

          M 1 Reply Last reply Aug 9, 2017, 4:14 PM Reply Quote 0
          • M
            MAPJe71 @t12122013 Fink
            last edited by Aug 9, 2017, 4:14 PM

            @t12122013-Fink

            how to remove the mis-written earlier posts

            Use delete in the three-dots menu right next to ^ 0 v .

            is there a preview?

            As soon as you hit reply to open the edit pane you get either a preview pane on the right or a show preview option in the top right corner of the edit pane.

            1 Reply Last reply Reply Quote 0
            • T
              t12122013 Fink
              last edited by t12122013 Fink Aug 9, 2017, 10:23 PM Aug 9, 2017, 10:22 PM

              I’m only allowed to delete within 180 seconds. And today I get the preview, but yesterday there was none (preview availability depends on browser window width) . The BB is not easy but I’m motivated.

              About the issue, I propose to disable commentExpr because of the following cases:

              function setdata(x,y,z,w) // set coordinates x y z w

              function setdata(x,y,z,w) /* set coordinates x y z w */

              Functionlist will detect the function if there are two spaces between ) and the comment, but will not detect the function if there is just one space. My mainExpr as above given, stops after ) and does not eat one space.

              1 Reply Last reply Reply Quote 0
              • M
                maroonmoon13 @David Liang
                last edited by Aug 22, 2017, 7:23 PM

                @David-Liang Doesn’t work :(

                1 Reply Last reply Reply Quote 0
                • A
                  astrominion
                  last edited by Jan 14, 2018, 2:35 AM

                  i have problem too with Javascript functionList. I change the langID=58 (L_JAVASCRIPT) to langID=19 (L_JS) at :

                  <association id= “javascript_function” langID=“19” />

                  and it work verywell.

                  1 Reply Last reply Reply Quote 0
                  • J
                    Jonathan H
                    last edited by Aug 23, 2018, 1:12 PM

                    This was bothering me for a while - turns out that even though I tick “don’t use roaming profiles” when installing, it still does so.
                    And the old config file was from 2016. So I simply copied the new version over from the notepad install dir and everything is OK now!

                    1 Reply Last reply Reply Quote 0
                    • P
                      pete312
                      last edited by pete312 Jun 16, 2019, 10:40 PM Jun 16, 2019, 10:40 PM

                      I recovered from this problem by uninstalling notepad++ and then renaming what was left in Program Files to oldNotepad++, then reinstalling notepad++. Something obviously is out of whack.

                      Takes less time this way

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      The Community of users of the Notepad++ text editor.
                      Powered by NodeBB | Contributors