<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Why do the HTML tag plugin command IDs change with each update of Notepad++]]></title><description><![CDATA[<p dir="auto">The version of the HTML tag plugin is the same, but the command IDs constantly change with each update of Notepad++.</p>
<p dir="auto">This is clearly visible through the NppUISpy plugin.</p>
<p dir="auto">With each update of Notepad++, I restore all the plugins I need from a backup along with the plugin settings.</p>
<p dir="auto">And I noticed that in my internal context menu of Notepad++, the lines related to the HTML tag plugin constantly change with each new version, and I constantly have to edit these lines.</p>
<p dir="auto"><img src="/assets/uploads/files/1794596522471-html-tag-885.png" alt="html tag 885.PNG" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1794596541839-html-tag-899.png" alt="html tag 899.PNG" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1794596565359-html-tag-8991.png" alt="html tag 8991.PNG" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1794597431530-222.png" alt="222.png" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1794597442456-333.png" alt="333.PNG" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/topic/27716/why-do-the-html-tag-plugin-command-ids-change-with-each-update-of-notepad</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 21:48:18 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/27716.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Nov 2026 19:17:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 21:17:14 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andrecool-68" aria-label="Profile: andrecool-68">@<bdi>andrecool-68</bdi></a> <a href="/post/106791">said</a>:</p>
<p dir="auto">If you have the constant IDs of this plugin, everything works perfectly, and when switching the language in Notepad++, the context menu also automatically changes to the Notepad++ language.</p>
</blockquote>
<p dir="auto">“if”.  But they aren’t.  And because there is no way that plugins can guarantee specific commandID for Notepad++ menus, and there’s no way for Notepad++ to assign a “constant” ID, that’s not going to happen.  (Notepad++ cannot know how many plugins exist in the world, nor how many menu commands each will use; the plugin interface is public, so anyone could write their own private plugin.  So Notepad++ cannot allocate fixed commandIDs.  I cannot see a way around that which would work in all circumstances.)</p>
<p dir="auto">If you have a plugin like this whose commands translate, you can put in both the English and the Localized version:</p>
<pre><code>		&lt;Item FolderName="AndreCool" PluginEntryName="HTML Tag" PluginCommandItemName="Перейти к соответствующему тегу" /&gt;
		&lt;Item FolderName="AndreCool" PluginEntryName="HTML Tag" PluginCommandItemName="Find matching tag" /&gt;
</code></pre>
<p dir="auto">then whichever localization is picked, that one will be in the menu</p>
<p dir="auto">Or, if you want to stick with just having one commandID-based entry per command, then you will have to live with the fact that the commandID can change when you update a plugin, install a plugin, or possibly even when all you do is update to a new version of Notepad++</p>
]]></description><link>https://community.notepad-plus-plus.org/post/106792</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106792</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 13 Nov 2026 21:17:14 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 21:11:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: peterjones">@<bdi>peterjones</bdi></a></p>
<p dir="auto">If you have the constant IDs of this plugin, everything works perfectly, and when switching the language in Notepad++, the context menu also automatically changes to the Notepad++ language.</p>
<p dir="auto"><img src="/assets/uploads/files/1794604220781-ru.png" alt="ru.png" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1794604236430-en.png" alt="en.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://community.notepad-plus-plus.org/post/106791</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106791</guid><dc:creator><![CDATA[andrecool-68]]></dc:creator><pubDate>Fri, 13 Nov 2026 21:11:02 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 20:35:47 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andrecool-68" aria-label="Profile: andrecool-68">@<bdi>andrecool-68</bdi></a> <a href="/post/106789">said</a>:</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> <a href="/post/106788">said</a>:</p>
<p dir="auto">if you choose to do it with CommandID, you will have to deal with the fact that CommandID is not guaranteed consistent for plugin commands.</p>
</blockquote>
<p dir="auto">Do you mean which option:</p>
</blockquote>
<p dir="auto">I tried either</p>
<pre><code>		&lt;Item FolderName="AndreCool" PluginEntryName="HTML Tag" PluginCommandItemName="Find matching tag" /&gt;
</code></pre>
<p dir="auto">or</p>
<pre><code>		&lt;Item FolderName="AndreCool" PluginEntryName="HTML Tag" PluginCommandItemName="Перейти к соответствующему тегу" /&gt;
</code></pre>
<p dir="auto">And the second worked for me when I had set it to Localization = Russian.  (The first only works when Localization = English)</p>
<p dir="auto">So, apparently, for plugin commands, you need the PluginCommandItemName value to match exactly what shows up in your menu, rather than always being the English.  I will clarify that in the user manual.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/106790</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106790</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 13 Nov 2026 20:35:47 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 20:05:37 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a> <a href="/post/106788">said</a>:</p>
<p dir="auto">if you choose to do it with CommandID, you will have to deal with the fact that CommandID is not guaranteed consistent for plugin commands.</p>
</blockquote>
<p dir="auto">Do you mean which option:</p>
<pre><code class="language-html">		&lt;Item FolderName="Команды HTML [HTML Tag]" PluginEntryName="HTML Tag" PluginCommandItemName="Select tag and contents"  ItemNameAs="Выделить тег вместе с содержимым"/&gt;
		&lt;Item FolderName="Команды HTML [HTML Tag]" PluginEntryName="HTML Tag" PluginCommandItemName="Select tag contents only" ItemNameAs="Выделить только содержимого тегов"/&gt;
		&lt;Item FolderName="Команды HTML [HTML Tag]" PluginEntryName="HTML Tag" PluginCommandItemName="Find matching tag" ItemNameAs="Перейти к парной скобке"/&gt;
