• Notepad++ v8.9.9 Release Candidate

    Pinned Announcements
    23
    5 Votes
    23 Posts
    836 Views
    astewart77A
    @donho said: @astewart77 Move to top still disappears. Please remove all plugins and test again. If it persists, then it could be an issue under Windows 7. It was a conflict with the NppMenuSearch plugin. It has a toolbar text widget that always sits at the right end of the toolbar and an option to lock the widget size. I should have noticed that the MenuSearch widget disappeared at the same time the Increment search bar disappeared. If it’s unlocked, everything works. Ironically, I only started posting in this thread because NppMenuSearch couldn’t find any strings/labels for the new Increment preference.
  • 1 Votes
    19 Posts
    912 Views
    CoisesC
    @guy038 said: Now if, for any font, you select all the text of that new tab and run an Edit > Line Operations > Split Lines operation, for most of them, indeed, the spliting behaviour occured right after the 78 capital letter P. However, for eample : For the proportional Times New Roman font, the spliting action occured after 76 letters P For the fixed witdh **``Consolas font, the spliting action occured after 77 letters P The explanation may lie in something I discovered while bug-hunting in the Elastic tabstops function of Columns++: when DirectWrite is in use, the width of characters can work out to fractional pixels (this is true for both fixed and proportional fonts); but Scintilla only reports the width of strings as integers. So due to the effect of rounding to integers, the width of a string of 78 letters P is not necessarily 78 times the (reported) width of one letter P. Notepad++ uses 78 times the width of one letter P. (Not that it matters much, since none of this is likely to be what anyone wants or expects anyway.)
  • 0 Votes
    2 Posts
    61 Views
    PeterJonesP
    @fml2 , old (collapse) the structure while I’m at its closing element. How can I quickly do this? View > Fold Current Level (Ctrl+Alt+F) (use the shifted version to unfold, or checkmark Settings > Preferences > Editing 1 > ☑ Make current level folding/unfolding commands toggleable to make it a toggle, so the same keystroke folds and unfolds the current level). This will work whether it’s XML or HTML or JSON or anything else with folding. Even though it has “level” in the name, it only does it for the current group, so in <one> <two> <three/> </two> <anotherTwo> <anotherThree/> </a|notherTwo> </one> if the caret is at the | in </a|notherTwo>, it will only collapse <anotherTwo>...</anotherTwo>, not anything at level 2. To answer your subquestion, though it’s not as important, there is also a way to: quickly navigate to the matching start element and fold from there. @rdipardo’s “HTML Tag” plugin has the Plugins > HTML Tag > Find Matching Tag feature (defaults to Alt+T), which does that aspect (even in an XML file, even though the plugin has “HTML” in the name). (You can install the plugin through Plugins > Plugins Admin)
  • 0 Votes
    1 Posts
    85 Views
    No one has replied
  • 0 Votes
    2 Posts
    91 Views
    PeterJonesP
    @ThatsYar_ , Can you share your ?-menu’s Debug Info? Does the same problem occur if you turn off all plugins (using -noPlugin command line option)? Is it for all files that need admin? Or just in one directory? Or just the one file?
  • 0 Votes
    10 Posts
    522 Views
    David Brigden52D
    Tabs v spaces As Peter said, the most important part is consistency. Mixing tabs and spaces together makes no one happy. I will throw out a couple arguments for tabs here: Indentation of code, markup language, et. cetera is meant to show the structure of whatever. Tabs are a logical, structural element. Spaces are physical. Different users may want different sizes of indentation. If i want 4 character indentation and my coworker wants 2, tabs can be set to show our preferred width. Seems for the most part that spaces are winning out though.
  • [New Plugin] MultiReplace

    Notepad++ & Plugin Development
    87
    3 Votes
    87 Posts
    92k Views
    guy038G
    Hi, @thomas-knoefel and All, For these Search Results : Search "Fi" (27 010 hits in 646 file(s)) [1 153 file(s) searched], I got, successively, using your valuable instructions : 1 m 13 s 78, then 1 m 10 s 85 and finally 1 m 11 s 06 when LoadThreads="auto" 1 m 25 s 78 and 1 m 26 s 39 when LoadThreads="0" 1 m 09 s 54 and 1 m 09 s 55 when LoadThreads="8" So, the two tests with LoadThreads="8" seem very slightly better !? Note that : From Laptop documentation, my processor is an Intel® Core™ i7-1165G7 2.80 Ghz (up to 4.7 GHz with Intel® Turbo Boost Technology ) 12 MB L3 cache, 4 cores 8 logical processors From informations système, I saw for Processeur : 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz, 2803 MHz, 4 cœur(s), 8 processeur(s) logique(s) Total installed RAM : 32 Gb This explain why I wanted to test with 8 threads. But, may be this assumption is not pertinent ! ? Best Regards, guy038
  • 0 Votes
    2 Posts
    116 Views
    PeterJonesP
    @Steven-Guillemet said: Hopefully this will let Notepad++ ditch its current method Until that patch has effectively 100% deployment, Notepad++ should not change its implementation, otherwise it breaks something that currently works for anyone who hasn’t applied that fix. (If there’s a way to make the two methods coexist peacefully, or if there’s a way the installer can test the version and use the appropriate alternative, then that’s great. But if not, then breaking a feature to support bleeding edge is a bad idea)
  • Surprising regular expression !

    Blogs
    2
    1 Votes
    2 Posts
    1k Views
    S
    That’s a clever little experiment! I never really thought about using regular expressions to represent mathematical patterns like multiples of 3, but it makes sense when you look at the binary sequence. Definitely a fun way to explore just how powerful regex can be beyond ordinary text searching.
  • 0 Votes
    2 Posts
    257 Views
    PeterJonesP
    @vivek-viv , Unfortunately, there are an unknown number of “programming languages” or “data file languages” in the world, and no text editor can syntax-highlight 100% of them out-of-the box. Apex is not available in the syntax-highlighter library that Notepad++ uses, and until it is, it will never be in the upper portion of the Language list. To get it added: A feature request would have to be put into Lexilla, and then the Lexilla team, or external volunteer, would have to code up that lexer, and they would have to accept it, bundle it with the library; then Notepad++ could update to use a version with that, and then and only then, Notepad++ could be updated to enable and list the Apex language in the default menu. I’m not saying it’s impossible… just that it’s not likely to be fast. If Apex were similar enough to another language, then, in theory, the Apex language could be mapped to use the that existing language’s lexer, but given its own list of keywords. However, Notepad++ has the User Defined Language (“UDL”) feature, which allows you to define a keyword-based syntax highlighting – so you can put in various lists of keywords, operators, folding-keywords, and delimiter pairs, and get it to do a reasonable job of highlighting simple syntax in your language. The User Defined Language page, and all the UDL > pages in the manual’s table of contents below it, describe how to use the UDL system. There’s also a community-contributed User Defined Language Collection, where people can share UDL definitions that they’ve made, or find ones to use for themselves. I don’t see Apex there… but if you created one, you could share it there, so that other Apex users I did a quick search, and if this is the Apex you are talking about, then it looks similar to YAML (builtin) – so maybe trying to use the YAML lexer might be an initial workaround. And google search AI tells me that the HAML uses a similar structure – there is a UDL in the Collection for HAML, so you might be able to use that as a reference for how to get something like what you want for Apex. No guarantees, but it’s a starting point…
  • 7 Votes
    24 Posts
    29k Views
    Mark OlsonM
    JsonTools v8.6 is now available for download (it’s not up on the Plugins Admin yet, pending my PR to NppPluginList). Major changes: Fixed potential for Notepad++ to hang or crash due to: RemesPath queries with a for loop over an empty array Maliciously crafted schemasToFnamePatterns.json config file RemesPath queries that generate too-deep JSON (which previously could have caused stack overflow) List of 16 most recently used unique RemesPath queries (stored in config file, accessible by menu command) New control in JSON to CSV form, allowing columns to be listed in the order that they occurred in the first record, rather than in alphabetical order
  • PHP Lang: Word vs Keyword

    General Discussion
    3
    0 Votes
    3 Posts
    255 Views
    Laurie StearnL
    @PeterJones Good info on StyleID, thanks.
  • rename files

    General Discussion
    4
    0 Votes
    4 Posts
    525 Views
    S
    Regex is definitely the way to go for this kind of filename cleanup in Notepad++. It’s great how a simple search-and-replace can handle a whole list of filenames at once instead of renaming each one manually. Just make sure to test it on a few files first to avoid any unexpected changes.
  • 2 Votes
    5 Posts
    520 Views
    fml2F
    For the reference: I’ve created https://github.com/notepad-plus-plus/notepad-plus-plus/issues/18554.
  • Notepad++ release 8.9.8.1

    Pinned Announcements
    29
    4 Votes
    29 Posts
    9k Views
    Ilya GinzburgI
    @andrecool-68 for me it’s working: русский english עברית שפה קשה Notepad++ v8.9.8.1 (64-bit) Build time: Sep 24 2026 - 15:34:11 Scintilla/Lexilla included: 5.6.6/5.5.3 Boost Regex included: 1_90 pugixml included: 1.16 nlohmann JSON included: 3.12.0 Path: C:\Program Files\Notepad++\notepad++.exe Command Line: Admin mode: ON Local Conf mode: OFF Cloud Config: OFF WinGUp: present disableNppAutoUpdate.xml: absent Periodic Backup: ON Placeholders: OFF Scintilla Rendering Mode: SC_TECHNOLOGY_DIRECTWRITE (1) Multi-instance Mode: monoInst asNotepad: OFF File Status Auto-Detection: cdEnabledNew (for current file/tab only) Dark Mode: OFF Display Info: primary monitor: 1920x1080, scaling 100% visible monitors count: 2 installed Display Class adapters: 0000: Description - Intel® Graphics 0000: DriverVersion - 32.0.101.8991 0001: Description - Microsoft Remote Display Adapter 0001: DriverVersion - 10.0.26100.8521 0003: Description - Microsoft Remote Display Adapter 0003: DriverVersion - 10.0.26100.8737 OS Name: Windows 11 Enterprise (64-bit) OS Version: 26H2 OS Build: 26300.9711 Current ANSI codepage: 1255 Plugins: ComparePlus (3) mimeTools (3.1) NppConverter (4.7) NppExport (0.4)
  • 0 Votes
    2 Posts
    244 Views
    Lycan ThropeL
    @Adam-Harrington , First you can search your Registry file for that phrase E:\Portables\Notepad++.exe %1 or just notepad++ and look for the key/value pairs you find and change them to the new location of your Notepad++ directory. Or search this forum and the FAQ’s list for this information. I searched mine and found it with just “notepad++”
  • 0 Votes
    3 Posts
    339 Views
    PeterJonesP
    same user also posted similar in this issue in comment in #17480
  • 0 Votes
    3 Posts
    165 Views
    PeterJonesP
    same user posted similar in this issue #10923 comment
  • 0 Votes
    3 Posts
    287 Views
    CoisesC
    @rdipardo said: I would point only out that the documented return value of NPPM_GETCURRENTSCINTILLA is not supported by the actual implementation; the FALSE-returning code path contradicts the statement that this API “Returns always True [sic]”. Technically so, though the FALSE value only happens when the caller sends an invalid parameter (LPARAM null, when it should be a pointer to an int). There’s also the additional result value of -1, which is documented, but which a comment in the code says “cannot happen”; the equivalent doesn’t exist in NPPM_GETCURRENTVIEW. What troubled me, though, was that the two calls base their responses on different things. I made some attempt to search the code. As best I could tell, the connection between Notepad_plus::_pEditView and Notepad_plus::_activeView is… haphazard. Even though they sound like they represent the same information in different forms (an integer that represents the main or secondary view as 0 or 1, and a pointer to one of two ScintillaEditView structures that represent the main and secondary views), I can’t “prove” that they always change together. So I cannot be certain that they do not represent different information, used for different purposes. If NPPM_GETCURRENTVIEW were meant merely to supersede the older, clumsier-to-use NPPM_GETCURRENTSCINTILLA, one would expect it to have been based on the same code (if for no other reason, for clarity). I couldn’t find any explanation of why this call was created or what problem it was meant to solve. So I was hoping perhaps someone would know and remember the rationale for the newer call and/or the purposes of the two different variables on which the calls are based, and could tell me either “they’re the same thing, use whichever you like” or “here is the situation in which they can return different results.”
  • 3 Votes
    2 Posts
    866 Views
    donhoD
    The RC will be available before October 30. Sorry for the delay.