Categories

  • Announcements regarding our community

    331 Topics
    5k Posts
    donhoD
    As title.
  • Frequently Asked Questions and Guides (about Notepad++ and this Forum)

    38 Topics
    64 Posts
    PeterJonesP
    Corrupted Session Starting in Notepad++ v8.6.5, it will store session.xml.inCaseOfCorruption.bak next to session.xml, and will automatically use that if session.xml is corrupted. However, if you ever find that you open Notepad++ (especially after an update or a system crash) and find that the files opened weren’t in the same state as when you let them, you can try this procedure: Exit Notepad++ Windows Explorer, go to %AppData%\Notepad++ (or in your appropriate config-file location if you aren’t using AppData for config) Rename session.xml to session.xml--keep Copy session.xml.inCaseOfCorruption.bak to session.xml Run Notepad++ → If it’s now showing the right copy of your files, great! If not, exit Notepad++, delete session.xml, and rename session.xml--keep back to session.xml .
  • Notepad++ discussions that don’t fit in other Categories

    4k Topics
    22k Posts
    F
    @PeterJones said: You also mentioned “uninstalling the plugins and reinstalling them” – that sounds like you have both plugins installed at the same time. I highly doubt that it’s a good idea to have both Compare and ComparePlus installed on the same instance. Sorry, I only have Compare Plus installed now - so I tried uninstalling and re-installing it to see if it was fixed. Both are not installed. As far as I can tell, neither Compare nor ComparePlus has a “cancel” action. They have a “Clear Active Compare” action. Are you saying that you hit that “Clear Active Compare” button while it’s still working on making the comparison, to stop it in the middle? Or do you just mean that you are clearing the comparison once it’s done? I am hitting this cancel button to stop it in the middle of working; [image: 1786224004669-97162e74-5601-4918-b18e-1dfa20830fa5-image.jpeg] But with normal usage (telling it to compare, looking at the results, clearing the active compare), I have never gotten to the point that the plugin just hangs indefinitely. If you have a pair of files (with no private information) that you can get to cause the hang reliably, and can explain, in detail, the procedure that you use to cause the freeze, then I would recommend that you create an issue at the plugin’s GitHub repo so that you can let @pnedev know about the problem. I will do this - although I suspect it will not reproduce since these same files worked at first for me too. Thank you…
  • 10k Topics
    55k Posts
    PeterJonesP
    @Passant-Delarue , Initial guess: turn off “. matches newline”, otherwise your .* will greedily match the whole file.
  • Technical discussion of building or contributing to Notepad++ or Plugin codebases

    1k Topics
    9k Posts
    CoisesC
    @M-Andre-Z-Eckenrode said: With v0.6.3.2 in place, I re-ran several of the tests I’ve been doing, and found no anomalies this time, so that seems to have taken care of it. Thank YOU! Thank you. This error has been there since I first designed this regular expression search technique, in Columns++. It just apparently only shows up in rare circumstances. I’ve still never seen it. Out of curiosity, is there any kind of basic explanation you can relay in layman’s terms for why it was doing what it was doing? Notepad++ uses an open source component called Scintilla to display editable text. Scintilla maintains the text in an internal “split buffer,” meaning that there can be a gap at an arbitrary position within the text. It uses that gap to be able to make changes that add or remove characters in the middle of the text without having to copy all the following text to a new location every time there’s one small change. For a few reasons, when I implemented search, I wanted to use the same regular expression engine that Notepad++ uses, Boost.regex, but I wanted to include my own copy in the plugin and manage it directly, rather than going through the hybrid Scintilla/Boost interface that Notepad++ exposes, and I wanted to access the Scintilla split buffer directly. To do that, I had to create something called iterators. In C++, an iterator is essentially an indirect way of referencing data that has simple operations like “move to the next character” and “tell me what character you’re pointed at.” I designed iterators for UTF-8, for single-byte character set ANSI and for double-byte character set ANSI that could traverse the Scintilla buffer, mind the gap, and return the results to the Boost.regex engine as if it were seeing a contiguous string of UTF-32 Unicode characters, regardless of the actual encoding. Now, there’s a caveat when you ask Scintilla for the location of its internal buffer positions. You get two segments (because of the gap). But Scintilla warns that you can’t trust those positions once you do anything else in Scintilla, or once any user interaction is possible (even if the user doesn’t change the text). So I made sure to “invalidate” my internal pointers whenever control left my plugin: such as between finding text and changing it. In order to ask Boost.regex for the replacement string when doing a change, I have to keep a particular Boost.regex structure that references the original match, so it knows how to interpret capture group substitutions. I was careful to invalidate the buffer pointers before I called Boost.regex.format. Except… The match structure in Boost.regex doesn’t store the Scintilla character positions of the match. It stores iterators. And the iterators I designed, to be as efficient as possible, hold copies of the pointers into the Scintilla split buffer. So invalidating the pointers I use to generate iterators for Boost.regex does nothing to the iterators Boost.regex already stored in the match structure. For reasons I can’t guess, both you and your brother seem to have something about your systems that causes Scintilla to reposition the gap in its internal buffer between find and replace. It never seems to happen here, but I finally realized that my attempt to protect against that happening is ineffective. What I did to test was add a Scintilla call each time I invalidate the buffer pointers that causes Scintilla to move everything to the beginning and put the gap at the end. That means all the iterators will have the same pointers. It’s not a good long-term solution, though, because in a large file moving the gap to the end every single time anything changes could make response sluggish. So it might take me a little while to decide on the best solution. I’m glad you documented the error so well. Now I know what to fix, I just have to work out the best way to do it.
  • Security shouldn’t be the privilege of rich people

    72 Topics
    358 Posts
    S
    I have checked out the https://github.com/donho/xmlSigner project and it is what I needed. I have used that project to correctly pass the XML signing test. I have opened some issues with that project. Here is a quick summary of how the update process works. The wingup code first queries a website to determine if an update is required and the returned XML provides information to be used later. None of the information in the XML is used if it doesn’t pass the XML security check. After passing the security check the code looks for the update status and download location, assuming an update is required. After prompting the user to download the update and finishing the download, it checks the code signing of the installer. Assuming that the code signing is valid and the correct certificate, it starts the install. I will try to document all the customizations to the code from Notepad++, wingup and xmlSigner to make it work in my project so that future users have a place to start, but that will be after I am sure its all working correctly with the new security updates. Thank you @xomx for pointing me in the right direction.
  • All the issues (publications/questions) about binary translation

    76 Topics
    480 Posts
    U
    @xomx Thank you very much for the work you have done, which will lead to improvements in Notepad++ in the future. I am very grateful to you.
  • Say fuck to Notepad++ here, and only here

    95 Topics
    560 Posts
    PeterJonesP
    @makeymalik , Longstanding known issue: https://github.com/notepad-plus-plus/notepad-plus-plus/issues/8660 From what I understand from that Issue, it’s usually related to the OS display-scaling setting in High-DPI modes. There’s a volunteer who has been slowly working through the known DPI issues, but hasn’t gotten to this one
  • No support request and bug report here, only unconditional praise and worship

    3 Topics
    8 Posts
    K
    I’m used to ISPF editing, using column based information. (SPFLite is a dumbed down version) I can do most of what I need in there, but N++ fills in holes in ISPF edit. For example, N++ can add, change or delete information across several lines. RegEx is available on ISPF edit, but I’m too busy to learn it. N++ does this much easier.
  • Share personal tips and cool uses for Notepad++, and similar

    63 Topics
    243 Posts
    David Brigden52D
    Seems they decided that it they couldn’t be the heroes, rhat they would be the villains.
  • Computer/Programming Jokes are welcome here

    59 Topics
    190 Posts
    Lycan ThropeL
    @xomx , Dave Bowman: "Open the pod bay doors, HAL. " HAL: “I’m sorry, Dave. I’m afraid I can’t do that.” [image: 488a3017b34fe587.png]