Указывать в определении команды тип контекста в котором она применима:
И можно попробовать по этим же признакам их сгруппировать в меню (в одном подменю разделителями), если подходят несколько типов (например п.1+п.3).
При построении меню команд скрывать команды, недоступные в текущем типе контекста.
Бесконтексные команды доступны всегда. Их лучше отображать в отдельном подменю.