• Login
Community
  • Login

FunctionList Confused

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
82 Posts 5 Posters 31.7k 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 Nov 28, 2021, 10:36 PM

    Make sure there is extra white space (e.g. newline) after the last closing brace.

    L 1 Reply Last reply Nov 29, 2021, 4:47 AM Reply Quote 3
    • L
      Lycan Thrope @MAPJe71
      last edited by Nov 29, 2021, 4:47 AM

      @mapje71
      Thanks mapje71.

      That did the trick…I obviously cut and paste too few space on the copy.

      Now if I can just figure out what regex, goes where…etc. :) Thanks again, and yes, I did figure out that the Java FunctionList xml isn’t a mixed parser, just a classrange parser that can find the methods in the class. At least, most of the regex is readable in that file for me to try and get a handle on it.

      Lee

      1 Reply Last reply Reply Quote 1
      • L
        Lycan Thrope @Lycan Thrope
        last edited by Nov 30, 2021, 7:17 PM

        @lycan-thrope said in FunctionList Confused:

        openSymbole=“class”
        closeSymbole=“endclass”

        Still need to figure out if this will work, but in the meantime, I think I had an epiphany about how the regex fits into the FunctionList, and would appreciate an up or down on if the understanding is correct, bearing in mind, I’m just picking up regex, the boost flavor, and learning the NPP FunctionList functionality. :) No pressure.

        So the “mainexpr” gathers all the possible text that can be gathered in a file, just to read it, not necessarily to parse it, so capturing or non-capturing shouldn’t matter (or does it?) and the following breakdowns start reading through the same code, most of it non-capturing until it gets to the desired area (Class or Function name in this case) and then captures that, so the next step in the breakdown is left only to look at the captured text from the previous breakdown…and is therefore used by the parser to identify and place that Class, Class Function(method), or separate Functions outside that body into their proper place for the FunctionList. Would that be a proper understanding of the process?

        In my testing, I’ve been using all capture groups to isolate and identify syntax, and I think that’s why I didn’t get any kind of response from my FunctionList testing for class…besides not having the Classrange,Classname function working…but like I said, I’m confused and unsure about this process…but am plugging away at trying to understand what I need to do to get it to function properly. This part of the process isn’t that well documented, which is why I’m asking if this is the proper analogy while I continue to beat my head against the wall. :)

        Lee

        M 1 Reply Last reply Nov 30, 2021, 7:50 PM Reply Quote 0
        • M
          Michael Vincent @Lycan Thrope
          last edited by Nov 30, 2021, 7:50 PM

          @lycan-thrope said in FunctionList Confused:

          I think I had an epiphany about how the regex fits into the FunctionList, and would appreciate an up or down on if the understanding is correct, bearing in mind, I’m just picking up regex, the boost flavor, and learning the NPP FunctionList functionality.

          Have you read the user manual that explains basic Function List behavior?

          L M 3 Replies Last reply Nov 30, 2021, 8:13 PM Reply Quote 1
          • L
            Lycan Thrope @Michael Vincent
            last edited by Nov 30, 2021, 8:13 PM

            @michael-vincent
            Yes I have, but like I said, I’m new to all these tools, so I’m trying to understand what I see there and “how” to implement it. Understanding what you’re trying to do makes it a bit easier than trial and error…that’s all. So does my description make sense of what I’m seeing? That’s what I’m asking…my understanding, versus the mainstream understanding. Like people that learn by reaading, others learn by seeing, and yet others learn by trial and error, all good, but the important thing is do they understand…and that’s what makes clarity of a process…I’m at that point, of trying to understand what I’m trying to do.

            Does that make sense?

            Lee

            1 Reply Last reply Reply Quote 0
            • L
              Lycan Thrope @Michael Vincent
              last edited by Nov 30, 2021, 8:25 PM

              @michael-vincent
              Maybe this will clarify what I mean. I have taken these variations of the syntax for the Class declaration starting line. (Watch for wrap):

              class TruckNotebookForm of TBASE from :Truck:Truckbase.cfm
              class PlainObjectListForm of FORM
              class FrameCtrl(frameObj) of dBCWndCtrl custom
              class dBCWndCtrl
              class FrameAppCtrl of FrameCtrl custom
              class ToolButtonFx(oParent) of Toolbutton(oParent) custom
              class MenuFx(oParent,cName)
              class dContainersForm of DFORM from “dForm.cfm”
              class LGCENTRYFIELD(parentObj, name) of ENTRYFIELD(parentObj, name) custom

              I have come up with variations of the regex to match all of these, the last ones working the best to cover all variations. (Watch wrap):

              1: ^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)
              2: ^(class)\s(\w*)\s(\w*)\s(\w*)
              3: (?x)^[\t\x20](class)[\t\x20]+((\w+)|(\w+)[\x20]+(((\w+)(,\w+)?))?)?((\w+|[^\r\n])[\t\x20]+)(custom)? <—best
              4: (class)[\t\x20]
              (\w+)([\t\x20]?(\w(,[\t\x20]?\w*)?))?([\t\x20]of[\t\x20]\w((\w*(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from\t\x20)?)?
              5: (class)[\t\x20]
              (\w+)([\t\x20]?(\w(,[\t\x20]?\w*)?))?(([\t(\x20]of)[\t\x20]\w((\w*(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from\t\x20)?)?
              6: (class)[\t\x20]
              (\w+)([\t\x20]?(\w(,[\t\x20]?\w*)?))?([\t(\x20]of\t\x20)?((\w(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from\t\x20)?
              7: (?:class)[\t\x20]
              (?‘Classname’\w+)([\t\x20]?(\w(,[\t\x20]?\w*)?))?(([\t(\x20]of)\t\x20((\w(,[\t\x20]?\w*)*?))?(\t\x20)?([\t\x20]from\t\x20)?)?

              Now having done that, what’s the next step, or did I do it right, or have I included enough information to get what I need in “mainexpr”, and where do I get “nameexpr” to extrapolate from that?..How do I seperate the wheat from the chaff, so to speak? If you run this through regex101.com , it works like a charm. Trying to put it in the .xml file, hasn’t been as successful. ::shrug::

              Lee

              L 2 Replies Last reply Nov 30, 2021, 8:30 PM Reply Quote 0
              • L
                Lycan Thrope @Lycan Thrope
                last edited by Nov 30, 2021, 8:30 PM

                @lycan-thrope
                Yikes, it looks like the forum editor did some editing of my strings in the regex…argh…but I hope you get the point. I’m knowing just enough to be dangerous. :)

                Lee

                P 1 Reply Last reply Nov 30, 2021, 8:31 PM Reply Quote 0
                • P
                  PeterJones @Lycan Thrope
                  last edited by Nov 30, 2021, 8:31 PM

                  @lycan-thrope said in FunctionList Confused:

                  Yikes, it looks like the forum editor did some editing of my strings in the regex

                  You should read the FAQ: Formatting Forum Posts

                  L 1 Reply Last reply Nov 30, 2021, 8:32 PM Reply Quote 1
                  • L
                    Lycan Thrope @PeterJones
                    last edited by Nov 30, 2021, 8:32 PM

                    @peterjones
                    Apparently, I need to re-read it…thanks. :)

                    Lee

                    1 Reply Last reply Reply Quote 0
                    • L
                      Lycan Thrope @Lycan Thrope
                      last edited by Nov 30, 2021, 8:57 PM

                      @lycan-thrope Test if this works? Here’s hoping. :)
                      1: ‘^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)’
                      2: ‘^(class)\s(\w*)\s(\w*)\s(\w*)’
                      3: ‘(?x)^[\t\x20](class)[\t\x20]+((\w+)|(\w+)[\x20]+(((\w+)(,\w+)?))?)?((\w+|[^\r\n])[\t\x20]+)(custom)?’
                      4: '(class)[\t\x20]
                      (\w+)([\t\x20]?(\w(,[\t\x20]?\w*)?))?([\t\x20]of[\t\x20]\w((\w*(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from’[‘\t\x20’]'(:\w:\w*.\w*|“\w*.\w*”))?)?’
                      5: ‘(class)[\t\x20](\w+)([\t\x20]?(\w*(,[\t\x20]?\w*)?))?(([\t(\x20]of)[\t\x20]\w((\w*(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from’[‘\t\x20’]'(:\w:\w*.\w*|“\w*.\w*”))?)?’
                      6: ‘(class)[\t\x20](\w+)([\t\x20]?(\w*(,[\t\x20]?\w*)?))?([\t(\x20]of’[‘\t\x20’]'(\w))?((\w*(,[\t\x20]?\w*)?))?([\t\x20]custom)?([\t\x20]from’[‘\t\x20’]'((:\w:\w*.\w*)|(“\w*.\w*”)))?’
                      7: ‘(?:class)[\t\x20](?‘Classname’\w+)([\t\x20]?(\w*(,[\t\x20]?\w*)?))?(([\t(\x20]of)‘[’\t\x20’]'(?‘Superclass’\w)((\w*(,[\t\x20]?\w*)?))?(‘[’\t\x20’]‘(?‘Custom’custom))?(’[’\t\x20’]‘from’[‘\t\x20’]'(:\w:\w*.\w*|“\w*.\w*”))?)?’

                      L 1 Reply Last reply Nov 30, 2021, 8:59 PM Reply Quote 0
                      • L
                        Lycan Thrope @Lycan Thrope
                        last edited by Nov 30, 2021, 8:59 PM

                        @lycan-thrope
                        Unfortunately, the backticks to make the multiline brackets work, will have to be manually removed to run the regex’s…and the backticks around the whole regex did not turn it red typewriter text. :(

                        Lee

                        L P 2 Replies Last reply Nov 30, 2021, 9:03 PM Reply Quote 0
                        • L
                          Lycan Thrope @Lycan Thrope
                          last edited by Nov 30, 2021, 9:03 PM

                          @lycan-thrope Hmmmm Let me try this. Test
                          'red typewriter text’1: ^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)

                          1 Reply Last reply Reply Quote 0
                          • M
                            Michael Vincent @Michael Vincent
                            last edited by Nov 30, 2021, 9:18 PM

                            @Lycan-Thrope
                            @michael-vincent said in FunctionList Confused:

                            I think I had an epiphany about how the regex fits into the FunctionList, and would appreciate an up or down on if the understanding is correct, bearing in mind, I’m just picking up regex, the boost flavor, and learning the NPP FunctionList functionality.

                            Have you read the user manual that explains basic Function List behavior?

                            Maybe this community post is a little more detailed than the user manual?

                            Cheers.

                            L 1 Reply Last reply Nov 30, 2021, 9:48 PM Reply Quote 1
                            • P
                              PeterJones @Lycan Thrope
                              last edited by PeterJones Nov 30, 2021, 9:29 PM Nov 30, 2021, 9:29 PM

                              @lycan-thrope said in FunctionList Confused:

                              will have to be manually removed to run the regex’s

                              You have read the FAQ wrong.

                              the syntax

                              1. `^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)`
                              

                              renders as

                              1. ^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)

                              which you can then just copy/paste the red text.

                              Please note that what you had,

                              1: ‘^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)’
                              

                              is not the same as

                              1: `^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)`
                              

                              which renders correctly as
                              1: ^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)

                              The ` key (often called “backtick” or “grave”) is the one that on a standard US keyboard is the same key as ~, but unshifted . You are typing the single-quote / apostrophe key ' (which on a US keyboard, is the unshifted version of ", the double quote). The single-quote in the forum is then being rendered as ‘smart single quotes’ ‘...’ in your post.

                              The Formatting Forum Posts gives you plenty of copies of the ` character, which you can copy/paste if you are unable to type the character on your keyboard.

                              L 1 Reply Last reply Nov 30, 2021, 9:34 PM Reply Quote 1
                              • L
                                Lycan Thrope @PeterJones
                                last edited by Nov 30, 2021, 9:34 PM

                                @peterjones said in FunctionList Confused:

                                `

                                Peter, thanks for clarifying that for me. I just want to show you why I used that character, besides not realizing where the backtick key was. In this screenshot of your message to me, as well as in the documentation FAQ for posting, I highlighted the character to see if these old eyes could make out what it was, and as you see, the little pop up that “says” what it is, is mistaken. :) Thanks for fixing that for me. :) Screenshot of what I saw:
                                Peterbacktick.PNG

                                So really, thanks for clearing that up for me. :)

                                Lee

                                L P 2 Replies Last reply Nov 30, 2021, 9:38 PM Reply Quote 0
                                • L
                                  Lycan Thrope @Lycan Thrope
                                  last edited by Nov 30, 2021, 9:38 PM

                                  @lycan-thrope
                                  So…let’s try this again, so I can see if it work right, with just the backtick.
                                  7: (?:class)[\t\x20]*(?'Classname'\w+)([\t\x20]*?\(\w*(,[\t\x20]?\w*)*?\))?(([\t(\x20]of)[\t\x20](?'Superclass'\w*)(\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20](?'Custom'custom))?([\t\x20]from[\t\x20](:\w*:\w*\.\w*|"\w*\.\w*"))?)?

                                  Woohoo…the preview shows it working, but as per the FAQ let’s see if it does it without all the backticking in side the regex on the multiline brackets. :)

                                  Lee

                                  L 1 Reply Last reply Nov 30, 2021, 9:41 PM Reply Quote 0
                                  • L
                                    Lycan Thrope @Lycan Thrope
                                    last edited by Nov 30, 2021, 9:41 PM

                                    @lycan-thrope One more time…with the whole thing. :)

                                    These are the regexs I built leading up to the final ones (4,5,6,7) that work with the complete line in some or fashion. Still need to watch the word wrap.

                                    1: ^(class)\s([a-zA-Z0-9]+)\s([a-zA-Z0-9+]+)\s([a-zA-Z0-9+]+)
                                    2: ^(class)\s(\w*)\s(\w*)\s(\w*)
                                    3: (?x)^[\t\x20]*(class)[\t\x20]+((\w+)|(\w+)[\x20]+(\((\w+)(,\w+)?\))?)?((\w+|[^\r\n]*)[\t\x20]+)*(custom)?
                                    4: (class)[\t\x20]*(\w+)([\t\x20]*?\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20]of[\t\x20]\w*(\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20]custom)?([\t\x20]from[\t\x20](:\w*:\w*\.\w*|"\w*\.\w*"))?)?
                                    5: (class)[\t\x20]*(\w+)([\t\x20]*?\(\w*(,[\t\x20]?\w*)*?\))?(([\t(\x20]of)[\t\x20]\w*(\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20]custom)?([\t\x20]from[\t\x20](:\w*:\w*\.\w*|"\w*\.\w*"))?)?
                                    6: (class)[\t\x20]*(\w+)([\t\x20]*?\(\w*(,[\t\x20]?\w*)*?\))?([\t(\x20]of[\t\x20](\w*))?(\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20]custom)?([\t\x20]from[\t\x20]((:\w*:\w*\.\w*)|("\w*\.\w*")))?
                                    7: (?:class)[\t\x20]*(?'Classname'\w+)([\t\x20]*?\(\w*(,[\t\x20]?\w*)*?\))?(([\t(\x20]of)[\t\x20](?'Superclass'\w*)(\(\w*(,[\t\x20]?\w*)*?\))?([\t\x20](?'Custom'custom))?([\t\x20]from[\t\x20](:\w*:\w*\.\w*|"\w*\.\w*"))?)?

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      PeterJones @Lycan Thrope
                                      last edited by Nov 30, 2021, 9:47 PM

                                      @lycan-thrope said in FunctionList Confused:

                                      I highlighted the character to see if these old eyes could make out what it was, and as you see, the little pop up that “says” what it is, is mistaken.

                                      The word “QUOTE” shows up like that if you select any text:
                                      06af42e0-fa33-4141-8b23-02bd2b5ae55b-image.png

                                      It is not telling you what character that is. It is the Forum asking you if you would like to use the selected text as the QUOTE portion in your reply.

                                      If you have multiple lines of example text, use the LITERAL TEXT BOXES , not the RED TYPEWRITER TEXT.

                                      But this is getting off the point, and you have shown your regexes. So unless you have more about FunctionList, I think we’ve spent enough on forum formatting.

                                      L 1 Reply Last reply Nov 30, 2021, 9:50 PM Reply Quote 1
                                      • L
                                        Lycan Thrope @Michael Vincent
                                        last edited by Nov 30, 2021, 9:48 PM

                                        @michael-vincent
                                        Thanks Michael, that’s where some of the understanding is coming from, with the ability to read english via the Java.xml versus the cpp.xml, but since I’m not completely familar with java’s syntax and variations, it’s still clear as mud, but getting clearer. :-)

                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          Lycan Thrope @PeterJones
                                          last edited by Nov 30, 2021, 9:50 PM

                                          @peterjones
                                          I do appreciate your help, in this regard. I’ve been around awhile, but have to admit, posting in here, is a little different that what I’m used to, even after reading the FAQ…thanks for that clarification, though. Hate to look dumber than I am. :)

                                          Lee

                                          L 1 Reply Last reply Dec 1, 2021, 7:48 AM Reply Quote 0
                                          14 out of 82
                                          • First post
                                            14/82
                                            Last post
                                          The Community of users of the Notepad++ text editor.
                                          Powered by NodeBB | Contributors