• Making a new release...

    Humour
    3
    2 Votes
    3 Posts
    49 Views
    donhoD

    @Terry-R said in Making a new release...:

    Not sure that is a good move. Hasn’t religion and science been in conflict for centuries? I mean science is all about the observable and the ability to revise based on new data, and religion is based on faith and is set in stone (unmovable).

    Galileo was found guilty of heresy and had to recant his concept of heliocentrism. Hope you don’t suffer the same indignity.

    Me too I’m not sure it’s a good move either, but I think it’s a good joke :)
    Come on, an atheist can appreciate a church, or any kind of religious temple - not because they approve of the blind faith, but because they admire humanity’s ability to build such magnificent structure inspired by belief.

  • autoupdater and connection temp.sh

    Security
    9
    0 Votes
    9 Posts
    2k Views
    donhoD

    @John-Smith-4

    I see in v8.8.8 release there was an issue addressed with WinGup. Could you elaborate what caused this behavior?

    Unfortunately I can’t provide more facts than what we already know.
    We are not aware of any confirmed exploitation of this vulnerability in the wild.
    The fix in v8.8.8 is the best I could do to address the issue of WinGUp being hijacked.

  • 0 Votes
    5 Posts
    334 Views
    C

    after a look at jn-npp-plugin on github it seems Win32 API is not available in win x64 and i didn’t find other way to use openfiledialog…
    i am looking at python plugin now .

    thanks for your help

  • Notepad++ 8.8.8 release

    Pinned Announcements
    3
    0 Votes
    3 Posts
    427 Views
    Rolf WittR

    @MelchiorGaspar

    Looks like a Windows 11 bug. When an installer calls regsrv32.exe, dllhost.exe crashes. This also happens with other installers. However, I don’t know where to report this error to Microsoft.
    The ‘good news’ is that apart from the extended installation time, there don’t seem to be any other consequences.

  • Scripts to align text

    Notepad++ & Plugin Development
    4
    3 Votes
    4 Posts
    2k Views
    sound-fxS

    The following code supports PythonScript 3.0.23 as well as earlier versions of PythonScript 3.x.

    #------------------------------------------------------------------------ # If the character specified in the current selection is a white space, # then prompt the user to enter the alignment character (or characters), # using this character as the initial default. #------------------------------------------------------------------------ default_align_char = ',' from enum import Enum class PaddingSide(Enum): LEFT = 0 RIGHT = 1 def align_selected_text(max_align_char_count = None, padding_side = PaddingSide.LEFT): """Insert padding into the lines in the selection, as needed, to align up to max_align_char_count instances of a specific character or string of characters The default is to align all instances of the specific character. At present, the alignment character is taken as the character at the top of the current selection. You can uncomment some code below to change this policy to instead take the alignment character from within the selection at whichever end has the cursor. Either way, if that character is white space, the user is prompted to type the character (or characters). If you really wish to align on a white space character, you can just click OK at the prompt. When prompted to type the alignment character, the user may enter a sequence of characters, e.g., "-->", in which case the alignment is on the instances of that entire character sequence. For example, if the user enters "-->" at the prompt, then instances of the "-" character get aligned only if they're followed immediately by the characters "->", while instances of, say, "-1" and "- " remain unaltered. If there is no current selection, then aligns all lines in the editor. If there is a current selection, then aligns only the lines that are at least partially included in the selection, and the selection is changed to the entire block of newly-padded lines. Parameters ---------- max_align_char_count : positive integer, optional The maximum number of instances to align of the specific character. For example, set to 1 to align only the first instance of the character on each line. The default is to align all instances of the specific character. """ from Npp import editor #---------------------------------------------------------------------------- # For the alignment character, take the character just inside the bounds of # the selection block (at either the start or the end, as determined below). #---------------------------------------------------------------------------- editor.targetFromSelection() selected_text = editor.getTargetText() # Use this code to get the align_char unconditionally from the start # of the selection. align_char = selected_text[0] # Optionally use this code to get the align_char from within the selection # at whichever end has the cursor. # (startByte, endByte) = editor.getUserCharSelection() # if startByte == editor.getCurrentPos(): # align_char = selected_text[0] # else: # align_char = selected_text[-1] # If the character from the selection seems implausible as the # align_char, then prompt the user for it. if align_char.isspace(): from Npp import notepad global default_align_char align_char = notepad.prompt('Align character:', 'Enter Alignment Character', default_align_char) if align_char is not None: default_align_char = align_char #---------------------------------------------------------------------------- #%% Get the lines of text within the selected alignment block #---------------------------------------------------------------------------- (startLine, endLine) = editor.getUserLineSelection() startPos = editor.positionFromLine(startLine) endPos = editor.getLineEndPosition(endLine) text_lines = editor.getTextRangeFull(startPos, endPos).splitlines(True) #---------------------------------------------------------------------------- # Remember whether there is a user-selected block, so we can restore a # corresponding selection after aligning the text. #---------------------------------------------------------------------------- restore_selection = editor.getSelectionStart() != editor.getSelectionEnd() #---------------------------------------------------------------------------- # Align all instances of align_char within the lines of text #---------------------------------------------------------------------------- if align_char is not None: # Enable the following to save the align_char, however it was determined, # to be the default_align_char when prompting for it next time. # default_align_char = align_char padding_side_offset = padding_side.value * len(align_char) if max_align_char_count is None: align_char_count = max(line.count(align_char) for line in text_lines) else: align_char_count = max_align_char_count start = 0 for instance in range(align_char_count): # Set the target column using the index of the align_char, ignoring # immediately preceding space, or the length of the line tgt_char_col = max(len(line[:line.find(align_char, start)].rstrip()) for line in text_lines) for (idx,line) in enumerate(text_lines): align_char_col = line.find(align_char, start) if align_char_col >= 0: text_lines[idx] = line[:align_char_col+padding_side_offset].rstrip().ljust(tgt_char_col) \ + line[align_char_col+padding_side_offset:] start = tgt_char_col + len(align_char) editor.setTarget(startPos, endPos) editor.replaceTarget(''.join(text_lines)) if restore_selection: startPos = editor.positionFromLine(startLine) endPos = editor.getLineEndPosition(endLine) editor.setSelectionStart(startPos) editor.setSelectionEnd(endPos) if __name__ == '__main__': align_selected_text()
  • 0 Votes
    3 Posts
    144 Views
    guy038G

    Hello, @mm-tsuchi, @terry-r and All,

    @mm-tsuchi, The behavior, that you’ve found out, seems definitively a bug , I’m afraid :-((

    Let’s test with the beginning of the change.log file, copied in a new tab :

    Notepad++ v8.8.7 new features & bug-fixes: 1. Sign Notepad++ binaries with GlobalSign certificat to fix false-positive alerts. 2. Fix Monitoring in one view affects selections and position in second view. 3. Fix Shortcut Mapper memory leak issue. 4. Enhance Perl FunctionList for class. 5. Fix pressing Alt or Tab causes controls redrawing problem in UDL dialog. Notepad++ v8.8.6 new features & bug-fixes: 1. Add capacity of pasting multiline into Find/Replace fields. 2. Improve UAC in Notepad++ for seamless elevated operations. 3. Fix Pin Tab operation being too long with many opened documents. 4. Add 2 new full-readonly modes via command line argument (-fullReadOnly & -fullReadOnlySavingForbidden). 5. Add apply/remove read-only for all documents commands. 6. Column Editor enhancement: GUI input fields now support radix to match the output format. 7. Add Window dialog "File Modified Time" sorting capacity. 8. Fix NPPN_CMDLINEPLUGINMSG not working issue & define the pluginMessage usage protocol. 9. Fix pasting from column mode to multi-selection issue due to different EOL. 10. Add NPPM_GETNPPSETTINGSDIRPATH message to get Notepad++ settings directory path. 11. Enhance SQL function list parser. 12. Fix C# function list not working with comments. 13. Add function list ability for CSS. 14. Allow user to customize max selected chars to auto-fill "Find what" field. 15. Restore undo/redo behaviour in Find/Replace fields after Copy/Paste or Ctrl-F. 16. Fix text corruption issue caused by selection within multibyte characters. 17. Fix DOCTYPE styling in xml and html. 18. Fix double clicking on edit zone border creates a new tab issue. 19. Update cURL in WinGUp (Notepad++ updater) for fixing security issue CVE-2025-5399.

    And let’s start with a fresh portable v8.8.7 release of N++. After launching Notepad++.exe for the first time, if you move to the Preferences... > Searching panel, you should see this snapshot :

    ba0aed16-e512-4b4d-bf11-8d3cbde6d7b5-Capture d'écran 2025-11-18 103552.png

    So, you can verify that, by default, the two options Fill Find Field with Selected Text and Select Word Under Caret when Nothing Selected are checked

    In this configuration, no problem at all regarding the Select and Find Next and Select and Find Previous commands which work as expected !

    Now, as soon as you unchecked the Fill Find Field with Selected Text option, note that it also unchecks, automatically the Select Word Under Caret when Nothing Selected option and the Max characters to Auto-Fill Find Field from Selection option, as well !

    With that new configuration :

    Double-clic on the first Add word of the text

    Open the Find dialog ( Ctrl + F )

    => The Find what zone should be empty ( logical, because of the settings ! )

    Note that the Wrap around option is checked by default and the search mode is set to normal

    Type the word Add in the Find what zone

    Click once on the Find next button to jump to the next occurrence of the Add word

    Close the Find what zone ( Esc )

    You can check that the F3 / Shift + F3 shortcuts ( Normal search ) or the Ctrl + Alt + F3 / Ctrl + Shift + Alt + F3 shortcuts ( Volatile search ) work as expected

    However, the Select and Find Next and Select and Find Previous commands do nothing. This is also logical because of the new settings !

    Now, just put the caret within any Add word. if you hit the F3 key, it does find the next Add word ! Don’t be mistaken : it found the Add word just because the Find what zone still contains the Add word as the Select Word Under Caret when Nothing Selected is uncheked

    To be convinced, simply put your caret within an other word Fix : hitting the F3 key still search the next occurrence of the Add word and not the Fix word !

    Now, double-click on any Fix word. The only possibility to search this new word is to use the Alt + Ctrl + F3 or Alt + Ctrl + Shift + F3 shortcuts. However, if you open the Find dialog, as this kind of search is volatile, the Find what zone will still contains the Add word !

    So, IMO, how to fix this issue :

    Forbid the Select And Find ... options when the Fill Find Field with Selected Text option, in settings, is unchecked. This seems logical as current selected text never fills the Find what zone !

    But, allow the Select Word Under Caret when Nothing Selected setting to be checked, independently of the Fill Find Field with Selected Text option. So, putting caret within any word, would still select this word and placed it in the Find what zone of the Find dialog for search !

    Best Regards,

    guy038

  • 0 Votes
    3 Posts
    71 Views
    Alan KilbornA

    @me

    I printed out a cookie recipe in NP++ and LO Writer

    Try to be more explicit. I actually use LibreOffice and, until @PeterJones explicitly stated it in his response, I had no idea what you were talking about when you said “LO”.

  • Save and Restore Change History Markers

    General Discussion
    10
    1 Votes
    10 Posts
    529 Views
    Vince AmanV

    @mpheath ,

    Thanks again for you reply! I plan to test your BufferRestore script after my next “break” in my current project(s). After looking closer at your post and web page, this looks to be a good option for me to use until NP++ has a built in tool…

    I do own a rack of servers and plan to spin up a couple extra VMs once I release my own platform/environment for my apps (within the next couple months). The challenge with one of the (main) current platforms which I’m using is, while I pay annually to be a developer for them, their licensing does not allow me to run on more than 1 PC at a time, so it requires me to log out/in each time I switch between PCs or VMs. I can’t maintain the variable “state” if forced to log out.

    There are many additional issues with Windows Rebooting… When the current test environments get “killed”, all the opened files are now locked and all the variables are flushed. So it requires unlocking the files, and recreating the previous workflow to recreate the variable “state”. Using a log file doesn’t work well in this environment, because it typically goes back beyond the last save… and could only be applied if the saved file was in the exact state as when the log file was started… not sure if that makes sense?

  • 0 Votes
    3 Posts
    47 Views
    PeterJonesP

    @JuergenBelle ,

    Further to what @h-jangra said, since N++ v8.8.6, you can just paste your multi-line text into the Replace, and use the Search @h-jangra suggested, and you don’t need the plugin at all…

    If your replacement has parentheses () or dollar signs $, it might not work as you expect, so you might have to escape them, as described in the user manual (https://npp-user-manual.org/docs/searching/#substitutions)

  • 3 Votes
    1 Posts
    77 Views
    No one has replied
  • Move Line Up

    Help wanted · · · – – – · · ·
    6
    1 Votes
    6 Posts
    282 Views
    Barry LortB

    @guy038

    More good information. Thank you!

    Barry

  • Notepad++ 8.8.8 release candidate

    Announcements
    2
    7 Votes
    2 Posts
    960 Views
    donhoD

    FYI, v8.8.8 RC has updated to RC2 to enhance the security of auto-update.

  • Notepad++ VERY slow to open

    Help wanted · · · – – – · · ·
    16
    0 Votes
    16 Posts
    11k Views
    MarcosM

    Hello!

    I’m having a similar problem with NPP being slow to open, and I believe it’s related to the fact that I have several “draft” (unsaved) files saved, since I have the options enabled: backup and remember last session.
    This has already been reported in another post:

    https://github.com/notepad-plus-plus/notepad-plus-plus/issues/14000

    In my case, I have an SSD and it takes about 20 seconds to load about 200 files. So it spends about 0.1 seconds per file.

    I did some tests using Process Monitor, as shown in the image below.

    notepad.png

    In this case, it seems that NPP keeps trying to create files in the “Program Files” folder, but it gives a “NAME NOT FOUND” error.
    After that, it goes to the “AppData/Roaming…” folder where the backup files are located.

    In short, based on this result, does anyone have any idea how to try to solve this delay, perhaps caused by failures or repeated attempts to read/write the backup files?

  • 0 Votes
    4 Posts
    317 Views
    h-jangraH

    Thanks @Coises & @rdipardo
    I tried this and its working but still not better. You can suggest anything if I can add more styling.

    10f9d4ce-57f8-4d4c-a375-a9f4450b524e-image.png

    h-jangra/BetterMarkdown/releases/tag/0.1

  • New Vim modal editing plugin release

    General Discussion
    6
    1 Votes
    6 Posts
    4k Views
    h-jangraH

    @PeterJones @guy038 @W-H @Ava-Thompson and everyone

    Thanks a lot for checking out NppVim and for all the support. Really appreciate the feedback and the nice words.

    Quick updates:

    Repo here: https://github.com/h-jangra/NppVim I’m still actively working on the plugin, adding more motions, fixing bugs and making things feel closer to real Vim. More text objects, better repeat for t/f etc all in progress.

    I’m glad to hear interest in supporting the project. I’ll set up GitHub Sponsors soon and will update this thread.

    Thanks again for trying it out and giving feedback, it motivates me to keep improving it.
    Please feel free to open issues on GitHub for any bugs or features you want prioritized.

  • Mover abas

    General Discussion
    3
    0 Votes
    3 Posts
    279 Views
    Mark OlsonM

    I seem to recall that there was a bug in the main GitHub repo about this kind of issue, where it was extremely slow to move tabs when a lot of tabs were open.

    I also seem to recall that this issue was solved, probably in the last year. I’d recommend that @Wilson-Azambuja-Porto-Alegre-RS install the most recent Notepad++ version and see if that fixes the problem.

  • notepad++,exe- bad image

    Help wanted · · · – – – · · ·
    3
    0 Votes
    3 Posts
    240 Views
    pbarneyP

    @Alan, listen to @PeterJones when he says to scan your computer for viruses. TextShaping.dll is commonly used in DLL sideloading exploits, and if your executables are trying to call it when it resides in a place it doesn’t belong (your Notepad++ directory), then there’s a good chance your computer has been hacked.

    That doesn’t mean you should freak out just yet, just take some steps to ensure that you’re not hacked.

  • Update CLI command

    Help wanted · · · – – – · · ·
    4
    0 Votes
    4 Posts
    5k Views
    D

    All the gup.exe does is to check if there is a newer version than specified by the string input parameter is available. It does not handle the update itself. You would have to code it for yourself.

    For example like this in Powershell 5.1 for the 64bit version of Notepad++.

    [string]$ScriptFolder = $PSCommandPath | Split-Path -Parent $Notepad = Get-ItemProperty -LiteralPath 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++' $InstalledVersion = $Notepad.DisplayVersion $UpdateCheck = Invoke-WebRequest -Uri "https://notepad-plus-plus.org/update/getDownloadUrl.php?version=$InstalledVersion" $UpdateCheckAnswer = ([xml]$UpdateCheck.Content).GUP if ($UpdateCheckAnswer.NeedToBeUpdated -eq 'yes') { $Filename = $UpdateCheckAnswer.Location.Split('/')[-1] Invoke-WebRequest -Uri $UpdateCheckAnswer.Location -OutFile "$ScriptFolder\$Filename" & "$ScriptFolder\$Filename" '/S /closeRunningNpp' }
  • 0 Votes
    1 Posts
    134 Views
    No one has replied
  • using the command line switches, but not working

    General Discussion
    2
    0 Votes
    2 Posts
    113 Views
    PeterJonesP

    @Dan-McGovern ,

    -openFoldersAsWorkspace works just fine with -settingsDir and -titleAdd and other similar options, in my experiements.

    But, as far as I can tell, once -openFoldersAsWorkspace is specified anywhere on the command line, all path arguments are treated under the rule, “if it’s a folder, put it in the FolderAsWorkspace panel, and don’t open any file-paths directly”.

    That seems like the intent, because I don’t think it was considered that notepad++.exe myfile.txt -openFoldersAsWorkspace SomeDirectory\ would be a normal use-case (ie, when adding the feature, didn’t think that you’d want to open a file from one location, plus a folder-as-workspace from another, in the same command-line)

    If you don’t have the -multiInst argument, and if you don’t have the multi-instance preference set, then you could break it up into two calls of notepad++.exe

    "%np%" -settingsDir="..." -openFoldersAsWorkspace "%workspace%" "%np%" -settingsDir="..." "%file%"

    In that incantation, the oFAW has to come first, because of the known-and-never-solved issue that oFAW doesn’t work on an already-running instance of Notepad++.

    … But since I seem to remember that you do have the multi-instance preference set, that’s not likely to work for you. In which case, until you do a feature request, and it was accepted and implemented and released, I don’t know that you’ll get exactly what you want.

    I’ll update the manual to better explain current behavior with the oFAW option.