Community
    • Login
    1. Home
    2. Popular
    Log in to post
    • All Time
    • Day
    • Week
    • Month
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All categories
    • PeterJonesP

      POLL / Discussion: taking over a plugin

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      7
      3 Votes
      7 Posts
      146 Views
      ThosRTannerT

      I’m not entirely sure how to vote on this because - if with the permission of the original author, I don’t think a new name would be required. However, any other option should have a new name

    • Alexander AnisimovA

      Copying file itself into clipboard in Notepad++

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      23
      0 Votes
      23 Posts
      3k Views
      PeterJonesP

      @Alexander-Anisimov said in Copying file itself into clipboard in Notepad++:

      how can I bind a hotkey something like Ctrl+Shift+C to it?

      That’s explained in the FAQ. Search that page for “shortcut” (step 4 of the instructions) if you didn’t notice it.

    • deleeleeD

      Npp website spelling error

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      7
      3 Votes
      7 Posts
      758 Views
      deleeleeD

      @mkupper said in Npp website spelling error:

      FWIW, this Google search gets zero hits other than this forum thread.

      site:notepad-plus-plus.org "featurs"

      I’m guessing that the misspelling, if it ever existed, was corrected a while back.

      Yes, it was fixed within a few days of me posting 😁👍

    • Nostra DamusN

      Create File? message

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      6
      0 Votes
      6 Posts
      502 Views
      PeterJonesP

      @Nostra-Damus said in Create File? message:

      but don’t have a ‘contextMenu’ folder in the Notepad++ folder, is there anywhere I can download it from? I have got the latest portable version off github but it is not in that either.

      The portable edition does not come with the Shell Extension DLL because the Shell Extension is by definition not portable (it gets registered with your OS; one of the primary points of portable editions of software is to keep them from making changes to your OS configuration and to keep themselves limited to whatever directory you happen to be running them from)

      The only way I have ever tried getting the shell extension is to run the installer (unfortunately, the installer is not one of the ones where you can change the filename to xyz.zip and just browse it like a zipfile, so you cannot easily extract from the installer without running it). And you seem to want the portable, not the installed version. However, it should be noted: you can still use the installer, and give it your alternate install directory of C:\Utils\Notepad++\ and you can choose Don't use %AppData% in the options on the last page of the installer:
      7dae6d44-f65e-4048-872d-cd58d2b61a26-image.png

      However, if you don’t want to run the installer at all, the repo for the Shell Extension is publicaly visible at https://github.com/notepad-plus-plus/nppShell/ … its “releases” only seems to share the source code, not the built DLL, but if you go to the most recent GitHub Actions CI_Build (https://github.com/notepad-plus-plus/nppShell/actions/workflows/CI_build.yml) – click on the most recent (topmost) run in the main list: if it is recent enough, it should have some artifacts attached, and you could grab the 64-bit artifact (the one with x64 in the name). You can extract the DLL from that artifact zipfile, and then create C:\Utils\Notepad++\contextMenu\ folder and put the extracted DLL there.

      But honestly, that’s a lot of work when really all you needed was to add the quotes to get "%1" in your existing registry entries. Since you’ve already confirmed that works, I’d probably recommend just sticking with that.

    • General CoderG

      Autocompletion and plugin

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      6
      0 Votes
      6 Posts
      438 Views
      General CoderG

      @Ekopalypse thanks for the info. I was hoping to avoid having to create custom autocomplete but cant have everything :)

    • garrett careyG

      Question(s)

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      23
      0 Votes
      23 Posts
      5k Views
      CoisesC

      @mkupper said in Question(s):

      I verified that at least for my current setup that the zoom level seems to have no affect on the printed results.

      Same here. Perhaps I was unclear.

      If I leave the zoom at default and adjust the font size for Default Style to be large enough for me to read easily on my monitor, I would set a font size of 14 or 16 points with Liberation Mono. (14 is bit smaller than I like, 16 is too big, 15 isn’t an option.) Those are too large for printing, though.

      If I set Default Style to 12 points, printing is reasonable. If I then zoom in 3 steps, I’m just about where I want to be to read easily on the screen — without affecting printing.

      The question I was answering was, “Why not just change your default font size?” Because that does affect printing (and, though I hadn’t remembered until I tried just now, also isn’t as fine-grained as zoom).

    • Tom SassonT

      Cannot change Encoding to correct encoding of UTF-8

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      119 Views
      Tom SassonT

      @Coises said in Cannot change Encoding to correct encoding of UTF-8:

      Open Settings | Preferences… | MISC. and look for Autodetect character encoding.

      Thank you for your suggestion, this liitle “trick” with unchecking Autodetect fixed the issue for me

    • PeterJonesP

      Config Files Need Updating, Too

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion pythonscript config-files stylers.xml langs.xml syntax highlight
      42
      9 Votes
      42 Posts
      11k Views
      PeterJonesP

      @Lycan-Thrope said in Config Files Need Updating, Too:

      became enabled only after selecting and double clicking the error

      I should probably add a single-click handler to enable that button, too. (Without any selection, it wouldn’t know where in the file to go to, so I will probably leave it disabled with no selection)

    • B

      Security of Legacy Notepad++ Versions (CVE-2025-49144)

      Watching Ignoring Scheduled Pinned Locked Moved Security
      5
      1 Votes
      5 Posts
      369 Views
      xomxX

      @Bhaalthazar said in Security of Legacy Notepad++ Versions (CVE-2025-49144):

      patching older vulnerable versions

      It could be fun, now without the public CA cert available…

    • B

      Editor displays "!=" token as "≠" symbol - how to turn off?

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      5
      0 Votes
      5 Posts
      189 Views
      B

      Many thanks to @PeterJones and @Coises, for the answers, perspective, and (in Peter’s case) updating the User Manual.

      You are right, it was Cascadia Code; changing it to Consolas, for example, got rid of it. My “exhaustive” font testing was… only Cascadia Code and Fira Code, so I literally hit both of the two. I’ve been mostly using Hack font for such a long time, I just haven’t really noticed any of this ligature-supporting fonts. I just got a new PC and hadn’t installed Hack yet.

      I like finding out where I was ignorant and wrong. It makes me less so.

      Cheers and thanks again!
      –BrBill

    • David RiffetD

      KNOWN ISSUE: The digital certificate is not available in version 8.8.2.

      Watching Ignoring Scheduled Pinned until 8/1/25, 4:30 PM Locked Moved Security
      5
      0 Votes
      5 Posts
      468 Views
      PeterJonesP

      I pinned this and added KNOWN ISSUE to the title, to hopefully make it plainer to people that they don’t need to report it here.

    • FraF

      Replace 2nd occurrence in string per line, then nth occurrence Npp v8.8.1

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      5
      0 Votes
      5 Posts
      253 Views
      FraF

      @PeterJones thanks a lot for the nuances. Indeed, I first wondered about the difference from the group indexing starting at 1. Then also about the difference from the quantifier ( {n} where n is an integer >= 1 https://www.regular-expressions.info/refquick.html).
      Thanks for the $0 group placeholder mention, I wondered about that too, now I understand what it captures.

      I understand the regex as this:

      Find:

      Put everything that preceeds the occurence of interest into a group (1st group referenced by the placeholder with the starting index at 1 ($1) — though there is a placeholder 0 ($0) which references the whole set/string instead of any subgroup of it)). Exclude the occurence of interest from the that group, but state is a the search delimiter for the regex just outside the group.

      Replace with:

      Capture the group with it’s placeholder (make a copy of it and store it: $1 = foo / ^((?:.?foo){0}.?) for the 1st occurence (N+1) with index 0). Use the 2nd/next occurence as external delimiter reference to stop the regex search at (^((?:.?foo){0}.?)foo). Then append the new value (XOO) to the copied unchanged group.

      I think I see what you mean when considering there must always be a 2nd /next occurence for the regex to work so it can’t be starting at zero? While in the background the engine uses a zero based indexing for the 1st element of the occurences series.
      0 is the 1st element in the indexes series, 1 is the 2nd and so on.
      While for the groups placeholders, 0 isn’t an ordinal reference, it’s an arbitrary reference to the set. The ordinal reference starting at 1 in this case.

      I need to check the doc and do more practice to get over the confusing parts!

      The quantifier also starting at 1 though index 0 is still valid but return no value (or the whole set but with empty values)?

      For example:

      19 empty string matches:

      0.gif

      [A-Z]{0} goo A greAS gir PE

      https://regex101.com/r/dYnJmE/1

      / [A-Z]{0} / gm Match a single character present in the list below [A-Z] {0} matches the previous token exactly zero times (causes token to be ignored) A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 0-0 empty string 1-1 empty string 2-2 empty string 3-3 empty string 4-4 empty string 5-5 empty string 6-6 empty string 7-7 empty string 8-8 empty string 9-9 empty string 10-10 empty string 11-11 empty string 12-12 empty string 13-13 empty string 14-14 empty string 15-15 empty string 16-16 empty string 17-17 empty string 18-18 empty string No match/invalid:

      1.gif

      [A-Z]{} goo A greAS gir PE

      https://regex101.com/r/CtqQ0D/1

      / [A-Z]{} / gm Match a single character present in the list below [A-Z] A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) {} matches the characters {} literally (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) Your regular expression does not match the subject string. 5 matches:

      2.gif

      [A-Z]{1} goo A greAS gir PE

      https://regex101.com/r/MImsNL/1

      / [A-Z]{1} / gm Match a single character present in the list below [A-Z] {1} matches the previous token exactly one time (meaningless quantifier) A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 4-5 A 9-10 A 10-11 S 16-17 P 17-18 E 2 matches:

      3.gif

      [A-Z]{2} goo A greAS gir PE

      https://regex101.com/r/p1WOWQ/1

      / [A-Z]{2} / gm Match a single character present in the list below [A-Z] {2} matches the previous token exactly 2 times A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive) Global pattern flags g modifier: global. All matches (don't return after first match) m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string) 9-11 AS 16-18 PE
    • Xavier BeaumeX

      ANSI escape sequences color rendering

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      13
      0 Votes
      13 Posts
      14k Views
      J_SwaJimeJ

      @PeterJones

      Sorry I wasn’t trying to stir up trouble. Either you are correct or I may simply have mangled things by going in the wrong order.

      Here is a pic showing miswritten regex I found via AI, which was what I was trying to correct. I did not find the ErrorList language feature until after writing my initial post.

      Screenshot_20250618_203154_RVNC Viewer.jpg

    • N

      is thier any posibilities to find and replace multiple words at once ?

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      4
      0 Votes
      4 Posts
      57 Views
      CoisesC

      @neeraj10786:

      While I don’t use it myself (and so can’t give detailed advice), it seems like the MultiReplace plugin by @Thomas-Knoefel would be easier to use than built-in methods. If this is a single-time problem, then the built-in methods others have given make sense; but if it is something you’ll need to do repeatedly, I’d check out that plugin.

    • Chris GorringeC

      KNOWN ISSUE: 8.8.2 doesn't appear to be digitally signed

      Watching Ignoring Scheduled Pinned until 8/2/25, 12:32 PM Locked Moved General Discussion
      4
      0 Votes
      4 Posts
      349 Views
      TragenT

      It’s even worse that you now need a USB stick / HSM for code signing certificates which makes it even more complicated and expensive.

    • Michael Goessmann MatosM

      Notepad++ replacing '!='

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      4
      1 Votes
      4 Posts
      219 Views
      PeterJonesP

      To future readers: I have updated the User Manual’s description of the DirectWrite settings to show:

      a4645737-3f77-4d64-b3e2-86137d6184d2-image.png

      This should hopefully help guide people in how to use or disable this feature of their chosen fonts

    • guy038G

      Bug when a multi-lines regex is used in the 'Search', 'Replace' or 'Mark' dialog

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      21
      2 Votes
      21 Posts
      3k Views
      Alan KilbornA

      @guy038 said:

      the site’s ability to highlight any sub-section of the regex in green is really awesome

      https://jmrware.com/articles/2010/dynregexhl/DynamicRegexHighlighter.html

    • Евгений КЕ

      Regex find and replace string in different types of brackets

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · · regex group replace
      4
      0 Votes
      4 Posts
      380 Views
      Евгений КЕ

      @PeterJones said in Regex find and replace string in different types of brackets:

      @Евгений-К ,

      One way to do it simultaneously is

      FIND = (>Some String<)|("Some String")
      REPLACE = (?1>New String<)(?2"New String")
      SEARCH MODE = Regular Expression

      But that’s “annoying” because you have to repeat the Some String and New String in the FIND and REPLACE.

      There are some fancy tricks using capture groups, either named or numbered, and control-flow assertions, to make sure that things balance correctly, and it will only match .

      FIND = (?'startwrap'(?'angled'>)|(?'quoted'"))\KSome String(?'endwrap'(?=(?('quoted')")(?('angled')<)))
      REPLACE = New String
      SEARCH MODE = Regular expression

      But as you can see, the FIND becomes rather complicated to save the “expense” of having Some String and New String twice. (You could theoretically do it with numbered capture groups instead, but getting the counts right, especially as you edit to make a third pair like {Some String}, would cause problems, so I used named groups so there was no ambiguity in the future. I will leave the “numbered group” version as an exercise to the interested reader.)

      So that’s two ways. Which is best depends on which you understand, and whether it’s going to be expanded in the future and/or done often. The most important thing with regex is that you understand what it’s doing, so that you don’t mess up your data.

      If you don’t understand a “single regex version” but can get it done in two simple search-and-replace that you fully understand, then two simple is probably better for you. (If it’s something you will be doing often, you can record the two search-and-replace into a macro, so that you can just play that macro in the future.)

      @PeterJones, thank you very much for your advice!
      I look at the options you suggested and once again I am convinced that RegEx was definitely not created by people and not for people :):):)
      Way #1 (captured group) is absolutely clear to me. I myself thought that it was necessary to act somehow through the groups, but I could not understand how.

      And as you correctly noted - this way in terms of labor costs is not much more efficient than the method without RegEx. The old and new lines have to be written twice.

      The second way is also clear to me, but only in general terms. This option is a very good warm-up for the mind. And I will definitely save this option for the future.

    • Alexander AnisimovA

      How to copy text file from Notepad++

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      4
      0 Votes
      4 Posts
      239 Views
      PeterJonesP

      @Alexander-Anisimov ,

      Ah, okay, I understand. Notepad++ itself doesn’t have that feature. But as you apparently don’t remember from last October when you asked the same question, there are ways using a script for the the PythonScript plugin. It seemed more than you could understand at the time, but maybe it’s important enough to you to try again.

      If you have questions about the old discussion, you can continue the conversation there, to maintain context. Since this is a duplicate of your previous discussion, it is being locked – so you can reply there, not here.

    • PeterJonesP

      C++ DarkMode dialogs -- not all controls inherit the mode

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      10
      0 Votes
      10 Posts
      849 Views
      PeterJonesP

      For those who weren’t watching:

      ozone10 made a better fix for the tab-control: PR #16673 has been accepted ozone10 also fixed my “secondarily” report about the listbox scrollbar from above, which I reported in issue #16674, fixed in PR #16676 (accepted) progressbars also don’t go to darkmode, and ozone10 has proposed PR#16687, which hasn’t been accepted yet, but hopefully will be.

      So at least 2 of those 3 (and hopefully the third) will be in v8.8.2

      Meanwhile, CollectionInterface v1.1 has been released – the new version will be in PluginsAdmin for v8.8.2, or you can install it from the assets in the release at https://github.com/pryrt/NppPlugin-CollectionInterface/releases/tag/v1.1.0 :

      Adds DarkMode support (with N++ v8.5.4 or newer; in earlier versions, dialog will be LightMode still) [I do my own subclassing on the TabControl for v8.5.4-v8.8.1; it will use the builtin starting in v8.8.2] Allow selecting multiple files for bulk download (#6) Add label to progress bar so “100% [DONE]” is more clear (#9) Fix crash if firewall blocks download (#13) and make error handling better in other edge cases as well