• 0 Votes
    8 Posts
    115 Views
    NicholasN

    Create a txt.reg file with the below content and update the icon path and notepad++ path if required. You can change HKEY_CLASSES_ROOT to HKEY_CURRENT_USER\Software\Classes if you just want the icon for your user account.

    Run the file to add it to your registry.

    Right click a text file and Open with > Choose another app. Select a different app (like normal notepad) and click the Always button. Repeat this but select Notepad++ this time. The icon should update.

    You can do this for other file types by changing all .txt to the other extension and updating the file type description (@=“Text File”).

    If the icon doesn’t change then there is another reg entry taking priority. I’ve had problems with json and config files because of json_auto_file and config_auto_file.

    txt.reg:

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.txt\OpenWithProgids] "Notepad++.txt"="" [HKEY_CLASSES_ROOT\Notepad++.txt] @="Text File" [HKEY_CLASSES_ROOT\Notepad++.txt\DefaultIcon] @="C:\\Program Files\\Notepad++\\icons\\text.ico" [HKEY_CLASSES_ROOT\Notepad++.txt\shell] [HKEY_CLASSES_ROOT\Notepad++.txt\shell\open] [HKEY_CLASSES_ROOT\Notepad++.txt\shell\open\command] @="\"C:\\Program Files\\Notepad++\\notepad++.exe\" \"%1\""
  • Notepad++ 8.8.8 release

    Pinned Announcements
    5
    1 Votes
    5 Posts
    1k Views
    S

    Hello,

    Notepad++ v8.8.8 installed without a hitch. Double-clicking to initiate the installer first required deleting the self-signed certificates that were in place, to avoid Windows’ UAC (User Account Control) warning with the “Don’t Run” button. Also, this might be a bit late, but congratulations on acquiring an official digital certificate. Keep up the great work!

  • sha512 certificate cannot be validated

    General Discussion
    4
    0 Votes
    4 Posts
    108 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.

  • 0 Votes
    7 Posts
    234 Views
    Alan KilbornA

    @guy038 said:

    Forbid the Select And Find … options when the Fill Find Field with Selected Text option, in settings, is unchecked.

    So really what the user should be doing in this circumstance is to use the “volatile” versions of the commands?

    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

    To me, if user doesn’t want to fill find with selected text, he wants it to be absolute; in other words, he never wants any filling, of any kind. But, I’m sure there would be users out there that want what you describe (learned this from past experience, about all kinds of things).

  • Making a new release...

    Humour
    6
    5 Votes
    6 Posts
    155 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.

  • 0 Votes
    4 Posts
    172 Views
    Rick KostersR

    @PecZXcterJones

    Thanks, I understand.

  • 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
    390 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
    72 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
    568 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
    51 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
    79 Views
    No one has replied
  • Move Line Up

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

    @guy038

    More good information. Thank you!

    Barry

  • Notepad++ 8.8.8 release candidate

    Announcements
    2
    7 Votes
    2 Posts
    971 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
    327 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
    286 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
    245 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.