I have successfully created a sub menu extending onwhich extends the shift + AShift+A menu in the shader editor, but I would like to have the options show up as results in the search bar. Is this even possible, and if so how can it be done?
import bpy from bpy.types import Menu, Operator def draw_menu(self, context): layout = self.layout layout.separator() layout.menu("sub_menu") class SubMenu(bpy.types.Menu): bl_label = 'Math' bl_idname = 'sub_menu' def draw(self, context): layout = self.layout layout.operator("divide.node", text="Divide") layout.operator("multiply.node", text="Multiply") layout.operator("add.node", text="Add") layout.operator("subtract.node", text="Subtract") class DivideNode(Operator): bl_idname = "divide.node" bl_label = "DivideNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'DIVIDE' return {'FINISHED'} class AddNode(Operator): bl_idname = "add.node" bl_label = "AddNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'ADD' return {'FINISHED'} class SubtractNode(Operator): bl_idname = "subtract.node" bl_label = "SubtractNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'SUBTRACT' return {'FINISHED'} class MultiplyNode(Operator): bl_idname = "multiply.node" bl_label = "MultiplyNode" def execute(self, context): bpy.ops.node.add_node(type="ShaderNodeMath", use_transform=True) bpy.data.materials["Material"].node_tree.nodes["Math"].operation = 'MULTIPLY' return {'FINISHED'} def register(): bpy.types.NODE_MT_add.append(draw_menu) bpy.utils.register_class(MultiplyNode) bpy.utils.register_class(SubMenu) bpy.utils.register_class(DivideNode) bpy.utils.register_class(SubtractNode) bpy.utils.register_class(AddNode) def unregister(): bpy.types.NODE_MT_add.remove(draw_menu) bpy.utils.unregister_class(MultiplyNode) bpy.utils.unregister_class(SubMenu) bpy.utils.unregister_class(DivideNode) bpy.utils.unregister_class(SubtractNode) bpy.utils.unregister_class(AddNode) if __name__ == "__main__": register() 