• Login
Community
  • Login

Negate command line options (-openFoldersAsWorkspace)

Scheduled Pinned Locked Moved General Discussion
3 Posts 3 Posters 364 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.
  • G
    Greg Teater
    last edited by Jan 23, 2020, 1:57 PM

    I have two shortcuts for np++. One includes this command line option, -openFoldersAsWorkspace, which works great. A second shortcut does not have any command line options.

    After using the -openFoldersAsWorkspace option, the view is remembered for future launches of np++. Is there an option to:

    a) not remember this option if used on the command line

    b) have a negate feature to disable an option, such as -!openFoldersAsWorkspace

    D 1 Reply Last reply Jan 25, 2020, 12:56 AM Reply Quote 3
    • P
      PeterJones
      last edited by Jan 23, 2020, 3:18 PM

      Interesting. I don’t know of a way to tell it to “not remember”, nor of a way to negate the option from the command line, though someone else might know of a way that I don’t.

      If no one can come up with a workaround for you, then you would follow this FAQ to request a feature (either the command-line negation, or the not-remember-option, or both).

      (Sorry I couldn’t be of more help.)

      1 Reply Last reply Reply Quote 0
      • D
        dinkumoil @Greg Teater
        last edited by dinkumoil Jan 25, 2020, 12:56 AM Jan 25, 2020, 12:56 AM

        @Greg-Teater

        Both of your suggestions a) and b) would require some changes to the code base of Notepad++ (will not happen in the near future, if ever).

        Thus, my suggestion is to create a desktop shortcut to a script file that changes the config file of your Notepad++ installation before running notepad++.exe. The config file is in XML format, the script has to delete the /NotepadPlus/FileBrowser XML node.

        The following is a VBScript solution. Please note: You have to change lines 19 and 20 according to your needs.

        The location of the Notepad++ config file depends on the type of installation you are running, a portable one or created by the Npp installer.

        Installed by installer: %AppData%\Notepad++\config.xml
        Portable: <Npp-Directory>\config.xml

        Save the script for example as NppLauncher.vbs and create a desktop shortcut to it. Then open the properties of the shortcut and change its target to the following command:

        wscript.exe "<Path-To-The-Script-File>" 
        

        The script forwards all received command line arguments to Notepad++.

        Option Explicit
        
        
        '-------------------------------------------------------------------------------
        'Variables declarations
        '-------------------------------------------------------------------------------
        Dim objFSO, objXmlDoc
        Dim strNppPath, strNppExePath, strConfigPath, strCfgFilePath
        Dim strNodePath, colNodes, objNode
        Dim intCnt, strArguments
        
        
        '-------------------------------------------------------------------------------
        'Create base objects
        '-------------------------------------------------------------------------------
        Set objFSO      = CreateObject("Scripting.FileSystemObject")
        Set objXmlDoc   = CreateObject("MSXml2.DOMDocument.6.0")
        
        strNppPath      = "<Path-To-Npp-Installation-Directory>"
        strConfigPath   = "<Path-To-Directory-With-Npp-Config-File>"
        strNppExePath   = objFSO.BuildPath(strNppPath, "notepad++.exe")
        strCfgFilePath  = objFSO.BuildPath(strConfigPath, "config.xml")
        strNodePath     = "/NotepadPlus/FileBrowser"
        
        
        '-------------------------------------------------------------------------------
        'Main script
        '-------------------------------------------------------------------------------
        'Open Npp XML config file
        objXmlDoc.async              = False
        objXmlDoc.validateOnParse    = False
        objXmlDoc.preserveWhiteSpace = True
        
        objXmlDoc.load(strCfgFilePath)
        
        
        'Delete XML node regarding "Folder as Workspace" feature
        Set colNodes = objXmlDoc.selectNodes(strNodePath)
        
        For Each objNode In colNodes
          Call objNode.parentNode.removeChild(objNode)
        Next
        
        
        'Save Npp XML config file
        objXmlDoc.save(strCfgFilePath)
        
        
        'Start Notepad++ with provided command line arguments
        strArguments = ""
        
        For intCnt = 0 To WScript.Arguments.Count - 1
          strArguments = strArguments & " " & Quote(WScript.Arguments(intCnt))
        Next
        
        Call Execute(strNppExePath, strArguments)
        
        
        
        '===============================================================================
        ' Surround a string with double quotes
        '===============================================================================
        
        Function Quote(ByRef strString)
          Quote = """" & strString & """"
        End Function
        
        
        '===============================================================================
        ' Run application with provided arguments
        '===============================================================================
        
        Function Execute(ByRef strApp, ByRef strArgs)
          Dim objWshShell
        
          Set objWshShell = CreateObject("WScript.Shell")
        
          Execute = objWshShell.Run(Quote(strNppExePath) & " " & strArguments, _
                                    1, _
                                    False)
        End Function
        
        1 Reply Last reply Reply Quote 2
        3 out of 3
        • First post
          3/3
          Last post
        The Community of users of the Notepad++ text editor.
        Powered by NodeBB | Contributors