Community
    • Login

    UDL: Suffix Mode

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    54 Posts 8 Posters 25.5k Views 1 Watching
    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.
    • EkopalypseE Offline
      Ekopalypse @Alexander Seidel
      last edited by

      @Alexander-Seidel

      I will follow up on this later today from at home as I’m finished with work today. YEAH :-D

      1 Reply Last reply Reply Quote 0
      • EkopalypseE Offline
        Ekopalypse @Alexander Seidel
        last edited by

        @Alexander-Seidel

        Hi Alexander, concerning number 2 I would add

        self.excluded_styles = [1, 2]  # SCE_USER_STYLE_COMMENT=1  SCE_USER_STYLE_COMMENTLINE=2
        

        to the init function like

                def __init__(self):
                    editor.callbackSync(self.on_updateui, [SCINTILLANOTIFICATION.UPDATEUI])
                    notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
                    notepad.callback(self.on_bufferactivated, [NOTIFICATION.BUFFERACTIVATED])
                    self.excluded_styles = [1, 2]  # SCE_USER_STYLE_COMMENT=1  SCE_USER_STYLE_COMMENTLINE=2
                    self.__is_lexer_doc = False
                    self.lexer_name = None
                    self.npp_hwnd = user32.FindWindowW(u'Notepad++', None)
                    self.configure()
        

        and modify the if clause line in paint_it function to

        if (pos >= 0) and (editor.getStyleAt(pos) not in self.excluded_styles):
        

        that would skip painting if the matched position is in a comment line or block

        Regarding the first point, no, unfortunately scintilla doesn’t allow to modify
        the font attributes via an indicator other than the foreground color.
        But I’m confused why it is italic at all, in UDL you must have it set explicitly, didn’t you?

        1 Reply Last reply Reply Quote 0
        • Alexander SeidelA Offline
          Alexander Seidel
          last edited by Alexander Seidel

          Thanks for the quick work, Eko!
          Sadly, the code doesn’t work :(

          Now, I checked the conditional function, and noticed that getStyleAt returns 0 if the pos is out of bounds, but weirdly, when I use this line:

          if (pos >= 0) and (editor.getStyleAt(pos) == 0):
          

          the code works and does so just as I intended. Comment lines are not changed, but normal lines are.

          d6e787c3-dde6-403d-892e-79fbdb564fdb-image.png

          I really don’t get why it does, because I expected it to only return 0 in case of an error, and not for normal lines in the text, but apparently that’s how it works.

          Concerning the italic: Yes, I set a lot of variably type names like int and double to italic, but the language I’m programming in also has int(“4”) and string(4) as functions at the same time.

          EkopalypseE 2 Replies Last reply Reply Quote 0
          • EkopalypseE Offline
            Ekopalypse @Alexander Seidel
            last edited by Ekopalypse

            @Alexander-Seidel

            sorry, Hochmut kommt vor dem Fall, I didn’t test it otherwise I would have
            seen that paint_it is a staticmethod and as such it has no access to self object.

            Remove the @staticmethod decorator and add self to be the first parameter
            to paint_it like this

            
                    def paint_it(self, color, pos, length):
                        if (pos >= 0) and (editor.getStyleAt(pos) not in self.excluded_styles):
                            editor.setIndicatorCurrent(0)
                            editor.setIndicatorValue(color)
                            editor.indicatorFillRange(pos, length)
            

            If you open the console window while having the old version running,
            you should see that it throws an error - so it didn’t do anything at all.

            getStyleAt returns the style id and you compare with style 0, so it works as long as the part to be colored is currently colored with the style 0.

            Which means, your code is good as well if you are only interested
            in modifying parts of code which are used by style 0.

            1 Reply Last reply Reply Quote 1
            • EkopalypseE Offline
              Ekopalypse @Alexander Seidel
              last edited by

              @Alexander-Seidel

              regarding the italic issue, what about using a delimiter with
              open int( and closing ) and setting it color to the default color?

              1 Reply Last reply Reply Quote 0
              • Alexander SeidelA Offline
                Alexander Seidel
                last edited by

                @Ekopalypse said in UDL: Suffix Mode:

                If

                I just used this line now:
                if pos >= 0 and (editor.getStyleAt(pos) not in [1, 2]):

                and nice tip for the italics! That worked perfectly. I first tried to just make a keyword int(, but that didn’t work.

                EkopalypseE 1 Reply Last reply Reply Quote 2
                • EkopalypseE Offline
                  Ekopalypse @Alexander Seidel
                  last edited by

                  @Alexander-Seidel

                  or like this yes :-) Many roads to Rome I guess :-D

                  1 Reply Last reply Reply Quote 0
                  • bruhB Offline
                    bruh
                    last edited by

                    self.regexes[(0, self.rgb(79, 175, 239) | SC_INDICVALUEBIT)] = (r’fn[A-Za-z0-9_]+?$|([A-Za-z0-9_]+?$)', 1)

                    Will adding ^\w+.(gif|png|jpg|jpeg)$ instead of r’fn[A-Za-z0-9_]+?$|([A-Za-z0-9_]+?$)’ make it work on .gif .png .jpg and .jpeg suffixes?

                    EkopalypseE 1 Reply Last reply Reply Quote 1
                    • EkopalypseE Offline
                      Ekopalypse @bruh
                      last edited by

                      @bruh said in UDL: Suffix Mode:

                      ^\w+.(gif|png|jpg|jpeg)$

                      you mean for highlighting?

                      bruhB 3 Replies Last reply Reply Quote 0
                      • bruhB Offline
                        bruh @Ekopalypse
                        last edited by

                        @Ekopalypse Yeah highlighting the entire word thst contains .gif or the others

                        1 Reply Last reply Reply Quote 1
                        • bruhB Offline
                          bruh
                          last edited by

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • bruhB Offline
                            bruh @Ekopalypse
                            last edited by

                            This post is deleted!
                            1 Reply Last reply Reply Quote 0
                            • bruhB Offline
                              bruh @Ekopalypse
                              last edited by

                              @Ekopalypse Nvm yet again i just added everything ie [0-9a-zA-Z_/\-.|+-#$!"%&()=?*@'~\ˇ^\˘\°;:,{}\˛`\˙\´\¨\¸\ß\Ł\ł\¤\×\÷\č\ć\ž\đ\p\š\€\§] and it works xD sry for the spam

                              EkopalypseE 1 Reply Last reply Reply Quote 1
                              • EkopalypseE Offline
                                Ekopalypse @bruh
                                last edited by

                                @bruh

                                … and it works

                                Great, if anything is unclear or I can do, let me know.

                                1 Reply Last reply Reply Quote 1

                                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                With your input, this post could be even better 💗

                                Register Login
                                • First post
                                  Last post
                                The Community of users of the Notepad++ text editor.
                                Powered by NodeBB | Contributors