Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save magicstone1412/ad451761b79160b661fa80faa179d3cd to your computer and use it in GitHub Desktop.
Save magicstone1412/ad451761b79160b661fa80faa179d3cd to your computer and use it in GitHub Desktop.
  1. Install Notepad++ (check "set as default HTML editor" to replace Notepad in IE).

  2. Run Notepad++, update its plugins, and install "NppExec" via Plugins, Plugin Manager.

  3. Download DBGpPlugin . Place in C:\Program Files (x86)\Notepad++\plugins\DBGpPlugin

  4. Use this link to download a modified version of the Komodo Remote Debugging Package. Place in plugin directory. (Unmodified Komodo package does not work with DBGpPlugin) Also contains DBGpPlugin

  5. Enter these scripts for Python debugging:

    Press F6 to create a NppExec Execute script, save as "Run Python":

    cd "$(CURRENT_DIRECTORY)"
    py.exe "$(FILE_NAME)"
    

    To mark and link (by double-click) errors, press Shift+F6 to add active Console Output Filters, with Red set to FF:

    *File "%FILE%", line %LINE%,*
    
  6. And context-sensitive help using Shift+F1 (because F1 alone now shows About):

    <Command name="Get Python help" Ctrl="no" Alt="no" Shift="yes" Key="112">https://www.google.nl/#q=python+$(CURRENT_WORD)</Command>
    

    in %appdata%\Notepad++\shortcuts.xml (use a different editor for this to work)

  7. Add style checking using PyLint (pip install pylint):

    Press F6 to create a NppExec Execute script, save as "Run PyLint":

    C:\Python27\Scripts\pylint.exe --reports=n -f parseable "$(FULL_CURRENT_PATH)"
    

    To mark and link (by double-click) errors, press Shift+F6 to add active Console Output Filters, with Red set to FF:

    %FILE%:%LINE%:*
    
  8. Better Python Standard Library Autocompletion for Notepad++

  9. Configure DBGp:

    • Plugins -> DBGp -> Config...
      • Check "Bypass all mapping (local windows setup)"
      • Check "Refresh local context on every step"
      • Check "Refresh global context on every step"
      • Check "Break at first line when debugging starts"
  10. Enter these scripts for Python DBGp debugging:

    Press F6 to create a NppExec Execute script, save as "python2 debug":

    NPP_SAVE
    cd "$(CURRENT_DIRECTORY)"
    NPP_MENUCOMMAND Plugins\DBGp\Debugger
    INPUTBOX "Command Line Arguments: "
    py -2 "$(NPP_DIRECTORY)\plugins\PythonDebug\pydbgp.py" -d 127.0.0.1:9000 "$(FILE_NAME)" $(INPUT)
    

    Press F6 to create a NppExec Execute script, save as "python3 debug":

    NPP_SAVE
    cd "$(CURRENT_DIRECTORY)"
    NPP_MENUCOMMAND Plugins\DBGp\Debugger
    INPUTBOX "Command Line Arguments: "
    py -3 "$(NPP_DIRECTORY)\plugins\PythonDebug\py3_dbgp.py" -d 127.0.0.1:9000 "$(FILE_NAME)" $(INPUT)
    
  11. If you have a dark theme, use this to make tool tips dark:

    Press F6 to create a NppExec Execute script, save as "SetCallTipStyle":

    NPP_CONSOLE -
    // use CALLTIPSTYLE instead DEFAULT
    SCI_SENDMSG SCI_CALLTIPUSESTYLE 0
    // background to black ( 0 )
    SCI_SENDMSG SCI_CALLTIPSETBACK 0xa4a4a4
    // foreground to white ( 0xffffff )
    SCI_SENDMSG SCI_CALLTIPSETFORE 0xffffff
    NPP_CONSOLE +
    

    Then, navigate to Plugins -> NppExec -> Advanced Options offers the option Execute this script when Notepad++ starts on the upper right area of the config dialog. Select the script name under which you saved the line (e.g. SetCallTipStlye)

  12. Not related to python. Replace perl section in functionList.xml with:

        <parser
            displayName="PERL"
            id         ="perl_function"
        >
            <function
                mainExpr="^\s*(?&lt;!#)\s*sub\s+\w+\s*\(?[^\)\(]*?\)?[\n\s]*\{"
            >
                <functionName>
                    <nameExpr expr="(sub\s+)?\K\w+" />
                </functionName>
                <className>
                    <nameExpr expr="\w+(?=\s*::)" />
                </className>
            </function>
        </parser>
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment