Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs288
1 files changed, 157 insertions, 131 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs
index bd7eea162b..d52111e65f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/StockIcons.cs
@@ -25,8 +25,8 @@
// THE SOFTWARE.
using System;
using MonoDevelop.Core;
-using ICSharpCode.NRefactory.TypeSystem;
using Mono.Cecil;
+using ICSharpCode.NRefactory6.CSharp;
namespace MonoDevelop.Ide.TypeSystem
{
@@ -122,149 +122,175 @@ namespace MonoDevelop.Ide.TypeSystem
Stock.Event, Stock.PrivateEvent, Stock.Event, Stock.ProtectedEvent, Stock.InternalEvent, Stock.ProtectedOrInternalEvent, Stock.InternalAndProtectedEvent
};
- public static string GetStockIcon (this INamedElement element)
- {
- if (element is IType)
- return ((IType)element).GetStockIcon ();
- if (element is ITypeParameter)
- return ((ITypeParameter)element).GetStockIcon ();
- if (element is IUnresolvedEntity)
- return ((IUnresolvedEntity)element).GetStockIcon ();
- return ((IEntity)element).GetStockIcon ();
- }
-
- public static string GetStockIcon (this ITypeDefinition entity)
- {
- return GetStockIcon ((IType)entity);
- }
-
- public static string GetStockIcon (this IType entity)
+// public static IconId GetStockIcon (this INamedElement element)
+// {
+// if (element is IType)
+// return ((IType)element).GetStockIcon ();
+// if (element is ITypeParameter)
+// return ((ITypeParameter)element).GetStockIcon ();
+// if (element is IUnresolvedEntity)
+// return ((IUnresolvedEntity)element).GetStockIcon ();
+// return ((IEntity)element).GetStockIcon ();
+// }
+//
+// public static IconId GetStockIcon (this ITypeDefinition entity)
+// {
+// return GetStockIcon ((IType)entity);
+// }
+//
+// public static IconId GetStockIcon (this IType entity)
+// {
+// var def = entity.GetDefinition ();
+// if (def == null)
+// return Class;
+// switch (def.Kind) {
+// case TypeKind.Class:
+// return typeIconTable [0, (int)def.Accessibility];
+// case TypeKind.Enum:
+// return typeIconTable [1, (int)def.Accessibility];
+// case TypeKind.Interface:
+// return typeIconTable [2, (int)def.Accessibility];
+// case TypeKind.Struct:
+// return typeIconTable [3, (int)def.Accessibility];
+// case TypeKind.Delegate:
+// return typeIconTable [4, (int)def.Accessibility];
+// default:
+// return typeIconTable [0, (int)def.Accessibility];
+// }
+// }
+
+ static int GetIndex (Microsoft.CodeAnalysis.Accessibility accessibility)
{
- var def = entity.GetDefinition ();
- if (def == null)
- return Class;
- switch (def.Kind) {
- case TypeKind.Class:
- return typeIconTable [0, (int)def.Accessibility];
- case TypeKind.Enum:
- return typeIconTable [1, (int)def.Accessibility];
- case TypeKind.Interface:
- return typeIconTable [2, (int)def.Accessibility];
- case TypeKind.Struct:
- return typeIconTable [3, (int)def.Accessibility];
- case TypeKind.Delegate:
- return typeIconTable [4, (int)def.Accessibility];
+ switch (accessibility) {
+ case Microsoft.CodeAnalysis.Accessibility.NotApplicable:
+ return 0;
+ case Microsoft.CodeAnalysis.Accessibility.Private:
+ return 1;
+ case Microsoft.CodeAnalysis.Accessibility.ProtectedAndInternal:
+ return 5;
+ case Microsoft.CodeAnalysis.Accessibility.Protected:
+ return 3;
+ case Microsoft.CodeAnalysis.Accessibility.Internal:
+ return 4;
+ case Microsoft.CodeAnalysis.Accessibility.ProtectedOrInternal:
+ return 5;
+ case Microsoft.CodeAnalysis.Accessibility.Public:
+ return 2;
default:
- return typeIconTable [0, (int)def.Accessibility];
+ throw new ArgumentOutOfRangeException ();
}
}
-
- public static string GetStockIcon (this IUnresolvedTypeDefinition def)
+
+ public static IconId GetStockIcon (this Microsoft.CodeAnalysis.ISymbol symbol)
{
- switch (def.Kind) {
- case TypeKind.Class:
- return typeIconTable [0, (int)def.Accessibility];
- case TypeKind.Enum:
- return typeIconTable [1, (int)def.Accessibility];
- case TypeKind.Interface:
- return typeIconTable [2, (int)def.Accessibility];
- case TypeKind.Struct:
- return typeIconTable [3, (int)def.Accessibility];
- case TypeKind.Delegate:
- return typeIconTable [4, (int)def.Accessibility];
+ switch (symbol.Kind) {
+ case Microsoft.CodeAnalysis.SymbolKind.Alias:
+ case Microsoft.CodeAnalysis.SymbolKind.ArrayType:
+ case Microsoft.CodeAnalysis.SymbolKind.Assembly:
+ case Microsoft.CodeAnalysis.SymbolKind.DynamicType:
+ case Microsoft.CodeAnalysis.SymbolKind.ErrorType:
+ case Microsoft.CodeAnalysis.SymbolKind.Label:
+ case Microsoft.CodeAnalysis.SymbolKind.Local:
+ case Microsoft.CodeAnalysis.SymbolKind.NetModule:
+ case Microsoft.CodeAnalysis.SymbolKind.PointerType:
+ return Field;
+ case Microsoft.CodeAnalysis.SymbolKind.NamedType:
+ var namedTypeSymbol = (Microsoft.CodeAnalysis.INamedTypeSymbol)symbol;
+ return typeIconTable [GetTypeIndex(namedTypeSymbol.TypeKind ), GetIndex (namedTypeSymbol.DeclaredAccessibility)];
+ case Microsoft.CodeAnalysis.SymbolKind.Event:
+ var evtSymbol = (Microsoft.CodeAnalysis.IEventSymbol)symbol;
+ return eventIconTable [GetIndex (evtSymbol.DeclaredAccessibility)];
+ case Microsoft.CodeAnalysis.SymbolKind.Field:
+ var fieldSymbol = (Microsoft.CodeAnalysis.IFieldSymbol)symbol;
+ return fieldIconTable [GetIndex (fieldSymbol.DeclaredAccessibility)];
+ case Microsoft.CodeAnalysis.SymbolKind.Method:
+ var methodSymbol = (Microsoft.CodeAnalysis.IMethodSymbol)symbol;
+ return methodIconTable [GetIndex (methodSymbol.DeclaredAccessibility)];
+ case Microsoft.CodeAnalysis.SymbolKind.Namespace:
+ return Namespace;
+ case Microsoft.CodeAnalysis.SymbolKind.Parameter:
+ return Field;
+ case Microsoft.CodeAnalysis.SymbolKind.Property:
+ var propertySymbol = (Microsoft.CodeAnalysis.IPropertySymbol)symbol;
+ return propertyIconTable [GetIndex (propertySymbol.DeclaredAccessibility)];
+ case Microsoft.CodeAnalysis.SymbolKind.RangeVariable:
+ return Field;
+ case Microsoft.CodeAnalysis.SymbolKind.TypeParameter:
+ return Stock.typeIconTable [0, 0];
+ case Microsoft.CodeAnalysis.SymbolKind.Preprocessing:
+ return Field;
default:
- return typeIconTable [0, (int)def.Accessibility];
+ throw new ArgumentOutOfRangeException ();
}
}
-
- public static string GetStockIcon (this IField field)
- {
- return GetStockIcon ((IEntity)field);
- }
-
- public static string GetStockIcon (this IVariable variable)
- {
- return Field;
- }
-
- public static string GetStockIcon (this IParameter parameter)
- {
- return Field;
- }
-
- public static string GetStockIcon (this IUnresolvedTypeParameter parameter)
- {
- return Field;
- }
-
- public static string GetStockIcon (this IEntity entity, bool showAccessibility = true)
+
+ static int GetTypeIndex (Microsoft.CodeAnalysis.TypeKind typeKind)
{
- switch (entity.SymbolKind) {
- case SymbolKind.TypeDefinition:
- return GetStockIcon ((IType)entity);
- case SymbolKind.Field:
- if (showAccessibility)
- return fieldIconTable [(int)entity.Accessibility];
- else
- return fieldIconTable [0];
- case SymbolKind.Method:
- case SymbolKind.Constructor:
- case SymbolKind.Destructor:
- case SymbolKind.Operator:
- if (showAccessibility) {
- if (((IMethod)entity).IsExtensionMethod)
- return extensionMethodIconTable [(int)entity.Accessibility];
- return methodIconTable [(int)entity.Accessibility];
- } else {
- if (((IMethod)entity).IsExtensionMethod)
- return extensionMethodIconTable [0];
- return methodIconTable [0];
- }
- case SymbolKind.Property:
- case SymbolKind.Indexer:
- if (showAccessibility)
- return propertyIconTable [(int)entity.Accessibility];
- else
- return propertyIconTable [0];
- case SymbolKind.Event:
- if (showAccessibility)
- return eventIconTable [(int)entity.Accessibility];
- else
- return eventIconTable [0];
+ switch (typeKind) {
+ case Microsoft.CodeAnalysis.TypeKind.Unknown:
+ case Microsoft.CodeAnalysis.TypeKind.Array:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Class:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Delegate:
+ return 4;
+ case Microsoft.CodeAnalysis.TypeKind.Dynamic:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Enum:
+ return 1;
+ case Microsoft.CodeAnalysis.TypeKind.Error:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Interface:
+ return 2;
+ case Microsoft.CodeAnalysis.TypeKind.Module:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Pointer:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Struct:
+ return 3;
+ case Microsoft.CodeAnalysis.TypeKind.TypeParameter:
+ return 0;
+ case Microsoft.CodeAnalysis.TypeKind.Submission:
+ return 0;
+ default:
+ throw new ArgumentOutOfRangeException ();
}
- return "";
}
- public static string GetStockIcon (this IUnresolvedEntity entity, bool showAccessibility = true)
+
+ internal static IconId GetStockIconForSymbolInfo (this DeclaredSymbolInfo symbol)
{
- switch (entity.SymbolKind) {
- case SymbolKind.TypeDefinition:
- return GetStockIcon ((IUnresolvedTypeDefinition)entity);
- case SymbolKind.Field:
- if (showAccessibility)
- return fieldIconTable [(int)entity.Accessibility];
- else
- return fieldIconTable [0];
- case SymbolKind.Method:
- case SymbolKind.Constructor:
- case SymbolKind.Destructor:
- case SymbolKind.Operator:
- if (showAccessibility)
- return methodIconTable [(int)entity.Accessibility];
- else
- return methodIconTable [0];
- case SymbolKind.Property:
- case SymbolKind.Indexer:
- if (showAccessibility)
- return propertyIconTable [(int)entity.Accessibility];
- else
- return propertyIconTable [0];
- case SymbolKind.Event:
- if (showAccessibility)
- return eventIconTable [(int)entity.Accessibility];
- else
- return eventIconTable [0];
+ switch (symbol.Kind) {
+ case DeclaredSymbolInfoKind.Class:
+ return Stock.Class;
+ case DeclaredSymbolInfoKind.Constant:
+ return Stock.Field;
+ case DeclaredSymbolInfoKind.Constructor:
+ return Stock.Method;
+ case DeclaredSymbolInfoKind.Delegate:
+ return Stock.Delegate;
+ case DeclaredSymbolInfoKind.Enum:
+ return Stock.Enum;
+ case DeclaredSymbolInfoKind.EnumMember:
+ return Stock.Field;
+ case DeclaredSymbolInfoKind.Event:
+ return Stock.Event;
+ case DeclaredSymbolInfoKind.Field:
+ return Stock.Field;
+ case DeclaredSymbolInfoKind.Indexer:
+ return Stock.Method;
+ case DeclaredSymbolInfoKind.Interface:
+ return Stock.Interface;
+ case DeclaredSymbolInfoKind.Method:
+ return Stock.Method;
+ case DeclaredSymbolInfoKind.Module:
+ return Stock.Method;
+ case DeclaredSymbolInfoKind.Property:
+ return Stock.Property;
+ case DeclaredSymbolInfoKind.Struct:
+ return Stock.Struct;
+ default:
+ throw new ArgumentOutOfRangeException ();
}
- return "";
}
}
}