Categories

  • Announcements regarding our community
    267 Topics
    5k Posts
    donhoD

    Due to regression of UDL syntax highlighting in v8.7.7, l’auto-update has been reverted back to v8.7.5.

  • Frequently Asked Questions and Guides (about Notepad++ and this Forum)

    36 Topics
    59 Posts
    PeterJonesP
    SubFAQ: Using Plugin Commands in Macros

    Plugin commands (even for the default plugins, like MIME Tools) are not macro-recordable. However, with a bit of effort on your part, they can be macro-playable (with some limitations).

    The reason that they aren’t macro-recordable is that macros make use of the menu command ID for storing which command to use. For built-in menu commands, those commands all have a fixed ID, so from one run of Notepad++ to the next, they will always keep the same menu command ID. Since the plugins available and taking up menu space can be different from run-to-run in Notepad++, the application actually assigns the menu command IDs for each plugin dynamically. Thus, if you install or upgrade a plugin such that the number of plugin menu commands change, the next time you run Notepad++, other plugins will possibly get different command IDs compared to the previous run (depending on what order Notepad++ processes each of the plugins).

    Due to this dynamic menu command ID, Notepad++ would not be able to guarantee that a command ID it records for the macro would work for the same command the next time Notepad++ is run, and thus does not record macro commands.

    There are two workarounds:

    Use a scripting plugin (like PythonScript) instead of Macros to do your automation (because scripting plugins usually have helper commands that can search through the menu to be able to run even plugin menu commands). This adds overhead, and you might have to learn a new programming language, but it gives you a lot more power.

    Cheat the macro system. This will be described below, but has the downside that you have to manually edit the macro XML, and you might have to tweak it if you install or upgrade plugins.

    How to Cheat the Macro System

    As I said earlier, the macros are dynamic, depending on the order that Notepad++ processes the plugins and how many menu commands each plugin uses. However, for any stretch of time where you don’t install any new plugins or upgrade existing plugins, Notepad++ will process your plugins in the same order, so they will get the menu command IDs for each run.

    So to cheat the macro, you can snoop to find the current menu command ID for each action, then manually edit the macro’s XML, then restart Notepad++, and the macro should work until the next time you install or update a plugin.

    Let’s assume that you want to have a macro that will Select All, then Plugins > MIME Tools > Base64 Encode with Padding, then Select All, then Copy the results to the clipboard. (inspired by this discussion). Record this sequence and save it as RecordedMacro with no assigned keyboard shortcut. (Just for this example; the names and shortcuts are obviously up to you for your real task.)

    To snoop the menu command ID, I recommend the NppUISpy plugin. So install that plugin, then run it’s Spy! command (either from its menu or toolbar icon).

    For example, with my current plugins, Spy! tells me that Base64 Encode with Padding is Command Id = 22064

    Open %AppData%\Notepad++\shortcuts.xml and edit your recorded macro.

    It would start out as something like this:<Macro name="RecordedMacro" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2013" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2013" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2178" wParam="0" lParam="0" sParam="" /> </Macro> That is the Select All command twice and the copy (skipping the plugin command between the two Select All. You would need to edit it to be like:<Macro name="RecordedMacro" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2013" wParam="0" lParam="0" sParam="" /> <Action type="2" message="0" wParam="22064" lParam="0" sParam="0" /> <Action type="0" message="2013" wParam="0" lParam="0" sParam="" /> <Action type="0" message="2178" wParam="0" lParam="0" sParam="" /> </Macro> which puts the 22064 that I found with NppUISpy in between the two Select All instances. Please note that many recorded editor commands (like copy, paste, home, etc) will be type="0" with the scintilla command in the message="..." field; whereas menu commands like the plugin command will be type="2" and put the menuCommandID into the wParam="###" field. See the user manual’s <Macro><Action> details for more. Save the shortcuts.xml and restart Notepad++.

    At this point, running your macro should do the select all, the conversion, the select all, and the copy.

    The next time you installed or upgraded a plugin, you would need to re-run Spy!, and check whether the command ID has changed; if it has, edit shortcuts.xml again, and replace the example 22064 with the new number.

  • Notepad++ discussions that don’t fit in other Categories

  • 10k Topics
    52k Posts
    CoisesC

    @Peter-Barnett said in Column mode edit is sticky and needs Esc to leave:

    What use is this sticky selection?

    Alan showed you where to switch it off.

    The use is for people who use multiple selections; it allows converting a column selection into a multiple selection. It was included when new features for working with multiple selections were added a few versions ago. For those of us who use rectangular selections often and multiple selections almost never, it’s more annoying than helpful. As I recall, the option to turn it off was added pursuant to our complaints.

    If you never use multiple selections, unchecking the Enable Multi-Editing box will also restore another behavior that was changed. With Multi-Editing enabled, you cannot hold down the Ctrl key, then click and drag in a selection to copy it. You must begin dragging, then press and hold Ctrl. (Ctrl first is used to remove or replace a selection from a multiple selection.) The familiar behavior, in which you can press and hold Ctrl before or after you begin dragging, works when the box is not checked.

  • Technical discussion of building or contributing to Notepad++ or Plugin codebases

    1k Topics
    8k Posts
    Alan KilbornA

    @Lycan-Thrope said :

    there’s so many moving parts, that trying to interlace them all into one homogenous blob of code would be daunting for anyone to even fathom, let alone produce

    If this is the thinking, the project is in trouble.

  • Security shouldn't be the privilege of rich people
    49 Topics
    195 Posts
    dinkumoilD

    @Emmanuel-Meekers
    AFAIK there is no technical means to limit the number of plugins a user is able to install. You can only remove the capability to install plugins at all.

    You could do a survey which plugins your employees need. There can be different needs, e.g. technical staff likely needs other plugins than employees that ar more involved in administrative tasks. Then you can install these plugins on the employee’s machines.

    After that you need to rename or delete <install-directory>\updater\GUP.exe to prevent users from installing any other plugins. As long as your employees don’t have admin access to Notepad++'s install directory, they are not able to revert these changes.

    The disadvantage is that your users neither will be able to update Notepad++ itself nor the installed plugins. This is something your ICT department has to do.

  • All the issues (publications/questions) about binary translation
    72 Topics
    457 Posts
    Richárd StockingerR

    Hi!

    I’ve updated the Hungarian language file to be compatible with the latest version (8.7.1) of Notepad++.

    This is a major, complete and up-to-date re-translation of this file, including:

    Translating the missing terms Adding missing accelerator letters (also for dialogs) Correcting the previous spelling errors (e.g. capitalization) Re-translating the inaccurate expressions more accurate Re-translating the outdated terms

    Pull request: #15824

  • Say fuck to Notepad++ here, and only here
  • Blog posts from individual members
    56 Topics
    211 Posts
    barisusakliB

    Should be fixed now, thanks for reporting!

  • Computer/Programming Jokes are welcome here

    46 Topics
    141 Posts
    Terry RT

    my-code-doesnt-work-lets-change-nothing-and-runit-again.png

    9999.jpeg