void OpenAutoOpenWindow(Document doc, TextEditorData textEditor, MonoDevelop.Projects.Project project, System.Collections.Generic.List<string> fileNames) { var completionWidget = doc.GetContent<ICompletionWidget> (); if (completionWidget == null) return; CodeCompletionContext completionContext = completionWidget.CreateCodeCompletionContext (textEditor.Caret.Offset); GUI.OpenLayoutWindow.ShowCompletionWindow (completionContext, fileNames, (r) => { IdeApp.Workbench.OpenDocument(new FileOpenInformation(r, project)); }); }
public static void QueueQuickFixAnalysis (Document doc, TextLocation loc, CancellationToken token, Action<List<CodeAction>> callback) { var ext = doc.GetContent<MonoDevelop.AnalysisCore.Gui.ResultsEditorExtension> (); var issues = ext != null ? ext.GetResultsAtOffset (doc.Editor.LocationToOffset (loc), token).OrderBy (r => r.Level).ToList () : new List<Result> (); ThreadPool.QueueUserWorkItem (delegate { try { var result = new List<CodeAction> (); foreach (var r in issues) { if (token.IsCancellationRequested) return; var fresult = r as FixableResult; if (fresult == null) continue; foreach (var action in FixOperationsHandler.GetActions (doc, fresult)) { result.Add (new AnalysisContextActionProvider.AnalysisCodeAction (action, r) { DocumentRegion = action.DocumentRegion }); } } result.AddRange (GetValidActions (doc, loc).Result); callback (result); } catch (Exception ex) { LoggingService.LogError ("Error in analysis service", ex); } }); }
static string ResolveExpression (Document doc, string content, int offset) { var editor = doc.Editor; var loc = editor.OffsetToLocation (offset); var resolver = doc.GetContent<IDebuggerExpressionResolver> (); return resolver.ResolveExpressionAsync (editor, doc, offset, default(System.Threading.CancellationToken)).Result.Text; }