Browse Source

go to definition now works for parameters too

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@273 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Andrea Paatz 21 years ago
parent
commit
4409a2e4e0
  1. 1563
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs
  2. 3
      src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG
  3. 2
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
  4. 6
      src/Main/Base/Project/Src/Dom/ResolveResult.cs

1563
src/Libraries/NRefactory/Project/Src/Parser/CSharp/Parser.cs

File diff suppressed because it is too large Load Diff

3
src/Libraries/NRefactory/Project/Src/Parser/CSharp/cs.ATG

@ -976,13 +976,14 @@ FixedParameter<out ParameterDeclarationExpression p>
(. (.
TypeReference type; TypeReference type;
ParamModifier mod = ParamModifier.In; ParamModifier mod = ParamModifier.In;
System.Drawing.Point start = t.Location;
.) .)
= =
[ [
"ref" (. mod = ParamModifier.Ref; .) "ref" (. mod = ParamModifier.Ref; .)
| "out" (. mod = ParamModifier.Out; .) | "out" (. mod = ParamModifier.Out; .)
] ]
Type<out type> ident (. p = new ParameterDeclarationExpression(type, t.val, mod); .) Type<out type> ident (. p = new ParameterDeclarationExpression(type, t.val, mod); p.StartLocation = start; p.EndLocation = t.Location; .)
. .
ParameterArray<out ParameterDeclarationExpression p> ParameterArray<out ParameterDeclarationExpression p>

2
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -386,7 +386,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IParameter CreateParameter(AST.ParameterDeclarationExpression par, IMethod method) IParameter CreateParameter(AST.ParameterDeclarationExpression par, IMethod method)
{ {
IReturnType parType = CreateReturnType(par.TypeReference, method); IReturnType parType = CreateReturnType(par.TypeReference, method);
DefaultParameter p = new DefaultParameter(par.ParameterName, parType, null); DefaultParameter p = new DefaultParameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, par.EndLocation));
p.Modifiers = (ParameterModifiers)par.ParamModifier; p.Modifiers = (ParameterModifiers)par.ParamModifier;
return p; return p;
} }

6
src/Main/Base/Project/Src/Dom/ResolveResult.cs

@ -210,10 +210,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return null; return null;
} }
IRegion reg = field.Region; IRegion reg = field.Region;
if (reg != null) if (reg != null) {
return new FilePosition(cu.FileName, new Point(reg.BeginLine, reg.BeginColumn)); return new FilePosition(cu.FileName, new Point(reg.BeginLine, reg.BeginColumn));
else } else {
Console.WriteLine("Fieldregion not set!");
return new FilePosition(cu.FileName, Point.Empty); return new FilePosition(cu.FileName, Point.Empty);
}
} }
} }
#endregion #endregion

Loading…
Cancel
Save