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:
authorMike Krüger <mkrueger@xamarin.com>2015-11-23 16:10:44 +0300
committerMike Krüger <mkrueger@xamarin.com>2015-11-23 16:10:51 +0300
commit31a6bd9d2464cdcc80ca97ef31874d4dce6808e7 (patch)
tree86e70c68163cd05a7194ed02e257da5c3dea4ce9 /main/src/addins/MonoDevelop.AssemblyBrowser
parente7835909ffa08536761def7377a8a7d53aaa88a1 (diff)
[Ide] Implemented static overlay icon.
For completion, assembly browser and breadcrumb.
Diffstat (limited to 'main/src/addins/MonoDevelop.AssemblyBrowser')
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NRefactoryStock.cs323
1 files changed, 122 insertions, 201 deletions
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NRefactoryStock.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NRefactoryStock.cs
index 9d4624c339..f06aab28df 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NRefactoryStock.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/NRefactoryStock.cs
@@ -31,96 +31,9 @@ namespace MonoDevelop.AssemblyBrowser
{
static class NRefactoryStock
{
- static readonly IconId Class = "md-class";
- static readonly IconId Enum = "md-enum";
- static readonly IconId Event = "md-event";
static readonly IconId Field = "md-field";
- static readonly IconId Interface = "md-interface";
- static readonly IconId Method = "md-method";
- static readonly IconId ExtensionMethod = "md-extensionmethod";
- static readonly IconId Property = "md-property";
- static readonly IconId Struct = "md-struct";
- static readonly IconId Delegate = "md-delegate";
public static readonly IconId Namespace = "md-name-space";
- static readonly IconId InternalClass = "md-internal-class";
- static readonly IconId InternalDelegate = "md-internal-delegate";
- static readonly IconId InternalEnum = "md-internal-enum";
- static readonly IconId InternalEvent = "md-internal-event";
- static readonly IconId InternalField = "md-internal-field";
- static readonly IconId InternalInterface = "md-internal-interface";
- static readonly IconId InternalMethod = "md-internal-method";
- static readonly IconId InternalExtensionMethod = "md-internal-extensionmethod";
- static readonly IconId InternalProperty = "md-internal-property";
- static readonly IconId InternalStruct = "md-internal-struct";
-
- static readonly IconId InternalAndProtectedClass = "md-InternalAndProtected-class";
- static readonly IconId InternalAndProtectedDelegate = "md-InternalAndProtected-delegate";
- static readonly IconId InternalAndProtectedEnum = "md-InternalAndProtected-enum";
- static readonly IconId InternalAndProtectedEvent = "md-InternalAndProtected-event";
- static readonly IconId InternalAndProtectedField = "md-InternalAndProtected-field";
- static readonly IconId InternalAndProtectedInterface = "md-InternalAndProtected-interface";
- static readonly IconId InternalAndProtectedMethod = "md-InternalAndProtected-method";
- static readonly IconId InternalAndProtectedExtensionMethod = "md-InternalAndProtected-extensionmethod";
- static readonly IconId InternalAndProtectedProperty = "md-InternalAndProtected-property";
- static readonly IconId InternalAndProtectedStruct = "md-InternalAndProtected-struct";
-
- static readonly IconId PrivateClass = "md-private-class";
- static readonly IconId PrivateDelegate = "md-private-delegate";
- static readonly IconId PrivateEnum = "md-private-enum";
- static readonly IconId PrivateEvent = "md-private-event";
- static readonly IconId PrivateField = "md-private-field";
- static readonly IconId PrivateInterface = "md-private-interface";
- static readonly IconId PrivateMethod = "md-private-method";
- static readonly IconId PrivateExtensionMethod = "md-private-extensionmethod";
- static readonly IconId PrivateProperty = "md-private-property";
- static readonly IconId PrivateStruct = "md-private-struct";
-
- static readonly IconId ProtectedClass = "md-protected-class";
- static readonly IconId ProtectedDelegate = "md-protected-delegate";
- static readonly IconId ProtectedEnum = "md-protected-enum";
- static readonly IconId ProtectedEvent = "md-protected-event";
- static readonly IconId ProtectedField = "md-protected-field";
- static readonly IconId ProtectedInterface = "md-protected-interface";
- static readonly IconId ProtectedMethod = "md-protected-method";
- static readonly IconId ProtectedExtensionMethod = "md-protected-extensionmethod";
- static readonly IconId ProtectedProperty = "md-protected-property";
- static readonly IconId ProtectedStruct = "md-protected-struct";
-
- static readonly IconId ProtectedOrInternalClass = "md-ProtectedOrInternal-class";
- static readonly IconId ProtectedOrInternalDelegate = "md-ProtectedOrInternal-delegate";
- static readonly IconId ProtectedOrInternalEnum = "md-ProtectedOrInternal-enum";
- static readonly IconId ProtectedOrInternalEvent = "md-ProtectedOrInternal-event";
- static readonly IconId ProtectedOrInternalField = "md-ProtectedOrInternal-field";
- static readonly IconId ProtectedOrInternalInterface = "md-ProtectedOrInternal-interface";
- static readonly IconId ProtectedOrInternalMethod = "md-ProtectedOrInternal-method";
- static readonly IconId ProtectedOrInternalExtensionMethod = "md-ProtectedOrInternal-extensionmethod";
- static readonly IconId ProtectedOrInternalProperty = "md-ProtectedOrInternal-property";
- static readonly IconId ProtectedOrInternalStruct = "md-ProtectedOrInternal-struct";
-
- static IconId[,] typeIconTable = new IconId[,] {
- {Class, PrivateClass, Class, ProtectedClass, InternalClass, ProtectedOrInternalClass, InternalAndProtectedClass}, // class
- {Enum, PrivateEnum, Enum, ProtectedEnum, InternalEnum, ProtectedOrInternalEnum, InternalAndProtectedEnum}, // enum
- {Interface, PrivateInterface, Interface, ProtectedInterface, InternalInterface, ProtectedOrInternalInterface, InternalAndProtectedInterface}, // interface
- {Struct, PrivateStruct, Struct, ProtectedStruct, InternalStruct, ProtectedOrInternalStruct, InternalAndProtectedStruct}, // struct
- {Delegate, PrivateDelegate, Delegate, ProtectedDelegate, InternalDelegate, ProtectedOrInternalDelegate, InternalAndProtectedDelegate} // delegate
- };
- static readonly IconId[] fieldIconTable = {
- NRefactoryStock.Field, NRefactoryStock.PrivateField, NRefactoryStock.Field, NRefactoryStock.ProtectedField, NRefactoryStock.InternalField, NRefactoryStock.ProtectedOrInternalField, NRefactoryStock.InternalAndProtectedField
- };
- static readonly IconId[] methodIconTable = {
- NRefactoryStock.Method, NRefactoryStock.PrivateMethod, NRefactoryStock.Method, NRefactoryStock.ProtectedMethod, NRefactoryStock.InternalMethod, NRefactoryStock.ProtectedOrInternalMethod, NRefactoryStock.InternalAndProtectedMethod
- };
- static readonly IconId[] extensionMethodIconTable = {
- NRefactoryStock.ExtensionMethod, NRefactoryStock.PrivateExtensionMethod, NRefactoryStock.ExtensionMethod, NRefactoryStock.ProtectedExtensionMethod, NRefactoryStock.InternalExtensionMethod, NRefactoryStock.ProtectedOrInternalExtensionMethod, NRefactoryStock.InternalAndProtectedExtensionMethod
- };
- static readonly IconId[] propertyIconTable = {
- NRefactoryStock.Property, NRefactoryStock.PrivateProperty, NRefactoryStock.Property, NRefactoryStock.ProtectedProperty, NRefactoryStock.InternalProperty, NRefactoryStock.ProtectedOrInternalProperty, NRefactoryStock.InternalAndProtectedProperty
- };
- static readonly IconId[] eventIconTable = {
- NRefactoryStock.Event, NRefactoryStock.PrivateEvent, NRefactoryStock.Event, NRefactoryStock.ProtectedEvent, NRefactoryStock.InternalEvent, NRefactoryStock.ProtectedOrInternalEvent, NRefactoryStock.InternalAndProtectedEvent
- };
-
public static IconId GetStockIcon (this INamedElement element)
{
if (element is IType)
@@ -137,77 +50,6 @@ namespace MonoDevelop.AssemblyBrowser
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];
- }
- }
- public static IconId GetStockIcon (this IUnresolvedTypeDefinition def)
- {
- 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 GetTypeIndex (Microsoft.CodeAnalysis.TypeKind typeKind)
- {
- 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 ();
- }
- }
-
public static IconId GetStockIcon (this IField field)
{
return GetStockIcon ((IEntity)field);
@@ -230,73 +72,152 @@ namespace MonoDevelop.AssemblyBrowser
public static IconId GetStockIcon (this IEntity entity, bool showAccessibility = true)
{
+ return "md-" + GetAccess (entity) + GetGlobal (entity) + GetSource (entity);
+ }
+
+ static string GetAccess (IEntity entity)
+ {
+ switch (entity.Accessibility) {
+ case Accessibility.None:
+ return "";
+ case Accessibility.Private:
+ return "private-";
+ case Accessibility.Public:
+ return "";
+ case Accessibility.Protected:
+ return "protected-";
+ case Accessibility.Internal:
+ return "internal-";
+ case Accessibility.ProtectedOrInternal:
+ case Accessibility.ProtectedAndInternal:
+ return "ProtectedOrInternal-";
+ default:
+ throw new ArgumentOutOfRangeException ();
+ }
+ }
+
+ static string GetGlobal (IEntity entity)
+ {
+ switch (entity.SymbolKind) {
+ case SymbolKind.Field:
+ case SymbolKind.Method:
+ case SymbolKind.Constructor:
+ case SymbolKind.Destructor:
+ case SymbolKind.Operator:
+ case SymbolKind.Property:
+ case SymbolKind.Indexer:
+ return entity.IsStatic ? "static-" : "";
+ }
+ return "";
+
+ }
+
+ static string GetSource (IEntity entity)
+ {
switch (entity.SymbolKind) {
case SymbolKind.TypeDefinition:
- return GetStockIcon ((IType)entity);
+ var type = (IType)entity;
+ switch (type.Kind) {
+ case TypeKind.Class:
+ return "class";
+ case TypeKind.Interface:
+ return "interface";
+ case TypeKind.Struct:
+ return "struct";
+ case TypeKind.Delegate:
+ return "delegate";
+ case TypeKind.Enum:
+ return "enum";
+ }
+ return "class";
case SymbolKind.Field:
- if (showAccessibility)
- return fieldIconTable [(int)entity.Accessibility];
- else
- return fieldIconTable [0];
+ case SymbolKind.Event:
+ return "field";
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];
- }
+ return "method";
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];
+ return "property";
}
return "";
}
+
public static IconId GetStockIcon (this IUnresolvedEntity entity, bool showAccessibility = true)
{
+ return "md-" + GetAccess (entity) + GetGlobal (entity) + GetSource (entity);
+ }
+
+ static string GetAccess (IUnresolvedEntity entity)
+ {
+ switch (entity.Accessibility) {
+ case Accessibility.None:
+ return "";
+ case Accessibility.Private:
+ return "private-";
+ case Accessibility.Public:
+ return "";
+ case Accessibility.Protected:
+ return "protected-";
+ case Accessibility.Internal:
+ return "internal-";
+ case Accessibility.ProtectedOrInternal:
+ case Accessibility.ProtectedAndInternal:
+ return "ProtectedOrInternal-";
+ default:
+ throw new ArgumentOutOfRangeException ();
+ }
+ }
+
+ static string GetGlobal (IUnresolvedEntity entity)
+ {
+ switch (entity.SymbolKind) {
+ case SymbolKind.Field:
+ case SymbolKind.Method:
+ case SymbolKind.Constructor:
+ case SymbolKind.Destructor:
+ case SymbolKind.Operator:
+ case SymbolKind.Property:
+ case SymbolKind.Indexer:
+ return entity.IsStatic ? "static-" : "";
+ }
+ return "";
+ }
+
+ static string GetSource (IUnresolvedEntity entity)
+ {
switch (entity.SymbolKind) {
case SymbolKind.TypeDefinition:
- return GetStockIcon ((IUnresolvedTypeDefinition)entity);
+ var type = (IUnresolvedTypeDefinition)entity;
+ switch (type.Kind) {
+ case TypeKind.Class:
+ return "class";
+ case TypeKind.Interface:
+ return "interface";
+ case TypeKind.Struct:
+ return "struct";
+ case TypeKind.Delegate:
+ return "delegate";
+ case TypeKind.Enum:
+ return "enum";
+ }
+ return "class";
case SymbolKind.Field:
- if (showAccessibility)
- return fieldIconTable [(int)entity.Accessibility];
- else
- return fieldIconTable [0];
+ return "field";
+ case SymbolKind.Event:
+ return "event";
case SymbolKind.Method:
case SymbolKind.Constructor:
case SymbolKind.Destructor:
case SymbolKind.Operator:
- if (showAccessibility)
- return methodIconTable [(int)entity.Accessibility];
- else
- return methodIconTable [0];
+ return "method";
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];
+ return "property";
}
return "";
}
}
-}
-
+} \ No newline at end of file