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
    • ShobanskyS

      Feature request

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      3
      0 Votes
      3 Posts
      308 Views
      PeterJonesP
      @Shobansky , See my longer answer to you here. I’m not sure why you started a new Topic when you were already participating in a Topic about exactly the same thing, and when there was a Topic created 5 days ago that was essentially the same thing. (Also, naming a Topic “feature request” is not helpful to people looking through the titles of the recent posts, because it tells them nothing about the contents of said feature request. Titles should be meaningful if you want meaningful discussion.) Also, since I’m not sure you’ve seen it, our new feature FAQ explains that, while we can talk about ideas all we want in this Community of Notepad++ users, it isn’t an official Feature Request until you follow the instructions in that FAQ to post the Feature Request to the official Issues tracker for the project.
    • M

      Notepad++ 8.9.4 (x86)EXE Upgrade Leaves Duplicate ARP Entry

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      3
      0 Votes
      3 Posts
      451 Views
      donhoD
      @metaad Please try this one: https://github.com/donho/notepad-plus-plus/releases/tag/TEST
    • smcclosrS

      Inability to save file to OneDrive with 8.9.6 version of Notepad++

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      2
      0 Votes
      2 Posts
      58 Views
      PeterJonesP
      @smcclosr , The UAC for Admin credentials is always given when the Windows OS replies to Notepad++ that permission is denied for writing to a file. Unfortuntely, Windows can give that message even when it’s not really a permissions issue. As @mathlete2 says in this similar discussion from April, it might be that OneDrive hasn’t fully connected when you log in – so if OneDrive isn’t “awake” yet, then when Notepad++ tries to read or write from a OneDrive folder, Windows might report that as “permission denied”. And in December, @xomx mentioned in another discussion that Windows “Controlled folder access” can cause problems for Notepad++ and OneDrive. I suggest looking into the suggestions made in those two recent discussions, and see if either ends up being relevant to your issue.
    • submitificS

      HOW Do You Add Keyboard Shortcuts

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      13
      0 Votes
      13 Posts
      5k Views
      PeterJonesP
      @Italian-menu , Why in the world would you think your post helpful? “depending on what you’re using” – of course they are using Notepad++. This is a Notepad++ forum. If you cannot give a human-created Notepad++ -specific answer, don’t bother posting.
    • S

      Thread about the function pane (filtering, search cancel, autowidth, and visuals)

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      16
      0 Votes
      2 Posts
      180 Views
      PeterJonesP
      @shodanx2 said: I have a few observations to make about the function pane and a few improvements to propose. I could not find the keybind, is there one ? Not by default. But like all menu commands, you can assign one with Shortcut Mapper, if you want one. There are more menu entries in Notepad++ than there are keystrokes available, so not every menu entry gets a keystroke. I propose LeftALT+F by default ? As far as I have been able to tell, the way that Notepad++ internally handles shortcuts doesn’t distinguish the left and right alt keys. It’s just “Alt” as the modifier. Unused horizontal space It seems there is this horizontal space, maybe it’s useful in another language, but for me, there isn’t anything useful in that space. Maybe it should be reduced somehow ? That’s the way that treeview controls generally work. I think it would take a huge amount of development effort to customize or re-create oit. X. Function filtering In my language, functions which begin with “" … It would be great to be able to hide functions that start with "”. but have a toggle button to show them if I suddenly need them. Interesting feature idea. I’m not sure how easy that would be to implement. But this would be the first thing you said that I would think would be worth putting in an official feature request. (If you think that this Community Forum is the place to make feature requests, you need to read the Feature Request FAQ) X. Resetting the function search X. function search length has a maximum ! I haven’t used the function search feature enough to be able to comment on those. If other users agree with you on those items, they could each go in as separate feature requests. X. The function search sidebar is somehow, never the right width ! I don’t know why, but I am constantly adjusting the width of the function search sidebar. I don’t know why I can’t just set it once and forget it. Presumably just the right width, I shouldn’t need to touch it again. But somehow, I don’t know what I do, but I do move and resize notepad++ a lot with AltSnap and I end up often having to readjust the function sidebar width. I don’t know that there’s anything the developer can do to fix that. If you are accidentally resizing it, he cannot prevent it. The docking panels are designed to be resizable. And I struggle to hit that narrow width to drag it. Hmm… Do you have a high-DPI monitor? Because on my old-fashioned 100%-scaling setup, it seems to me to be the same width as any size resize control in any windows application. Beside what could be done to automatically have it be “the right size” automatically. “The right size” is meaningless. Everyone disagrees on what that would be, which is why it’s user controlled. Besides, all the docking panels share the same basic control, and everything docked on the right (for example) shares the same width… so what would be “perfect” (in your opinion) for the FunctionList on the right might be too small for the DocumentList (for example) on the right. I suggest these. Make middle-click-drag allow drag-resizing of the sidebar I seem to remember that was suggested elsewhere in the forum, and that someone wrote a script for the PythonScript plugin which could do that. But maybe it was just a related thing I’m remembering. search, search. Okay, this discussion is what I was thinking of (the “move the ‘other view’ separator” portion. I haven’t studied the scripts provided, but if one of them addressses the separator, my guess is that it could be modified to work on the docking-separator instead. X. The function sidebar cannot be docked to the other view separator The docking code for Notepad++ hasn’t been set up to allow “dock to middle” (which would be made more complicated because sometimes the views have a vertical separation when they’re side-by-side, an sometimes a horizontal separation when they are stacked top/bottom). I think there’s already an existing official feature request for dock-to-middle, so you might want to search through the existing features (make sure to remove the “open” filter, because there might be a closed/rejected request) to see if any of the requests about “dock” or similar might already ask for that. But if you cannot find one, maybe I’m mis-remembering (or maybe it was just a user in the Community, who never bothered to put in an official feature request). X. Visual glitching during resize Not a big deal, but the re-paint algorithm is quite sloppy It could be improved Can you be more specific about that? Under what circumstances? What’s your setup like (monitors, DPI, etc… ? > Debug Info is always useful for helping understand your setup)? What do you mean by “sloppy”? Ok, this is everything I had for you regarding the Function sidebar, thanks ! As fellow users, we might be able to talk about it, or commiserate with you. But if there are real problems or real feature requests, you would have to create separate tracking issues for each request, as described in the already-linked FAQ. (Putting a bunch of requests into a single Feature Request issue means the individual sub-requests won’t be properly tracked, and one or more are likely to get lost.) From above, I see two possible feature requests for sure (hide functions starting with _, and dock-to-middle), and another two that are likely reasonable, if someone else can confirm (the two function-list filtering points). I think the “sloppy re-paint” needs to be given more detail before suggesting that a bug report get submitted. But for any feature request or bug report in the official tracker, make sure you search through existing reports/requests (open and closed) before submitting one, to make sure it’s not a duplicate.
    • arnaud deretteA

      nppgzipfileviewer - improvements request

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      2
      0 Votes
      2 Posts
      221 Views
      PeterJonesP
      @arnaud-derette , I have never used that plugin. But when I went to their homepage (https://github.com/Pascal-Krenckel/NppGZipFileViewer), they say, “This plugin is deprecated, please switch to CompressedFileViewer.” Once an author deprecates a plugin, there won’t be support for requests. I have put in a request to ask that the author remove the deprecated plugin from the Plugins Admin list (and, if they want, to add the replacement plugin into the list). But you should try their replacement plugin. And if it doesn’t improve your experience, you can go to the CompressedFileViewer’s issue tracker (https://github.com/Pascal-Krenckel/CompressedFileViewer/issues), and make your request(s) there.
    • guy038G

      Is a filename legal?

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      1 Votes
      2 Posts
      229 Views
      guy038G
      Hi, All, I did additional tests, especially regarding characters allowed with or without quotes ! Although practically any character can be put within a file name when using the rename option of the Explorer, it happens that, under DOS, it is safer to surround the filename with double quotes when you insert most of the allowed symboles So, here is an updated version of my information part : Syntaxes / Chars ALWAYS forbidden : \x00-\x1F " * / : < > ? \ | \x7F : . at the END of file name : SPACE at the END of file name : ALL DOTS file name : PRN AUX NUL : COM1 COM2 com3 COM4 COM5 COM6 COM7 COM8 COM9 COM¹ COM² COM³ : com1 com2 com3 com4 com5 com6 com7 com8 com9 com¹ com² com³ : LPT1 LPT2 LPT3 LPT4 LPT5 lpt6 LPT7 LPT8 LPT9 LPT¹ LPT² LPT³ : lpt1 lpt2 lpt3 lpt4 lpt5 lpt6 lpt7 lpt8 lpt9 lpt¹ lpt² lpt³ Chars allowed WITHIN double quotes : ! % & ' ( ) + , ; = [ ] ^ ` { } ~ : SPACE when at BEGINNING of file name Chars allowed WITHOUT double quotes : # $ - @ _ : . if NOT at END of file name : SPACE if NOT at BEGINNING or END of file name You’ll note that my regex, described in my previous post, allows most of the symbols, even without quotes, as they, generally, can be inserted when using the Explorer ! BR guy038
    • S

      autoupdater and XMLDSig

      Watching Ignoring Scheduled Pinned Locked Moved Security
      7
      0 Votes
      7 Posts
      810 Views
      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.
    • Sweet ManS

      Windows content is blank on remote notepad++ sessions

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      19
      0 Votes
      19 Posts
      9k Views
      xomxX
      [image: 1777628352084-npp-working-rendering-modes-for-rdp.png]
    • minig0dM

      Incorporating Prettier and/or js-beautify

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      3
      0 Votes
      3 Posts
      1k Views
      PeterJonesP
      @Shobansky , A few months after the original post was made, this FAQ was created, which explains how to use pork2sausage plugin (or the run menu, or the NppExec plugin) to transform text. And since things like Prettier or js-beautify exist, it makes more sense to pass formatting to an external utility that’s customized for a specific programming language, to make users of that programming language happy – rather than relying on limiting the formatting to whatever rules that one developer adds to the editor. (Given the arguments people have over the auto-indentation, and how the developer hasn’t been able to keep everyone happy even on that “simple” aspect of formatting, trying to get a generic formatter to the point that everyone is happy is virtually impossible.) I don’t understand why it doesn’t have some formatting capability like other editors… Every editor has strengths that it focuses its feature development on. Notepad++'s strengths are in the ease and availablilty of plugins and running external applications… so plugins specific to the language (like HTML Tidy) or plugins that launch external programs (like pork2sausage) are the way that Notepad++ made it easy to get formatting customized the way you want it, rather than restricting you to the ability of the N++ developer to support and implement. And the developer’s philosophy is that, unless it’s something that he wants to put his own stamp on, if it’s already been implemented well in a plugin or can be easily run through the run-menu/pork2sausage/nppexec, then he doesn’t want to waste his effort on doing something mediocre built-in when something good-to-great already exists. As someone with a full time job completely unrelated to Notepad++, he wants to focus his limited development time to things that he likes, he wants, or that he can add value to. Moreover, in the modern realm, things are moving toward LSP-based solutions – so if the languages you program in have LSP servers available, then (as was mentioned in this very similar question a few days ago) you can use one of the LSP plugins (the plugin by Kered or @Ekopalypse’s LSP client plugin) – so if your language’s LSP server has the code formatting feature, the LSP plugin you choose should be able to activate that.
    • I

      About ( Ctrl + F ) ...

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      1
      -2 Votes
      2 Posts
      303 Views
      PeterJonesP
      @ioc2e3 , This is a copy of your GitHub issue. But I don’t think anyone has any clue what you actually want or are asking about. Could you please clarify what you’re asking about? Is it something that only happens if you use that specific localization, or does it happen in English as well?
    • B

      8.9.4 installation shows error for AppX call

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      0 Votes
      2 Posts
      228 Views
      xomxX
      @Bodenseematze said in 8.9.4 installation shows error for AppX call: I don’t know the exact message Probably(?) the same as in the https://community.notepad-plus-plus.org/post/105358
    • Rex TheodoreR

      Any NPP plugins available to format programming languages such as TCL and C++

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      0 Votes
      2 Posts
      295 Views
      EkopalypseE
      @Rex-Theodore You can always use the Run menu to call up the formatters with the current buffer. However, since you mentioned that you use Python, you can use the PythonScript plugin and trigger an action whenever you receive a NOTIFICATION.FILESAVED. If you want more features, you might want to check out Kereds or my LSP client for Notepad++. However, this means that the languages you use must have an LSP server.
    • 周学习周

      傻逼软件,傻逼作者,傻逼呆湾人

      Watching Ignoring Scheduled Pinned Locked Moved Boycott Notepad++
      6
      -1 Votes
      6 Posts
      2k Views
      Lycan ThropeL
      @Fii-Ert said in 傻逼软件,傻逼作者,傻逼呆湾人: 美国干涉台湾,又怎么说? 台湾的绿圾执政党,自甘堕落化为纳粹,由不得别人不干涉! 347 你这种逻辑,正是共产主义灌输教育的典型特征——试图将共产主义的侵略行径粉饰为某种“好事”,而事实绝非如此。这本质上不过是一种混淆视听的企图。你将美国的援助视为“干涉”,这纯粹是你基于自身偏见所构建的一种妄想式解读,而非客观现实。中国必须远离台湾,这一点毫无商量余地。
    • EkopalypseE

      DAP client plugin

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      1
      2 Votes
      1 Posts
      45 Views
      No one has replied
    • Invert BDI

      [New Plugin]Instantaneous Dark/Light theme switch (+automatic switch mode)

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      2
      1 Votes
      2 Posts
      269 Views
      Abdellah HssA
      @Invert-BD Nice addition to the software. But it would be better if it was downloadable via the plugin admin (I didn’t find it there). That would make significantly more people know it, otherwise most Npp users won’t even know that it exists.
    • donhoD

      Notepad++ release 8.9.6

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      1
      3 Votes
      1 Posts
      1k Views
      No one has replied
    • donhoD

      Notepad++ v8.9.6 Release Candidate

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      1
      3 Votes
      1 Posts
      254 Views
      No one has replied
    • sound-fxS

      Scripts to align text

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      5
      4 Votes
      5 Posts
      5k Views
      sound-fxS
      I’ve added an option to pad to the right side of the selected character. This preserves the character’s position and instead aligns the non-space text to the right of the character. The default pads to the left side, so the character itself gets aligned. A complementary set of scripts, align_text_right.py and align_text_right_1.py, use this new option. Here’s the complete set of scripts. align_text.py: #------------------------------------------------------------------------ # 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. padding_side : instance of PaddingSide, optional Indicates which side of the character gets the padding. The default is PaddingSide.LEFT, so the character itself gets aligned. Set to PaddingSide.RIGHT to preserve the character's position and instead align the non-space text to the right of the 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. If there is no selection, use the character at the # current cursor position; if that is unavailable, fall through to the # prompt below by treating the alignment character as whitespace. #---------------------------------------------------------------------------- if selected_text: align_char = selected_text[0] else: current_pos = editor.getCurrentPos() align_char = editor.getTextRangeFull(current_pos, current_pos + 1) if not align_char: align_char = ' ' #---------------------------------------------------------------------------- # Optionally use this code to get the align_char from within the selection # at whichever end has the cursor. #---------------------------------------------------------------------------- # if selected_text: # (startByte, endByte) = editor.getUserCharSelection() # if startByte == editor.getCurrentPos(): # align_char = selected_text[0] # else: # align_char = selected_text[-1] # else: # current_pos = editor.getCurrentPos() # align_char = editor.getTextRangeFull(current_pos, current_pos + 1) # if not align_char: # align_char = ' ' # 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 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 align_char_cols = [line.find(align_char, start) for line in text_lines] # Only lines that contain this instance participate in this pass. # A failed find() returns -1, and using that as a slice index would # make lines without this instance incorrectly affect the target. lines_with_instance = [(line, col) for (line, col) in zip(text_lines, align_char_cols) if col >= 0] if not lines_with_instance: break if padding_side == PaddingSide.LEFT: # Align the alignment character itself, removing any spaces # immediately to its left before inserting the required padding. target_col = max(len(line[:col].rstrip()) for (line, col) in lines_with_instance) for (idx, line) in enumerate(text_lines): align_char_col = align_char_cols[idx] if align_char_col >= 0: text_lines[idx] = line[:align_char_col].rstrip().ljust(target_col) \ + line[align_char_col:] start = target_col + len(align_char) elif padding_side == PaddingSide.RIGHT: # Align the non-space text after the alignment character. # Preserve the alignment character itself, but # replace any existing spaces after it with the required # padding. suffix_starts = [] for (line, col) in lines_with_instance: suffix_start = col + len(align_char) while suffix_start < len(line) and line[suffix_start] == ' ': suffix_start += 1 suffix_starts.append(suffix_start) target_col = max(suffix_starts) for (idx, line) in enumerate(text_lines): align_char_col = align_char_cols[idx] if align_char_col >= 0: suffix_start = align_char_col + len(align_char) while suffix_start < len(line) and line[suffix_start] == ' ': suffix_start += 1 text_lines[idx] = line[:align_char_col + len(align_char)].ljust(target_col) \ + line[suffix_start:] start = target_col else: raise ValueError('Unsupported padding_side: {}'.format(padding_side)) 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() align_text_1.py: from align_text import align_selected_text align_selected_text(max_align_char_count = 1) align_text_right.py: from align_text import align_selected_text, PaddingSide align_selected_text(padding_side = PaddingSide.RIGHT) align_text_right_1.py: from align_text import align_selected_text, PaddingSide align_selected_text(max_align_char_count = 1, padding_side = PaddingSide.RIGHT)
    • guy038G

      New displaying of the "Search Results" panel

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      1
      1
      0 Votes
      1 Posts
      108 Views
      No one has replied