Community
    • Login

    Custom XML syntax Highlighting? Custom XML UDL?

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    14 Posts 4 Posters 1.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.
    • LogicSequenceL
      LogicSequence @Alan Kilborn
      last edited by

      @alan-kilborn I’ve got the plugin installed, but i don’t know what it’s asking me to do whatsoever.

      PeterJonesP 1 Reply Last reply Reply Quote 0
      • PeterJonesP
        PeterJones @LogicSequence
        last edited by PeterJones

        @logicsequence ,

        I had only previously used Eko’s pythonscript-based version. But since you asked so nice (well, actually, because I was curious as to how the interface would be), I downloaded it, and within about 10 minutes was able to get it to:

        61a68293-b775-497a-9383-cdfba9f7951f-image.png

        At the end of your EnhanceAnyLexerConfig.ini, add:

        [xml]
        16711935 = \b(KeywordLists|WordsStyle)\b
        

        Amazingly, the plugin sees that the file has changed, and applies the changes instantly.

        In case you were curious as to my figuring-out procedure, I took the example python from that file:

        ;[python]
        ;1077960 = \b(cls|self)\b
        ;excluded_styles = 1,3,4,6,7,12,16,17,18,19
        

        Uncommented (removed the ;) and changed the header to [xml] instead of [python]. I then created some dummy tags in my example file that were <cls> and <self>, and saw they were a mustardy color. So that implies it was actually doing something. Then I added KeywordLists to the regex, so it said ` \b(cls|self|KeywordLists)\b, and now that tag is also mustard. Eureka!

        To change the color, I know that colors are usually 0xRRGGBB or 0xBBGGRR (and I knew that Notepad++ used the latter) – it would be nice if @Ekopalypse would add a note about the color values in the example ini. So I saw your color was 0xFF00FF. (which then doesn’t matter which is red and which is blue). I converted that to decimal, which is 16711935, and replaced that. It changed to purply text! WooHoo!

        I then added WordsStyle after a new | and got rid of the cls|self|, yielding the config file section I showed originally.

        The excluded styles will help you avoid coloring those same terms in unwanted lexer situations, but that’s not critical from the get-go.

        So, that’s working. Expanding to more keywords is up to you. For a beta plugin, that was easy enough.

        ( @Ekopalypse , my other suggestion would be to allow #BBGGRR as the color value as well. But great conversion from the original pythonscript, BTW.)

        LogicSequenceL 2 Replies Last reply Reply Quote 4
        • LogicSequenceL
          LogicSequence @PeterJones
          last edited by

          @peterjones You’re amazing and i love you, that’s exactly what i needed to know. The hex to decimal thing threw me off too, but i can just google a converter. Looks like this will do exactly what i want. I am in all your debts. Thank you @alan-kilborn for the recommendation as well!

          1 Reply Last reply Reply Quote 1
          • LogicSequenceL
            LogicSequence @PeterJones
            last edited by LogicSequence

            @peterjones Just noticed, btw, that when converting from HEX color values to decimal values you need to invert the red and blue value before putting into a converter to get the color to display properly (i think this is probably a bug?).

            So if you want, say, darkish purple, it would be a HEX value of #80 00 ff, but if you convert that value to DEC it won’t show properly. You have to input #ff 00 80 to get it to work. Just FYI for anyone wondering why colors aren’t working as they might have expected.

            Alan KilbornA 1 Reply Last reply Reply Quote 0
            • Alan KilbornA
              Alan Kilborn @LogicSequence
              last edited by

              @logicsequence said in Custom XML syntax Highlighting? Custom XML UDL?:

              you need to invert the red and blue value before putting into a converter to get the color to display properly (i think this is probably a bug?

              No bug, really. It originates with how Windows decided to handle colors, i.e., in the COLORREF definition, see HERE.

              1 Reply Last reply Reply Quote 4
              • EkopalypseE
                Ekopalypse
                last edited by

                Sorry I’m late to the party, and thank you for the interest in this plugin. Hex notation of a colour is also supported, I’ll make sure to update the sample configuration to make this clear.
                As for the #bbccff notation, I think this should be easy to do, as for me this means I replace # with 0x and the code remains the same.

                @LogicSequence - can I ask you how I can improve the documentation in the config file to make it easier to understand for starters?

                1 Reply Last reply Reply Quote 2
                • EkopalypseE
                  Ekopalypse
                  last edited by

                  A new version v.0.2.0 was created which added the #color notation and made it “interactive”.
                  Unfortunately, the “#” is a comment character that makes the rest of the line look like it is inactive, which of course it is not.

                  319c0493-ff27-40a1-814a-f378d0bc532f-image.png

                  PeterJonesP 1 Reply Last reply Reply Quote 4
                  • PeterJonesP
                    PeterJones @Ekopalypse
                    last edited by

                    @ekopalypse

                    Thanks. I don’t know why I didn’t try 0x when # didn’t work.

                    But yes, having that in the documentation is a definite improvement.

                    The other thing I would suggest in the comments would be to phrase it:

                    ; A colour is a number in the range 0 - 16777215.
                    ; The notation is either pure digits or a hex notation starting with 0x or #, 
                    ; such as 0xff00ff or #ff00ff.
                    ; Please note: 
                    ; * red goes in the lowest byte (0x0000FF)
                    ; * green goes in the center byte (0x00FF00)
                    ; * blue goes in the biggest byte (0xFF0000) 
                    ; * this BGR order might conflict with your expectation of RGB order.
                    ; * see Microsoft COLORREF documentation https://docs.microsoft.com/en-us/windows/win32/gdi/colorref
                    
                    EkopalypseE 1 Reply Last reply Reply Quote 4
                    • EkopalypseE
                      Ekopalypse @PeterJones
                      last edited by

                      @peterjones
                      Thank you - the repo is already updated and the next version will include it.

                      PeterJonesP 1 Reply Last reply Reply Quote 2
                      • PeterJonesP
                        PeterJones @Ekopalypse
                        last edited by

                        To borrow an idiom from GitHub: 🚀

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