</code></pre>
]]></description><link>https://community.notepad-plus-plus.org/post/106789</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106789</guid><dc:creator><![CDATA[andrecool-68]]></dc:creator><pubDate>Fri, 13 Nov 2026 20:05:37 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 19:58:37 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andrecool-68" aria-label="Profile: andrecool-68">@<bdi>andrecool-68</bdi></a> <a href="/post/106787">said</a>:</p>
<p dir="auto">I just write the plugin command ID there.</p>
</blockquote>
<p dir="auto">Right.  But Notepad++ expects you to use the name of the command there, as documented, so that you don’t have to worry about changing CommandID.</p>
<p dir="auto">if you choose to do it with CommandID, you will have to deal with the fact that CommandID is not guaranteed consistent for plugin commands.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/106788</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106788</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 13 Nov 2026 19:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 19:54:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/peterjones" aria-label="Profile: PeterJones">@<bdi>PeterJones</bdi></a><br />
And I do not translate the command strings of this plugin into Russian in the contextMenu.xml file, I just write the plugin command ID there. This plugin has its own multilingual language INI file created by the plugin author.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/106787</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106787</guid><dc:creator><![CDATA[andrecool-68]]></dc:creator><pubDate>Fri, 13 Nov 2026 19:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Why do the HTML tag plugin command IDs change with each update of Notepad++ on Fri, 13 Nov 2026 19:52:03 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/andrecool-68" aria-label="Profile: andrecool-68">@<bdi>andrecool-68</bdi></a> <a href="/post/106785">said</a>:</p>
<p dir="auto">The version of the HTML tag plugin is the same, but the command IDs constantly change with each update of Notepad++.</p>
</blockquote>
<p dir="auto">Notepad++ assigns the plugin command-ID’s dynamically every time it loads.  I do not think it even guarantees that it will always assign them in the same order, even if nothing changes, but in general, I’ve found that as long as none of the plugins are changing the number of menu entries they use, then the numbers <em>tend</em> to stay the same.</p>
<p dir="auto">If <em>any</em> of the plugins that come before HTML tags in Notepad++'s internal loading have changed the number of menu commands they have, or if Notepad++ changes the order that plugins are loaded (*) , then anything that comes after them will be renumbered appropriately.</p>
<p dir="auto">if any of the plugins are no longer compatible, they would drop out of the list, so wouldn’t be in the numbering.  If you update any of the plugins with Plugins Admin, they could change the number of menu entries, thus renumbering subsequent ones.</p>
<p dir="auto">*: I <em>thought</em> it sorted alphabetically when loading, but I cannot guarantee that; if uses the default non-sorted order that Windows uses in the filesystem, then you would have little control over that.  Maybe always copying the plugin subdirectories over in the same order would help, but I cannot guarantee that.</p>
<blockquote>
<p dir="auto">With each update of Notepad++, I restore all the plugins I need from a backup along with the plugin settings.</p>
</blockquote>
<p dir="auto">Plugins don’t save those numbers in their settings.  Notepad++ dynamically allocates them.</p>
<blockquote>
<p dir="auto">And I noticed that in my internal context menu of Notepad++, the lines related to the HTML tag plugin constantly change with each new version, and I constantly have to edit these lines.</p>
</blockquote>
<p dir="auto">Macros can <em>only</em> use command-ID, so if you have macros, then because it’s a “hack” (Notepad++ macro recording ignores plugin commands, and we use a hack to add them by the current command ID manually).</p>
<p dir="auto">But for the context menu (contextMenu.xml), you are <em>not</em> limited to Command ID.  And, in fact, the <a href="https://npp-user-manual.org/docs/config-files/#the-context-menu-contextmenuxml" rel="nofollow ugc">documented way</a> of adding plugin entries to the context menu is by <em>name</em>, <strong>not</strong> by command ID:</p>
<blockquote>
<ul>
<li>
<p dir="auto">To add a plugin command, you need to provide the plugin’s menu item name (as it appears in the Plugins menu) as the value of the PluginEntryName attribute and the command’s menu item name (as it appears in the plugin’s sub-menu) as the value of the PluginCommandItemName attribute.  (<em>Note</em>: Context menu entries will only work for entries immediately under the plugin name; entries deeper than that, like <strong>Plugins &gt; Super Plugin Name &gt; Submenu Here &gt; I Want This Command</strong>, will not work.)</p>
<ul>
<li>For example: <code>&lt;Item PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Encode" /&gt;</code> will add a context-menu entry that calls <strong>Plugins &gt; MIME Tools &gt; Base64 Encode</strong></li>
</ul>
</li>
</ul>
</blockquote>
<p dir="auto">So you can copy the following as the “template” to use:</p>
<pre><code>&lt;Item PluginEntryName="MIME Tools" PluginCommandItemName="Base64 Encode" /&gt;
</code></pre>
<p dir="auto">So for yours, it would need to be (replacing XYZ with the name</p>
<pre><code>&lt;Item PluginEntryName="HTML Tag" PluginCommandItemName="XYZ" /&gt;
</code></pre>
<p dir="auto"><s>With your plugin commands being translated, I <em>hope</em> that your UTF-8-encoded <code>contextMenu.xml</code> text will be properly inputted, to compare against the internal stored name for the menu command.  I cannot guarantee that, so if you’re having trouble, you might want to see if using an English translation works right… if you can prove that it works for English, but that with the matching text in the XML for your translation it doesn’t work, then that should probably be submitted as a bug.</s></p>
<hr />
<p dir="auto"><em>update</em>: crossed out the last paragraph.  Reading the next paragraph of the manual:</p>
<blockquote>
<p dir="auto">Note that the menu names and menu item names (whether built-in or plugin names) that you use in the should be in English, not in a translated language. The Shortcut Mapper can help you find the English name of plugin commands; simply switch to English localization for the raw name of built-in commands; or you can look at the english.xml that shipped with your distribution.</p>
</blockquote>
<p dir="auto">It is possible that the “English” requirement affects plugin commands as well.  I am not 100% sure.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/106786</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/106786</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Fri, 13 Nov 2026 19:52:03 GMT</pubDate></item></channel></rss>