Community
    • Login

    UDL: operator including ((EOL)) or \r or \n or equivalent

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    4 Posts 2 Posters 2.2k 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.
    • DIV-on-githubD
      DIV-on-github
      last edited by

      Hi, Notepad++ community.

      I was wondering whether there’s a way to include something to represent ‘end of line’ or ‘newline’ or ‘return’ in the Operators field.

      I can define simple operators consisting of one symbol, such as “*”.
      I can also define slightly more complicated operators consisting of a string (with no spaces), such as “mult”.

      But can I define an operator that includes ((EOL)) or \r or \n or an equivalent?
      For instance: “((EOL))”.

      Use case: highlighting line-continuation characters in the code. They happen to be written as backslash. Backslashes appear all through the script, but only the ones at the end of a line get interpreted (by the compiler) as line-continuation flags.
      Possibly this could be done in the code-folding part of the UDL functionality, but I already have something else specified there which has a greater priority.

      Another idea was to combine the ((EOL)) with a delimiter.
      I tried starting or ending the delimiter definition with “((EOL))”, but it doesn’t seem to work. And even if it were recognised I’d probably be forced to highlight at least one unwanted character. E.g. start with “((EOL))” and end with “any character” [whatever the command for that might be].
      Note: I should not start with “” and end with “((EOL))”. Although Notepad++ understands this correctly, it will pick up backslashes anywhere in the text, rather than only those at the end of a line. So it wouldn’t be what I want.

      Example:

      foo = "The \t backslash \t at the end of this line \
      should be highlighted, and the same with this one.\
        But \t none \t of the others should be.";
      bar = "c:\myfiles\stuff\document.text"
      set literal Don't worry about this last case\    # in which the _apparent_ continuation flag is followed by a comment.
      

      Thanks,
      DIV

      EkopalypseE 1 Reply Last reply Reply Quote 0
      • EkopalypseE
        Ekopalypse @DIV-on-github
        last edited by

        @DIV-on-github said in [UDL: operator including ((EOL)) or \r or

        any reason not to use " as a start and end tag in a delimiter and do nesting with comment line?

        fd7dbd5b-f163-46af-9976-ba242a9ec049-image.png

        1 Reply Last reply Reply Quote 2
        • DIV-on-githubD
          DIV-on-github
          last edited by

          Hello, Ekopalypse. Thanks for putting forward your suggestion.

          However, I think there’s a reason not to use anything involving literal quotation marks, because the script may also include things like the following

          >show /DATA READER/CASE:Case 123_01/BOUNDARY:BC_walls, view=/\
          VIEW:View 2
          
          HARDCOPY:
            Antialiasing = On
            Hardcopy Filename = O:/123/305/\
          subdirectory/abc/123_01_walls.png
            White Background = Off
          END
          DATA READER:
            CASE:Case 123_01
              BOUNDARY:BC_walls
                Colour = 1, 0.5, 0.5
                Draw Faces = On
                Draw Lines = Off
                Instancing Transform = /DEFAULT INSTANCE TRANSFORM:Default Transform
                Specular Lighting = On
                Transparency = 0.0
                OBJECT VIEW TRANSFORM:
                  Apply Translation = Off
                  Scale Vector = 1 , 1 , 1
                END
              END
            END
          END
          

          You can see that there are no (explicit) quotations above.
          [BTW, in case it’s still unclear, this second example contains precisely two backslashes that serve to flag continuation of the line.]

          When I described the backslashes as “line-continuation characters”, I did not intend to imply that they only have that function for quotations. Certainly the first example I gave contained a quotation, but that was merely one instance of what I described in the text.

          Also, it is not my intention to highlight the entire line. (Perhaps you had thought it was? At least, there is no distinct highlighting of the final backslashes in your screenshot.) My intention is to highlight only the line-continuation characters themselves (i.e. the EOL-preceding backslashes).

          —DIV

          EkopalypseE 1 Reply Last reply Reply Quote 1
          • EkopalypseE
            Ekopalypse @DIV-on-github
            last edited by

            @DIV-on-github

            I don’t think it can be done with builtin functionality as long as you cannot
            ensure that the backslash is not glued to other chars.
            The only other possibility I see is to use a script like this one with a regex like \\(?=\s) .

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