• Login
Community
  • Login

How to add autocomplete schema to NPP distro?

Scheduled Pinned Locked Moved General Discussion
11 Posts 4 Posters 11.5k 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.
  • S
    swegmike
    last edited by Feb 3, 2023, 6:02 PM

    I have written an NPP autocomplete schema xsd file that will validate the structure of any autocomplete xml files language.

    How to upload the xsd file for others to use and confirm that it can find autocomplete xml errors using NPP’s xmltools during validation and upon store of the xml file? Perhaps, it then can be made part of the NPP distro.

    P M 2 Replies Last reply Feb 3, 2023, 6:16 PM Reply Quote 1
    • P
      PeterJones @swegmike
      last edited by PeterJones Feb 3, 2023, 6:18 PM Feb 3, 2023, 6:16 PM

      @swegmike ,

      There isn’t really a “standard” place for such things. And I doubt the developer would want to bundle that with Notepad++ itself.

      But since shared auto-completion files (for UDLs) can go in the UDL Repository , and since I am the primary decision maker for that repo, I think it could probably go there.

      In fact, I recently did a bare-bones schema for autocompletion – it doesn’t check everything, but does make sure that it at least looks like an autocompletion file and not something else, so that new submissions will be validated before they are merged into the UDL repo.

      If you submit a PR to that schema file, and the tests run and don’t call all the existing UDL auto-completion files “bad”, then I’d accept and merge it, so it could be stored there. And after I tried it out in combination with XMLTools and some of Notepad++'s default auto-completion files, I would probably even add a link from the AutoCompletion part of the User Manual to that file, with the recommendation that auto-completion developers would be well-advised to use XMLTools and that schema when developing their own auto-completion files.

      S 1 Reply Last reply Feb 3, 2023, 7:16 PM Reply Quote 3
      • S
        swegmike @PeterJones
        last edited by Feb 3, 2023, 7:16 PM

        @PeterJones Ok, I’ll start the process.
        The xsd schema file has taken about two months to develop and not knowing anything from the start how to do it. In fact, I have two variations, but plan only submitting the one that is more documented.

        Your weblink to this xsd file will also need to specify what has to go into ones autocomplete language xml file to via a few attributes.

        As for where to put it, it can be put in NPP’s autocomplete directory with the rest of the autocomplete xml language files, then each autocomplete xml file can point to that directory to be validated when they are modified. However, one can put it in any directory too, but the xml file will need to be modified to know where to look.

        Currently it works with the noNamespaceSchemaLocation

        I have the entries for schemaLocation commented out until someone knows why it doesn’t work properly.
        I realize that autocomplete is unqualified since no prefix is specified, but one should be able to point to a default namespace without a prefix qualifier during validation using this attribute.

        I have comments in the xsd, and my autocomplete DXL xml file to help others. The DXL file is validated against the noNamespaceSchemaLocation attribute and xsd and works.

        This schema was done since I have over 1500 functions and it was a pain to find the errors. Thus the xml was tested by purposely breaking things to find them and determine if the schema was working.
        XML tools will get you to the line in error one at a time starting with the first error. Also the enable autovalidation when saving was also tested and works as expected.

        I do have a prototype DTD too that would validate this xsd schema, but NPP and plugins don’t seem to do DTDs.

        As a side note, I used liquid studio trial to help me thru this process along with help on stackoverflow too.

        S 1 Reply Last reply Feb 3, 2023, 7:22 PM Reply Quote 2
        • M
          Michael Vincent @swegmike
          last edited by Feb 3, 2023, 7:21 PM

          @swegmike said in How to add autocomplete schema to NPP distro?:

          I have written an NPP autocomplete schema xsd file

          Me too! I have:

          PS MVINCENT C:\usr\bin\npp64 > ls -alR | grep -E "(\.xsd|\.dtd)"
          -rw-r----a  1 MVINCENT             586 Jan  5 21:03 langs.model.dtd
          -rw-r----a  1 MVINCENT            1711 Jan  5 20:59 langs.model.xsd
          -rw-r----a  1 MVINCENT            1062 Jan  5 21:15 stylers.model.dtd
          -rw-r----a  1 MVINCENT            3311 Jan  5 21:08 stylers.model.xsd
          -rw-r----a  1 MVINCENT            865 Jan  5 21:03 autoCompletion.dtd
          -rw-r----a  1 MVINCENT           2644 Jan  6 07:27 autoCompletion.xsd
          -rw-r----a  1 MVINCENT           958 Jan  6 14:53 functionList.dtd
          -rw-r----a  1 MVINCENT          5844 Jan  6 07:30 functionList.xsd
          -rw-r----a  1 MVINCENT          1456 Jan 10 13:42 userDefineLangs.dtd
          -rw-r----a  1 MVINCENT          4630 Jan 10 13:42 userDefineLangs.xsd
          

          and a batch file to automate running xmllint with these files against all the Notepad++ XML files.

          Cheers.

          S 1 Reply Last reply Feb 3, 2023, 7:25 PM Reply Quote 1
          • S
            swegmike @swegmike
            last edited by Feb 3, 2023, 7:22 PM

            @PeterJones

            I have your file open on github, but don’t see a PR button, but only give feedback.

            Since my xsd is bigger than yours, since it validatres more, I’d like to respond to your file by just uploading and attaching my xsd files post.

            A P 2 Replies Last reply Feb 3, 2023, 7:24 PM Reply Quote 0
            • A
              Alan Kilborn @swegmike
              last edited by Feb 3, 2023, 7:24 PM

              @swegmike said in How to add autocomplete schema to NPP distro?:

              I have your file open on github, but don’t see a PR button

              Did you fork the repo, clone it, create a branch, add, commit, and push to get a link produced that offers to submit a PR against the master?

              1 Reply Last reply Reply Quote 0
              • S
                swegmike @Michael Vincent
                last edited by Feb 3, 2023, 7:25 PM

                @Michael-Vincent
                Great that you have the autocomplete dtd.
                It would be interesting to compare with mine.

                Perhaps they can be uploaded too to github so others can take a look.

                Question: for the autocomplete.xsd, did you get schemaLocation to work although autocomplete doesn’t use prefix qualifiers?

                M 1 Reply Last reply Feb 3, 2023, 7:29 PM Reply Quote 0
                • P
                  PeterJones @swegmike
                  last edited by Feb 3, 2023, 7:25 PM

                  @swegmike said in How to add autocomplete schema to NPP distro?:

                  I have your file open on github, but don’t see a PR button, but only give feedback

                  The file is part of a bigger repository; generally, when submitting a PR, you make a fork of the repo, make the changes, and then start a PR. But if you’d rather, just create a new issue in that repo, and attach the XSD to the issue.

                  1 Reply Last reply Reply Quote 0
                  • M
                    Michael Vincent @swegmike
                    last edited by Feb 3, 2023, 7:29 PM

                    @swegmike said in How to add autocomplete schema to NPP distro?:

                    Question: for the autocomplete.xsd, did you get schemaLocation to work although autocomplete doesn’t use prefix qualifiers?

                    No. Just pasted an autocomplete file into an XSD generator and then edited the output to account for the corner cases.

                    Same for the DTD files.

                    Cheers.

                    S 2 Replies Last reply Feb 3, 2023, 7:47 PM Reply Quote 0
                    • S
                      swegmike @Michael Vincent
                      last edited by Feb 3, 2023, 7:47 PM

                      @Michael-Vincent You may want to upload your files as issues so others can take a look at them too.

                      @PeterJones I’ve uploaded my xsd as an issue and specified what has to go into the autocomplete xml file NotePadPlus tag before trying to validate it.

                      https://github.com/notepad-plus-plus/userDefinedLanguages/issues/154

                      Note: github didn’t support xsd file extensions, so I had to rename my file as txt for me to be able to drag and drop it.

                      1 Reply Last reply Reply Quote 3
                      • S
                        swegmike @Michael Vincent
                        last edited by Feb 3, 2023, 8:13 PM

                        @Michael-Vincent Check my reply to your post, and follow the link, @PeterJones at that links said he’ll take a look at all your xsd and dtd files this weekend if you repond and attach your files. Be aware that you may need to change the file extension to txt and state so in the post since the drag and drop doesn’t recognize some file extensions.

                        1 Reply Last reply Reply Quote 1
                        • P PeterJones referenced this topic on Feb 14, 2023, 9:58 PM
                        10 out of 11
                        • First post
                          10/11
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors