Exemple #1
0
        protected override async Task UpdateAsync(CommandArrayInfo info, CancellationToken cancelToken)
        {
            var editor = IdeApp.Workbench.ActiveDocument?.Editor;
            var ext    = editor?.GetContent <CodeActionEditorExtension> ();

            if (ext == null)
            {
                return;
            }
            try {
                info.Add(new CommandInfo(GettextCatalog.GetString("Loading..."), false, false), null);
                var currentFixes = await ext.GetCurrentFixesAsync(cancelToken);

                var menu = await CodeFixMenuService.CreateFixMenu(editor, currentFixes, cancelToken);

                info.Clear();
                foreach (var item in menu.Items)
                {
                    AddItem(info, item);
                }
                if (menu.Items.Count == 0)
                {
                    info.Add(new CommandInfo(GettextCatalog.GetString("No code fixes available"), false, false), null);
                }
                info.NotifyChanged();
            } catch (OperationCanceledException) {
            } catch (Exception e) {
                LoggingService.LogError("Error while creating quick fix menu.", e);
                info.Clear();
                info.Add(new CommandInfo(GettextCatalog.GetString("No code fixes available"), false, false), null);
                info.NotifyChanged();
            }
        }