ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { if (disableDefinitionView) return null; IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) return null; ITextEditorProvider provider = window.ActiveViewContent as ITextEditorProvider; if (provider == null) return null; ITextEditor editor = provider.TextEditor; // e might be null when this is a manually triggered update // don't resolve when an unrelated file was changed if (e != null && editor.FileName != e.FileName) return null; IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(editor.FileName); if (expressionFinder == null) return null; ITextEditorCaret caret = editor.Caret; string content = (e == null) ? editor.Document.Text : e.Content.Text; if (caret.Offset > content.Length) { LoggingService.Debug("caret.Offset = " + caret.Offset + ", content.Length=" + content.Length); return null; } try { ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) return null; return ParserService.Resolve(expr, caret.Line, caret.Column, editor.FileName, content); } catch (Exception ex) { disableDefinitionView = true; ctl.Visibility = Visibility.Collapsed; MessageService.ShowException(ex, "Error resolving at " + caret.Line + "/" + caret.Column + ". DefinitionViewPad is disabled until you restart SharpDevelop."); return null; } }
ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { if (disableDefinitionView) { return(null); } IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) { return(null); } ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider; if (provider == null) { return(null); } TextEditorControl ctl = provider.TextEditorControl; // e might be null when this is a manually triggered update string fileName = (e == null) ? ctl.FileName : e.FileName; if (ctl.FileName != fileName) { return(null); } IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName); if (expressionFinder == null) { return(null); } Caret caret = ctl.ActiveTextAreaControl.Caret; string content = (e == null) ? ctl.Text : e.Content; if (caret.Offset > content.Length) { LoggingService.Debug("caret.Offset = " + caret.Offset + ", content.Length=" + content.Length); return(null); } try { ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) { return(null); } return(ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content)); } catch (Exception ex) { disableDefinitionView = true; this.Control.Visible = false; MessageService.ShowError(ex, "Error resolving at " + (caret.Line + 1) + "/" + (caret.Column + 1) + ". DefinitionViewPad is disabled until you restart SharpDevelop."); return(null); } }
ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { if (disableDefinitionView) { return(null); } IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) { return(null); } ITextEditorProvider provider = window.ActiveViewContent as ITextEditorProvider; if (provider == null) { return(null); } ITextEditor editor = provider.TextEditor; // e might be null when this is a manually triggered update // don't resolve when an unrelated file was changed if (e != null && editor.FileName != e.FileName) { return(null); } IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(editor.FileName); if (expressionFinder == null) { return(null); } ITextEditorCaret caret = editor.Caret; string content = (e == null) ? editor.Document.Text : e.Content.Text; if (caret.Offset > content.Length) { LoggingService.Debug("caret.Offset = " + caret.Offset + ", content.Length=" + content.Length); return(null); } try { ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) { return(null); } return(ParserService.Resolve(expr, caret.Line, caret.Column, editor.FileName, content)); } catch (Exception ex) { disableDefinitionView = true; ctl.Visibility = Visibility.Collapsed; MessageService.ShowException(ex, "Error resolving at " + caret.Line + "/" + caret.Column + ". DefinitionViewPad is disabled until you restart SharpDevelop."); return(null); } }
void UpdateTick(object sender, ParserUpdateStepEventArgs e) { if (!this.IsVisible) return; LoggingService.Debug("DefinitionViewPad.Update"); ResolveResult res = ResolveAtCaret(e); if (res == null) return; FilePosition pos = res.GetDefinitionPosition(); if (pos.IsEmpty) return; WorkbenchSingleton.SafeThreadAsyncCall(OpenFile, pos); }
void UpdateTick(ParserUpdateStepEventArgs e) { if (!ctl.IsVisible) return; LoggingService.Debug("DefinitionViewPad.Update"); ResolveResult res = ResolveAtCaret(e); if (res == null) return; FilePosition pos = res.GetDefinitionPosition(); if (pos.IsEmpty) return; OpenFile(pos); }
void OnUpdateStep(object sender, ParserUpdateStepEventArgs e) { if (FileUtility.IsEqualFileName(e.FileName, this.TextEditor.FileName)) { ParseInformation parseInfo = e.ParseInformation; // if (parseInfo == null && this.storedParseInformation) // parseInfo = ParserService.GetParseInformation(this.TextEditor.FileName); // if (parseInfo != null) { // ICompilationUnit cu = parseInfo.MostRecentCompilationUnit; // } WorkbenchSingleton.SafeThreadAsyncCall(MarkOutstanding); } }
private ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) { return(null); } ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider; if (provider == null) { return(null); } TextEditorControl ctl = provider.TextEditorControl; // e might be null when this is a manually triggered update string fileName = (e == null) ? ctl.FileName : e.FileName; if (ctl.FileName != fileName) { return(null); } IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName); if (expressionFinder == null) { return(null); } Caret caret = ctl.ActiveTextAreaControl.Caret; string content = (e == null) ? ctl.Text : e.Content; ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) { return(null); } // save the current position if (this.lastPoint != null && this.lastPoint == caret.Position) { return(null); } this.lastPoint = caret.Position; this.AddToStringCollection(string.Format(CultureInfo.InvariantCulture, "!{0}", expr.Expression)); return(ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content)); }
ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) return null; ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider; if (provider == null) return null; TextEditorControl ctl = provider.TextEditorControl; // e might be null when this is a manually triggered update string fileName = (e == null) ? ctl.FileName : e.FileName; if (ctl.FileName != fileName) return null; IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName); if (expressionFinder == null) return null; Caret caret = ctl.ActiveTextAreaControl.Caret; string content = (e == null) ? ctl.Text : e.Content; ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) return null; return ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content); }
void UpdateTick(object sender, ParserUpdateStepEventArgs e) { if (!this.IsVisible) { return; } LoggingService.Debug("DefinitionViewPad.Update"); ResolveResult res = ResolveAtCaret(e); if (res == null) { return; } FilePosition pos = res.GetDefinitionPosition(); if (pos.IsEmpty) { return; } WorkbenchSingleton.SafeThreadAsyncCall(OpenFile, pos); }
void UpdateTick(ParserUpdateStepEventArgs e) { if (!this.IsVisible) { return; } LoggingService.Debug("DefinitionViewPad.Update"); ResolveResult res = ResolveAtCaret(e); if (res == null) { return; } FilePosition pos = res.GetDefinitionPosition(); if (pos.IsEmpty) { return; } OpenFile(pos); }
void UpdateTick(ParserUpdateStepEventArgs e) { this.dynamicHelpTerms.Clear(); ResolveResult res = ResolveAtCaret(e); if (res == null) { return; } if (res != null && res.ResolvedType != null) { this.AddToStringCollection(res.ResolvedType.FullyQualifiedName); } MemberResolveResult member = res as MemberResolveResult; NamespaceResolveResult nspace = res as NamespaceResolveResult; MethodGroupResolveResult method = res as MethodGroupResolveResult; TypeResolveResult types = res as TypeResolveResult; if (member != null && member.ResolvedMember != null) { this.AddToStringCollection(0, member.ResolvedMember.FullyQualifiedName); } if (nspace != null) { this.AddToStringCollection(0, nspace.Name); } if (method != null && method.ContainingType != null) { this.AddToStringCollection(0, method.ContainingType.FullyQualifiedName); } if (types != null && types.ResolvedClass != null) { this.AddToStringCollection(0, types.ResolvedClass.FullyQualifiedName); } BuildDynamicHelpList(); }
ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) { return(null); } ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider; if (provider == null) { return(null); } TextEditorControl ctl = provider.TextEditorControl; // e might be null when this is a manually triggered update string fileName = (e == null) ? ctl.FileName : e.FileName; if (ctl.FileName != fileName) { return(null); } IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName); if (expressionFinder == null) { return(null); } Caret caret = ctl.ActiveTextAreaControl.Caret; string content = (e == null) ? ctl.Text : e.Content; ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) { return(null); } return(ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content)); }
void OnUpdateStep(object sender, ParserUpdateStepEventArgs e) { if (FileUtility.IsEqualFileName(e.FileName, this.TextEditor.FileName)) { ParseInformation parseInfo = e.ParseInformation; if (parseInfo == null && this.declarations == null) { parseInfo = ParserService.GetParseInformation(this.TextEditor.FileName); } if (parseInfo != null) { ICompilationUnit cu = parseInfo.MostRecentCompilationUnit; CompileUnit booCu = cu.Tag as CompileUnit; if (booCu != null) { FindAssignmentsVisitor visitor = new FindAssignmentsVisitor(); booCu.Accept(visitor); this.declarations = visitor.declarations; // volatile access! } } WorkbenchSingleton.SafeThreadAsyncCall(MarkOutstanding); } }
void OnParserUpdateStep(object sender, ParserUpdateStepEventArgs e) { WorkbenchSingleton.SafeThreadAsyncCall(UpdateTick, e); }
void OnParserUpdateStep(object sender, ParserUpdateStepEventArgs e) { WorkbenchSingleton.SafeThreadAsyncCall(UpdateTick, e); }
ResolveResult ResolveAtCaret(ParserUpdateStepEventArgs e) { if (disableDefinitionView) return null; IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; if (window == null) return null; ITextEditorControlProvider provider = window.ActiveViewContent as ITextEditorControlProvider; if (provider == null) return null; TextEditorControl ctl = provider.TextEditorControl; // e might be null when this is a manually triggered update string fileName = (e == null) ? ctl.FileName : e.FileName; if (ctl.FileName != fileName) return null; IExpressionFinder expressionFinder = ParserService.GetExpressionFinder(fileName); if (expressionFinder == null) return null; Caret caret = ctl.ActiveTextAreaControl.Caret; string content = (e == null) ? ctl.Text : e.Content; if (caret.Offset > content.Length) { LoggingService.Debug("caret.Offset = " + caret.Offset + ", content.Length=" + content.Length); return null; } try { ExpressionResult expr = expressionFinder.FindFullExpression(content, caret.Offset); if (expr.Expression == null) return null; return ParserService.Resolve(expr, caret.Line + 1, caret.Column + 1, fileName, content); } catch (Exception ex) { disableDefinitionView = true; this.Control.Visible = false; MessageService.ShowError(ex, "Error resolving at " + (caret.Line + 1) + "/" + (caret.Column + 1) + ". DefinitionViewPad is disabled until you restart SharpDevelop."); return null; } }
void OnParserUpdateStep(object sender, ParserUpdateStepEventArgs e) { UpdateTick(e); }
void OnParserUpdateStep(object sender, ParserUpdateStepEventArgs e) { UpdateTick(e); }