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));
            });
        }
Ejemplo n.º 2
0
		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;
		}