Hi Dmitry. The actions.xml file is no longer used, and it can be removed. Instead, everything is defined in code.
Your class has defined an action, but hasn't declared where it should be used. You can do this in two ways, directly on the action, or by including the action in a group defined elsewhere.
To declare it directly on the action, your action class should implement one of IInsertAfter, IInsertBefore, IInsertLast or IInsertFirst. These are generic interfaces, and take a type that must implement IAction as a type parameter, e.g. IInsertFirst<ToolsMenu> will insert the menu as the first item in the Tools menu (if multiple items are inserted "first", then order is unspecified). These groups should be attributed with [ActionGroup(…)]. Or you can use IInsertAfter or IInsertBefore. These take a menu group type, and an anchor, to be inserted before/after, e.g. IInsertAfter<ToolsMenu, ValidateRegularExpressionStandaloneAction>.
Alternatively, you can not specify the insertion point on an action (e.g. you want to use the action in multiple places), and include it in the declaration of a group. In this case, you define an action class that lists the actions it wants in its group as constructor parameters. Order is important here. E.g.
// Group, inserted at the end of the Tools menu
public class MyGroupMenu : IAction, IInsertLast<ToolsMenu>
{
public MyGroupMenu(MyAction1 action1, MyAction2 action2)
{
// Do nothing, this is a group, doesn't need to do anything else
}
}
Regards
Matt