/// <summary>
        /// Adds a separator to the <see cref="EditorMenu"/>.
        /// </summary>
        /// <example>
        /// <para>Add separator between two logical groups of commands:</para>
        /// <code language="csharp"><![CDATA[
        /// var menu = new EditorMenu();
        /// menu.AddCommand("None");
        /// menu.AddSeparator();
        /// menu.AddCommand("Abc");
        /// menu.AddCommand("Def");
        /// menu.AddCommand("Ghi");
        /// ]]></code>
        ///
        /// <para>Add a separator in a sub-menu:</para>
        /// <code language="csharp"><![CDATA[
        /// var menu = new EditorMenu();
        /// menu.AddCommand("Sub-menu/None");
        /// menu.AddSeparator("Sub-menu/");
        /// menu.AddCommand("Sub-menu/Abc");
        /// menu.AddCommand("Sub-menu/Def");
        /// menu.AddCommand("Sub-menu/Ghi");
        /// ]]></code>
        /// </example>
        /// <param name="path">Path to the separator.</param>
        /// <returns>
        /// Fluid style API to further define the new separator entry.
        /// </returns>
        /// <exception cref="System.ArgumentException">
        /// If <paramref name="path"/> is an empty string or starts with a slash.
        /// </exception>
        /// <seealso cref="AddCommand(string)"/>
        public virtual EditorMenuSeparatorBinder AddSeparator(string path = "")
        {
            var entry = new EditorMenuSeparatorEntry(path);

            this.entries.Add(entry);
            return(new EditorMenuSeparatorBinder(entry));
        }
 /// <summary>
 /// Adds a separator entry to the <see cref="GenericMenu"/>.
 /// </summary>
 /// <param name="genericMenu">Input menu data structure.</param>
 /// <param name="entry">Menu entry that is currently being added.</param>
 protected virtual void AddSeparatorEntryToMenu(GenericMenu genericMenu, EditorMenuSeparatorEntry entry)
 {
     genericMenu.AddSeparator(entry.Path);
 }