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);
}