Browse Source

Fixed bugs in boo code completion.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@606 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
1b7912d37f
  1. 10
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs
  2. 8
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs
  3. 3
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs

10
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/BooResolver.cs

@ -109,7 +109,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -109,7 +109,7 @@ namespace Grunwald.BooBinding.CodeCompletion
IMember ResolveCurrentMember(IClass callingClass)
{
LoggingService.DebugFormatted("Getting current method... caretLine = {0}, caretColumn = {1}", caretLine, caretColumn);
//LoggingService.DebugFormatted("Getting current method... caretLine = {0}, caretColumn = {1}", caretLine, caretColumn);
if (callingClass == null) return null;
IMember best = null;
int line = 0;
@ -178,7 +178,13 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -178,7 +178,13 @@ namespace Grunwald.BooBinding.CodeCompletion
return new NamespaceResolveResult(callingClass, callingMember, "");
}
AST.Expression expr = Boo.Lang.Parser.BooParser.ParseExpression("expression", expressionResult.Expression);
AST.Expression expr;
try {
expr = Boo.Lang.Parser.BooParser.ParseExpression("expression", expressionResult.Expression);
} catch (Exception ex) {
LoggingService.Debug("Boo expression parser: " + ex.Message);
return null;
}
if (expr == null)
return null;
if (expr is AST.IntegerLiteralExpression)

8
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs

@ -308,7 +308,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -308,7 +308,7 @@ namespace Grunwald.BooBinding.CodeCompletion
private void EnterTypeDefinition(AST.TypeDefinition node, ClassType classType)
{
LoggingService.Debug("Enter " + node.GetType().Name + " (" + node.FullName + ")");
//LoggingService.Debug("Enter " + node.GetType().Name + " (" + node.FullName + ")");
DomRegion region = GetClientRegion(node);
DefaultClass c = new DefaultClass(_cu, classType, GetModifier(node), region, OuterClass);
c.FullyQualifiedName = node.FullName;
@ -353,12 +353,12 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -353,12 +353,12 @@ namespace Grunwald.BooBinding.CodeCompletion
private void LeaveTypeDefinition(AST.TypeDefinition node)
{
DefaultClass c = _currentClass.Pop();
LoggingService.Debug("Leave "+node.GetType().Name+" "+node.FullName+" (Class = "+c.FullyQualifiedName+")");
//LoggingService.Debug("Leave "+node.GetType().Name+" "+node.FullName+" (Class = "+c.FullyQualifiedName+")");
}
public override void OnMethod(AST.Method node)
{
LoggingService.Debug("Method: " + node.FullName);
//LoggingService.Debug("Method: " + node.FullName);
DefaultMethod method = new DefaultMethod(node.Name, null, GetModifier(node), GetRegion(node), GetClientRegion(node), OuterClass);
ConvertAttributes(node, method);
ConvertTemplates(node, method);
@ -371,7 +371,7 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -371,7 +371,7 @@ namespace Grunwald.BooBinding.CodeCompletion
public override void OnConstructor(AST.Constructor node)
{
if (node.Body.Statements.Count == 0) return;
if (node.IsSynthetic && node.Parameters.Count == 0) return;
Constructor ctor = new Constructor(GetModifier(node), GetRegion(node), GetClientRegion(node), OuterClass);
ConvertAttributes(node, ctor);
ConvertParameters(node.Parameters, ctor);

3
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs

@ -323,6 +323,9 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -323,6 +323,9 @@ namespace Grunwald.BooBinding.CodeCompletion
methods.Add(m);
}
}
if (methods.Count == 0) {
methods.Add(ICSharpCode.SharpDevelop.Dom.Constructor.CreateDefault(trr.ResolvedClass));
}
ResolveInvocation(methods, node.Arguments);
} else {
ClearResult();

Loading…
Cancel
Save