• 0 Votes
    5 Posts
    132 Views
    Doctor RashirD

    @PeterJones

    Hey, I ran the script. The result looks much much better than before. But this file is an OFX (Open Financial Exchange) and is not truly XML. The sample I posted is only a small part. The rest contains private info so can’t be posted.

    I really appreciate that you spent this time. I think it will work great for my needs.

  • Flex your customizations

    General Discussion
    3
    0 Votes
    3 Posts
    80 Views
    h-jangraH

    @PeterJones nice I will try and upload this theme as well.

  • Move left scroll arrow to left side of tab bar?

    General Discussion
    2
    0 Votes
    2 Posts
    23 Views
    PeterJonesP

    @jeffs555-s ,

    With more tabs than will fit on screen, most programs put the left scroll arrow on the left side of the tab bar and the right scroll arrow on the right side of the tab bar.

    I am not sure I’d agree with the word “most”.

    Microsoft’s new Windows 11 Notepad app (the one that handles multiple tabs) does. But Chrome just keeps shrinking the tab shape, and after a few dozen, I stopped trying to see if I ever got it to show scroll controls OpenOffice/LibreOffice Calc (and my memory of Excel) put both the ◀ go-left and ▶ go-right and add-sheet buttons on the lower left Google Sheets webapp puts both the < and > on the lower right As far as I can tell, Visual Studio doesn’t give such buttons; instead, they just have the ▼ pulldown, similar to the one on Notepad++'s menu bar. Mozilla Thunderbird (email client), like Chrome, seems to just shrink the tabs; again, I could never get it to show scroll controls.

    So I tried a variety of apps, from different categories of tabbed-like interfaces, and only one of them puts the left-scroll on the left and the right-scroll on the right. In my quick experiment, “most” put them immediately next to each other, wherever they go. But really, it seems there’s no global consistency on such scroll controls. That’s not to say that there aren’t a gazillion other apps that do split them between left and right sides of the Tab Bar – just that it apparently depends on one’s set of applications that they use.

    I can understand wanting it as a feature, if it’s what you are used to. It isn’t currently an option in Notepad++ (though it could be requested, as described in our feature request FAQ); and, as far as I know, there aren’t any plugins that currently move the Tab-Bar-scroll-left button to the left side of the Tab Bar (and I don’t know who would win the war between a plugin and the main app as far as trying to position that button, so I don’t know if a plugin could enforce a different location for it)

  • 0 Votes
    5 Posts
    68 Views
    Doctor RashirD

    @PeterJones
    Thank you for the reply. Yes, I understood that inference. I was hoping there was additional tweaks to try. Yes, I could do a reply. It was triggered on a very minor edit. Maybe the site support would be interested in the issue. But it’s not important to me now.

  • Notepad++ 8.8.8 release

    Pinned Announcements
    11
    1 Votes
    11 Posts
    2k Views
    Lukas MayrL

    @PeterJones
    Thank you for adding the MSI-Installer section.

    The usual switches for silent/passive/… installation work just fine out of the box with the .msi.

    @donho
    For the .exe installer there are the Notepad++ -specific options, like /noUpdater
    These options seem to be missing from the .msi package

    For instance: in the putty installer you have the option to set your own install-directory by changing the property of INSTALLDIR

    msiexec /i "putty-64bit-0.83-installer.msi" /q INSTALLDIR="C:\Tools"

    Screenshot 2025-11-21 070153.png

    Those Options seem to not yet exist in the npp-msi installer
    Screenshot 2025-11-21 070257.png

  • 0 Votes
    11 Posts
    241 Views
    N

    @PeterJones

    i have to hand it to you this worked, thank you :-)

    I couldnt find this description elsewhere, i tested all the 3 thirdparty apps, wthy didnt work though

    I seems to have missed the reg addition of defaulticon should be in the string sith notepad++

    best Nolan

  • 0 Votes
    9 Posts
    334 Views
    Alan KilbornA

    When the Fill Find Field with Selected Text option, in settings, is unchecked, and the user invokes Select And Find …, perhaps the program should (simply) run the code for the “volatile” version of the command.

    (I should have said this in my previous post.)

  • 0 Votes
    5 Posts
    213 Views
    László BotkaL

    @Rick-Kosters

    You can try the free Agent Ransack utility from https://www.mythicsoft.com
    It works with .doc, .docx and .pdf files too.

  • sha512 certificate cannot be validated

    General Discussion
    4
    0 Votes
    4 Posts
    196 Views
    PeterJonesP

    @bvklaveren said in sha512 certificate cannot be validated:

    I have seen the instructions, but installing the self-signed certificate on all computers in the organization is not a practical solution.

    Okay. Then ignore the self-signed, since there’s a commercially-signed alternative that can give you confidence that the binary is being distributed by the one who it claims to be.

    It only takes one certificate to give the confidence, but it also means that you can ignore any other certificate on the same file, because having two certificates (one self-signed that you choose to distrust and the other commerically-signed which you choose to trust) gives you exactly the same amount of confidence that the binary is valid as does having just the commercially-signed certificate with none others. Whereas for someone who does trust the self-signed, they can choose to trust that self-signed and ignore the commercially-signed as being tainted by money.

    Also, why would you include a self-signed certificate if you also have “real” one that can be validated without extra steps?

    The “why’s and wherefore’s” are all available in the public, in various discussions on this forum (search for certificate) and the relevant section of the User Manual and in the various announcement pages in the official website. But I’ll sum it up, from my outside perspective:

    Because for months, there wasn’t a commercial certificate available, because the corporations behind the certificates are set up to make things difficult to open source projects. And once he did get the new globalsign cert, he didn’t feel it was worth it to undo all the effort he had put into creating the self-signed certificate.

    Lastly, it is not in the msi, so why is it in the exe?

    apples and oranges?

    The MSI is a container, which can be signed, and is signed separately from any EXE or DLL that might be contined therein. So the developer apparently chose to only sign that MSI with the commercially-derived – probably because his system was already setup to sign the EXE with both (because it was setup to sign with just the self-signed, then he added the globalsign cert on top of that once it was available), whereas the MSI didn’t come until a month or two after the globalsign was available, so he probably didn’t think it was worth the extra effort to figure out how to sign the MSI with the self-signed as well.

  • Making a new release...

    Humour
    6
    5 Votes
    6 Posts
    245 Views
    xomxX

    @donho
    Good attempt, just for surety, why not ;-)

    And I’ve to admit that I used to “abuse” churches too - in the summer it was nice and cool there and, most importantly, quiet, so I could study there and prepare for my exams :-)

    @Terry-R @Lycan-Thrope

    Otherwise on topic - there are IMO no complete atheists (in the sense of believing in something that is beyond my reach or ordinary understanding), everyone has their own faith. But while someone believes e.g. that gravity will still work tomorrow when they wake up, someone else believes in the virgin conception of the Virgin Mary, when the Holy Spirit entered her. For me, religion just parasites on and shackles the natural human need to believe in something better/bigger, something that gives human existence true meaning and a greater dimension.

  • autoupdater and connection temp.sh

    Security
    9
    0 Votes
    9 Posts
    3k 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
    463 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

  • Scripts to align text

    Notepad++ & Plugin Development
    4
    4 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
    75 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
    592 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
    56 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
    84 Views
    No one has replied
  • Move Line Up

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

    @guy038

    More good information. Thank you!

    Barry

  • Notepad++ 8.8.8 release candidate

    Announcements
    2
    7 Votes
    2 Posts
    985 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?