Community
    • Login

    scripting NotePad++ configurations?

    Scheduled Pinned Locked Moved General Discussion
    5 Posts 2 Posters 2.6k 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.
    • Charles KelsoeC
      Charles Kelsoe
      last edited by

      Is there a way to script NotePad++ configurations? For example to add “.config” to the XML parser, add “.log” to text parser, etc?

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

        I am not sure “scripting” is really the word you want.

        Based on your “for example”, you seem to want to associate the “.config” extension with the XML language parser, and associate the “.log” extension with the normaltext language parser.

        Settings > Style Configurator

        • select XML in the left Language: column.
        • Under User Ext.:, add config (no dot)

        I don’t think you need to do anything special to associate “.log” with normal text (because any extension that matches nothing will be interpreted as plain text) – unless you have a language parser that already handles “.log”: when you open a filename.log, what shows up in the lower left on the status bar; if it’s “Normal text file”, then it’s already using the non-parser of normal text. If it says “User Defined File – blah”, then look under Language > Define Your Language..., and select the appropriate User Language and check the list of Ext.:. If NPP’s status bar on the lower left says something else, look in the Style Configurator for a language type that matches that name, and see if it associates itself with “.log” in either the Default ext.: or User ext.:

        1 Reply Last reply Reply Quote 2
        • Charles KelsoeC
          Charles Kelsoe
          last edited by

          I understand how to do it through the UI. I want to script that same result via a PowerShell, etc. as it needs set on many systems.

          1 Reply Last reply Reply Quote 1
          • PeterJonesP
            PeterJones
            last edited by

            Ah, that makes sense.

            The Language lexer associations are stored in stylers.xml – this is found in %AppData%\Notepad++\ for normal installations, or in the same directory as notepad++.exe for portable or “local config” versions.

            For example, I have the User Ext.: for XML set to include .officeUI files:

                <LexerType name="xml" desc="XML" ext="officeUI">
                    <WordsStyle name="XMLSTART" styleID="12" fgColor="FF0000" bgColor="FFFF00" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="XMLEND" styleID="13" fgColor="FF0000" bgColor="FFFF00" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="DEFAULT" styleID="0" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                    <WordsStyle name="COMMENT" styleID="9" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="NUMBER" styleID="5" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="DOUBLESTRING" styleID="6" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                    <WordsStyle name="SINGLESTRING" styleID="7" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
                    <WordsStyle name="TAG" styleID="1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="TAGEND" styleID="11" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="TAGUNKNOWN" styleID="2" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="ATTRIBUTE" styleID="3" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="ATTRIBUTEUNKNOWN" styleID="4" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="SGMLDEFAULT" styleID="21" fgColor="000000" bgColor="A6CAF0" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="CDATA" styleID="17" fgColor="FF8000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
                    <WordsStyle name="ENTITY" styleID="10" fgColor="000000" bgColor="FEFDE0" fontName="" fontStyle="2" fontSize="" />
                </LexerType>
            

            The critical point is the ext="officeUI" attribute in the opening <LexerType ...> tag.
            In my stylers.xml, any language that doesn’t have user-defined extensions will show up with ext="".

            You could either copy the whole stylers.xml from your known config, or you could set up some sort of batch/remote to manually edit the ext attribute in the appropriate <LexerType ...> tag(s). (For example, by running sed or equivalent on the remote files.)

            I’m not a remote-controlling-other-computers-from-powershell person, but hopefully this will get you moving in the right direction.

            1 Reply Last reply Reply Quote 0
            • Charles KelsoeC
              Charles Kelsoe
              last edited by

              Thanks. I will explore this option.

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