• 0 Votes
    9 Posts
    491 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
    310 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
    315 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
    405 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
    5 Posts
    586 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
    150 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
    807 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
    120 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
    144 Views
    No one has replied
  • Move Line Up

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

    @guy038

    More good information. Thank you!

    Barry

  • Notepad++ 8.8.8 release candidate

    Announcements
    2
    7 Votes
    2 Posts
    1k Views
    donhoD

    FYI, v8.8.8 RC has updated to RC2 to enhance the security of auto-update.

  • 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
    479 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
    290 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.

  • Update CLI command

    Help wanted · · · – – – · · ·
    4
    0 Votes
    4 Posts
    5k Views
    D

    All the gup.exe does is to check if there is a newer version than specified by the string input parameter is available. It does not handle the update itself. You would have to code it for yourself.

    For example like this in Powershell 5.1 for the 64bit version of Notepad++.

    [string]$ScriptFolder = $PSCommandPath | Split-Path -Parent $Notepad = Get-ItemProperty -LiteralPath 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++' $InstalledVersion = $Notepad.DisplayVersion $UpdateCheck = Invoke-WebRequest -Uri "https://notepad-plus-plus.org/update/getDownloadUrl.php?version=$InstalledVersion" $UpdateCheckAnswer = ([xml]$UpdateCheck.Content).GUP if ($UpdateCheckAnswer.NeedToBeUpdated -eq 'yes') { $Filename = $UpdateCheckAnswer.Location.Split('/')[-1] Invoke-WebRequest -Uri $UpdateCheckAnswer.Location -OutFile "$ScriptFolder\$Filename" & "$ScriptFolder\$Filename" '/S /closeRunningNpp' }
  • 0 Votes
    1 Posts
    157 Views
    No one has replied
  • using the command line switches, but not working

    General Discussion
    2
    0 Votes
    2 Posts
    186 Views
    PeterJonesP

    @Dan-McGovern ,

    -openFoldersAsWorkspace works just fine with -settingsDir and -titleAdd and other similar options, in my experiements.

    But, as far as I can tell, once -openFoldersAsWorkspace is specified anywhere on the command line, all path arguments are treated under the rule, “if it’s a folder, put it in the FolderAsWorkspace panel, and don’t open any file-paths directly”.

    That seems like the intent, because I don’t think it was considered that notepad++.exe myfile.txt -openFoldersAsWorkspace SomeDirectory\ would be a normal use-case (ie, when adding the feature, didn’t think that you’d want to open a file from one location, plus a folder-as-workspace from another, in the same command-line)

    If you don’t have the -multiInst argument, and if you don’t have the multi-instance preference set, then you could break it up into two calls of notepad++.exe

    "%np%" -settingsDir="..." -openFoldersAsWorkspace "%workspace%" "%np%" -settingsDir="..." "%file%"

    In that incantation, the oFAW has to come first, because of the known-and-never-solved issue that oFAW doesn’t work on an already-running instance of Notepad++.

    … But since I seem to remember that you do have the multi-instance preference set, that’s not likely to work for you. In which case, until you do a feature request, and it was accepted and implemented and released, I don’t know that you’ll get exactly what you want.

    I’ll update the manual to better explain current behavior with the oFAW option.

  • PHP Linter PythonScript

    General Discussion
    8
    0 Votes
    8 Posts
    773 Views
    PeterJonesP

    @pbarney said in PHP Linter PythonScript:

    my impression is that Pythonscript ships with 2.8

    From Plugins Admin, PythonScript v2.1.0 uses Python v2.7.18 (as far as I am aware, there is no such thing as Python v2.8).

    However, if you go to the PythonScript releases page, you will see that there is also an “alpha” track of PythonScript v3.0.x (currently at 3.0.24), which use Python v3.12.xx. This is the route I personally recommend (caveat below).

    The maintainer of PythonScript has chosen not to take PythonScript 3 out of “alpha” until it fully supports non-unicode encodings (ie, until it supports the 1980s-style character set encodings), so until that point, to get a maintained version of the Python interpreter for PythonScript, you have to manually install an alpha version of PythonScript – essentially, you have to put up with legacy syntax of Python if you want to deal with legacy non-unicode encodings of text. I personally have no need of supporting 80s technology for file encodings (and I pity anyone for whom their circumstances demand that they deal with file encodings that haven’t been brought into this millennium anytime in the last quarter century), so I use the 2020s version of Python for my PythonScript. (My personal opinion is that PythonScript should start shipping PythonScript 3 as non-alpha, and that they just prominently make it clear that if you have to deal with the old character sets that you should instead install the outdated PythonScript2 version from the releases page. But my opinion on such things holds no weight.)

  • Support for Plugins Admin & NppPluginList

    Notepad++ & Plugin Development
    74
    1 Votes
    74 Posts
    124k Views
    pbarneyP

    Would it be possible to add a column (or two) to the Plugins Admin? Created and Last Updated sortable columns to be able to find the most recent plugins.

    It would also be wonderful to have another column Description that just gives the first line of the longer description that is displayed in the lower box when you click on a plugin.