From 414ab810657c5dbf8ab638016251f562c89fb235 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Fri, 28 Apr 2006 19:15:55 +0000 Subject: [PATCH] Fixed SD2-508: Tooltips on declaration lines git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1364 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/CodeCompletion/BooResolver.cs | 3 +++ .../Misc/HtmlHelp2/Project/HtmlHelp2.csproj | 10 ++++---- .../NRefactoryResolver/NRefactoryResolver.cs | 25 +++++++++++++++++++ 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs index 1a6d51d429..08ef055673 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs @@ -197,6 +197,9 @@ namespace Grunwald.BooBinding.CodeCompletion return new NamespaceResolveResult(callingClass, callingMember, ""); } + ResolveResult rr = NRResolver.GetResultFromDeclarationLine(callingClass, callingMember as IMethodOrProperty, caretLine, caretColumn, expressionResult.Expression); + if (rr != null) return rr; + AST.Expression expr; try { expr = Boo.Lang.Parser.BooParser.ParseExpression("expression", expressionResult.Expression); diff --git a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj index c3c9f35dc4..146b159c02 100644 --- a/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj +++ b/src/AddIns/Misc/HtmlHelp2/Project/HtmlHelp2.csproj @@ -36,11 +36,6 @@ False - - ..\..\..\..\..\bin\ICSharpCode.TextEditor.dll - False - False - @@ -108,6 +103,11 @@ {E54A5AD2-418D-4A85-BA5E-CD803DE38715} HtmlHelp2JScriptGlobals + + {2D18BE89-D210-49EB-A9DD-2246FBB3DF6D} + ICSharpCode.TextEditor + False + \ No newline at end of file diff --git a/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs b/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs index ae2b33c086..9350da4ae8 100644 --- a/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs +++ b/src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs @@ -121,6 +121,28 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver return expression; } + public static ResolveResult GetResultFromDeclarationLine(IClass callingClass, IMethodOrProperty callingMember, int caretLine, int caretColumn, string expression) + { + if (callingClass == null) return null; + int pos = expression.IndexOf('('); + if (pos >= 0) { + expression = expression.Substring(0, pos); + } + expression = expression.Trim(); + if (!callingClass.BodyRegion.IsInside(caretLine, caretColumn) + && callingClass.ProjectContent.Language.NameComparer.Equals(expression, callingClass.Name)) + { + return new TypeResolveResult(callingClass, callingMember, callingClass); + } + if (callingMember != null + && !callingMember.BodyRegion.IsInside(caretLine, caretColumn) + && callingClass.ProjectContent.Language.NameComparer.Equals(expression, callingMember.Name)) + { + return new MemberResolveResult(callingClass, callingMember, callingMember); + } + return null; + } + public ResolveResult Resolve(ExpressionResult expressionResult, int caretLineNumber, int caretColumn, @@ -179,6 +201,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver RunLookupTableVisitor(fileContent); + ResolveResult rr = GetResultFromDeclarationLine(callingClass, callingMember as IMethodOrProperty, caretLine, caretColumn, expression); + if (rr != null) return rr; + return ResolveInternal(expr, expressionResult.Context); }