static void ConvertForeachToKeyValueIteratorOnClick(object sender, EventArgs eventArgs)
 {
     try
     {
         CommandFactoryProvider.GetFactoryForCurrentDocument()
         .CreateConvertForeachToKeyValueIteratorCommand()
         .Execute();
     }
     catch (Exception e)
     {
         ErrorManager.ShowError(e);
     }
 }
        static void OnAddRefactorOptions(List <ICompletionListItem> list)
        {
            var doc = PluginBase.MainForm.CurrentDocument;

            if (!doc.IsEditable)
            {
                return;
            }
            var sci = doc.SciControl;

            if (CommandFactoryProvider.ContainsLanguage(sci.ConfigurationLanguage))
            {
                list.AddRange(CompletionMenuProvider.GetItems(sci));
            }
        }
        public static List <ICompletionListItem> GetItems(ScintillaControl sci)
        {
            var result  = new List <ICompletionListItem>();
            var factory = CommandFactoryProvider.GetFactoryForCurrentDocument();

            if (factory.IsValidForConvertForeachToFor(sci))
            {
                result.Add(new RefactorCompletionItem(Menu.ConvertForeachToFor));
            }
            if (factory.IsValidForConvertForeachToKeyValueIterator(sci))
            {
                //FIXME slavara:
                Menu.ConvertForeachToKeyValueIterator.Text = sci.ConfigurationLanguage == "haxe" ? "To key-value iterator" : "To for..in";
                result.Add(new RefactorCompletionItem(Menu.ConvertForeachToKeyValueIterator));
            }
            return(result);
        }