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

            if (ext == null)
            {
                return;
            }
            var quickFixMenu = new CommandInfoSet();

            quickFixMenu.Text = GettextCatalog.GetString("Quick Fix");
            quickFixMenu.CommandInfos.Add(new CommandInfo(GettextCatalog.GetString("Loading..."), false, false), null);
            info.Add(quickFixMenu);
            try {
                var menu = await CodeFixMenuService.CreateFixMenu(editor, ext.GetCurrentFixes(), cancelToken);

                quickFixMenu.CommandInfos.Clear();
                foreach (var item in menu.Items)
                {
                    AddItem(quickFixMenu, item);
                }
                if (menu.Items.Count == 0)
                {
                    quickFixMenu.CommandInfos.Add(new CommandInfo(GettextCatalog.GetString("No code fixes available"), false, false), null);
                }
            } catch (OperationCanceledException) {
            } catch (Exception e) {
                LoggingService.LogError("Error while creating quick fix menu.", e);
                quickFixMenu.CommandInfos.Clear();
                quickFixMenu.CommandInfos.Add(new CommandInfo(GettextCatalog.GetString("No code fixes available"), false, false), null);
            }
        }
        protected override async Task UpdateAsync(CommandArrayInfo info, CancellationToken cancelToken)
        {
            var editor = IdeApp.Workbench.ActiveDocument?.Editor;
            var ext    = editor?.GetContent <CodeActionEditorExtension> ();

            if (ext == null)
            {
                return;
            }

            var metadata = new Counters.FixesMenuMetadata();

            using (var timer = Counters.FixesMenu.BeginTiming("Quick Fix menu", metadata)) {
                try {
                    info.Add(new CommandInfo(GettextCatalog.GetString("Loading..."), false, false), null);
                    var currentFixes = await ext.GetCurrentFixesAsync(cancelToken);

                    var menu = 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);
                    }
                    metadata.SetSuccess();
                    info.NotifyChanged();
                } catch (OperationCanceledException) {
                    metadata.SetUserCancel();
                } catch (Exception e) {
                    metadata.SetFailure();
                    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();
                }
            }
        }