|
|
|
|
@ -40,13 +40,13 @@ namespace ICSharpCode.NRefactory.CSharp
@@ -40,13 +40,13 @@ namespace ICSharpCode.NRefactory.CSharp
|
|
|
|
|
this.modifier = value; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override int TokenLength { |
|
|
|
|
|
|
|
|
|
public override TextLocation EndLocation { |
|
|
|
|
get { |
|
|
|
|
return GetModifierName (modifier).Length; |
|
|
|
|
return new TextLocation (StartLocation.Line, StartLocation.Column + GetModifierLength (Modifier)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public override string GetText (CSharpFormattingOptions formattingOptions = null) |
|
|
|
|
{ |
|
|
|
|
return GetModifierName (Modifier); |
|
|
|
|
@ -75,7 +75,7 @@ namespace ICSharpCode.NRefactory.CSharp
@@ -75,7 +75,7 @@ namespace ICSharpCode.NRefactory.CSharp
|
|
|
|
|
get { return allModifiers; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public CSharpModifierToken (TextLocation location, Modifiers modifier) : base (location) |
|
|
|
|
public CSharpModifierToken (TextLocation location, Modifiers modifier) : base (location, null) |
|
|
|
|
{ |
|
|
|
|
this.Modifier = modifier; |
|
|
|
|
} |
|
|
|
|
@ -124,5 +124,50 @@ namespace ICSharpCode.NRefactory.CSharp
@@ -124,5 +124,50 @@ namespace ICSharpCode.NRefactory.CSharp
|
|
|
|
|
throw new NotSupportedException("Invalid value for Modifiers"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static int GetModifierLength(Modifiers modifier) |
|
|
|
|
{ |
|
|
|
|
switch (modifier) { |
|
|
|
|
case Modifiers.Private: |
|
|
|
|
return "private".Length; |
|
|
|
|
case Modifiers.Internal: |
|
|
|
|
return "internal".Length; |
|
|
|
|
case Modifiers.Protected: |
|
|
|
|
return "protected".Length; |
|
|
|
|
case Modifiers.Public: |
|
|
|
|
return "public".Length; |
|
|
|
|
case Modifiers.Abstract: |
|
|
|
|
return "abstract".Length; |
|
|
|
|
case Modifiers.Virtual: |
|
|
|
|
return "virtual".Length; |
|
|
|
|
case Modifiers.Sealed: |
|
|
|
|
return "sealed".Length; |
|
|
|
|
case Modifiers.Static: |
|
|
|
|
return "static".Length; |
|
|
|
|
case Modifiers.Override: |
|
|
|
|
return "override".Length; |
|
|
|
|
case Modifiers.Readonly: |
|
|
|
|
return "readonly".Length; |
|
|
|
|
case Modifiers.Const: |
|
|
|
|
return "const".Length; |
|
|
|
|
case Modifiers.New: |
|
|
|
|
return "new".Length; |
|
|
|
|
case Modifiers.Partial: |
|
|
|
|
return "partial".Length; |
|
|
|
|
case Modifiers.Extern: |
|
|
|
|
return "extern".Length; |
|
|
|
|
case Modifiers.Volatile: |
|
|
|
|
return "volatile".Length; |
|
|
|
|
case Modifiers.Unsafe: |
|
|
|
|
return "unsafe".Length; |
|
|
|
|
case Modifiers.Async: |
|
|
|
|
return "async".Length; |
|
|
|
|
case Modifiers.Any: |
|
|
|
|
// even though it's used for pattern matching only, 'any' needs to be in this list to be usable in the AST
|
|
|
|
|
return "any".Length; |
|
|
|
|
default: |
|
|
|
|
throw new NotSupportedException("Invalid value for Modifiers"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |