public GetLanguageItem ( int offset, MonoDevelop ®ion ) : Microsoft.CodeAnalysis.ISymbol | ||
offset | int | |
region | MonoDevelop | |
return | Microsoft.CodeAnalysis.ISymbol |
public TooltipItem GetItem(Mono.TextEditor.TextEditor editor, int offset) { ExtensibleTextEditor ed = (ExtensibleTextEditor)editor; ICSharpCode.NRefactory.TypeSystem.DomRegion region; var resolveResult = ed.GetLanguageItem(offset, out region); if (resolveResult == null) { return(null); } int startOffset = offset; int endOffset = offset; return(new TooltipItem(resolveResult, startOffset, endOffset - startOffset)); }
public TooltipItem GetItem(Mono.TextEditor.TextEditor editor, int offset) { ExtensibleTextEditor ed = (ExtensibleTextEditor)editor; ResolveResult resolveResult = ed.GetLanguageItem(offset); if (resolveResult == null) { return(null); } int startOffset = editor.Document.LocationToOffset(resolveResult.ResolvedExpression.Region.Start.Line - 1, resolveResult.ResolvedExpression.Region.Start.Column - 1); int endOffset = editor.Document.LocationToOffset(resolveResult.ResolvedExpression.Region.End.Line - 1, resolveResult.ResolvedExpression.Region.End.Column - 1); return(new TooltipItem(resolveResult, startOffset, endOffset - startOffset)); }
public TooltipItem GetItem(Mono.TextEditor.TextEditor editor, int offset) { if (offset >= editor.Document.Length) { return(null); } if (!DebuggingService.IsDebugging || DebuggingService.IsRunning) { return(null); } StackFrame frame = DebuggingService.CurrentFrame; if (frame == null) { return(null); } ExtensibleTextEditor ed = (ExtensibleTextEditor)editor; string expression = null; int startOffset = 0, length = 0; if (ed.IsSomethingSelected && offset >= ed.SelectionRange.Offset && offset <= ed.SelectionRange.EndOffset) { expression = ed.SelectedText; startOffset = ed.SelectionRange.Offset; length = ed.SelectionRange.Length; } else { ResolveResult res = ed.GetLanguageItem(offset); /* if (res is MemberResolveResult) { * MemberResolveResult mr = (MemberResolveResult) res; * if (mr.ResolvedMember == null && mr.ResolvedType != null) * expression = mr.ResolvedType.FullName; * } * if (expression == null)*/ if (res != null && res.ResolvedExpression != null) { expression = res.ResolvedExpression.Expression; startOffset = editor.Document.LocationToOffset(res.ResolvedExpression.Region.Start.Line - 1, res.ResolvedExpression.Region.Start.Column - 1); int endOffset = editor.Document.LocationToOffset(res.ResolvedExpression.Region.End.Line - 1, res.ResolvedExpression.Region.End.Column - 1); length = endOffset - startOffset; } } if (string.IsNullOrEmpty(expression)) { return(null); } ObjectValue val; if (!cachedValues.TryGetValue(expression, out val)) { val = frame.GetExpressionValue(expression, false); cachedValues [expression] = val; } if (val == null || val.IsUnknown || val.IsNotSupported) { return(null); } return(new TooltipItem(val, startOffset, length)); }