Browse Source

NRefactoryASTConvertVisitor: convert attribute arguments (forum-8114).

DefaultWorkbench: Add check to prevent null getting into the PadContentCollection.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3261 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
60a335a84b
  1. 2
      src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs
  2. 21
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

2
src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs

@ -335,6 +335,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -335,6 +335,8 @@ namespace ICSharpCode.SharpDevelop.Gui
public void ShowPad(PadDescriptor content)
{
if (content == null)
throw new ArgumentNullException("content");
PadContentCollection.Add(content);
if (layout != null) {

21
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -247,7 +247,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -247,7 +247,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
foreach (AST.Attribute attribute in section.Attributes) {
result.Add(new DefaultAttribute(new AttributeReturnType(context, attribute.Name), target) {
List<object> positionalArguments = new List<object>();
foreach (AST.Expression positionalArgument in attribute.PositionalArguments) {
positionalArguments.Add(ConvertAttributeArgument(positionalArgument));
}
Dictionary<string, object> namedArguments = new Dictionary<string, object>();
foreach (AST.NamedArgumentExpression namedArgumentExpression in attribute.NamedArguments) {
namedArguments.Add(namedArgumentExpression.Name, ConvertAttributeArgument(namedArgumentExpression.Expression));
}
result.Add(new DefaultAttribute(new AttributeReturnType(context, attribute.Name),
target, positionalArguments, namedArguments)
{
CompilationUnit = cu,
Region = GetRegion(attribute.StartLocation, attribute.EndLocation)
});
@ -256,6 +266,15 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -256,6 +266,15 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return result;
}
static object ConvertAttributeArgument(AST.Expression expression)
{
AST.PrimitiveExpression pe = expression as AST.PrimitiveExpression;
if (pe != null)
return pe.Value;
else
return null;
}
public override object VisitAttributeSection(ICSharpCode.NRefactory.Ast.AttributeSection attributeSection, object data)
{
if (GetCurrentClass() == null) {

Loading…
Cancel
Save