private bool AppendEnumValue([NotNull] ConstantValue constantValue, [NotNull] IEnum enumType) { IList <IField> fields = CSharpEnumUtil.CalculateEnumMembers(constantValue, enumType); if (fields.Count == 0) { return(false); } string typeHighlighterId = _highlighterIdProvider.Enum; string valueHighlighterId = _highlighterIdProvider.Constant; var orderedFields = fields.OrderBy(f => f.ShortName); bool addSeparator = false; foreach (IField orderedField in orderedFields) { if (addSeparator) { AppendText(" | ", _highlighterIdProvider.Operator); } AppendText(enumType.ShortName, typeHighlighterId); AppendText(".", _highlighterIdProvider.Operator); AppendText(orderedField.ShortName, valueHighlighterId); addSeparator = true; } return(true); }
private string GetRiderPresentation(UnityPresentationType unityPresentationType, string unityValue, IType enumType, IPsiModule psiModule) { if (unityPresentationType == UnityPresentationType.Bool) { if (unityValue.Equals("0")) { return("\"false\""); } return("\"true\""); } if (unityPresentationType == UnityPresentationType.Enum) { if (!int.TryParse(unityValue, out var result)) { return("..."); } var @enum = enumType.GetTypeElement() as IEnum; var enumMemberType = @enum?.EnumMembers.FirstOrDefault()?.ConstantValue.Type; if (enumMemberType == null) { return("..."); } var enumMembers = CSharpEnumUtil.CalculateEnumMembers(new ConstantValue(result, enumMemberType), @enum); return(string.Join(" | ", enumMembers.Select(t => t.ShortName))); } return($"\"{unityValue ?? "..." }\""); }
private bool AppendEnumValue([NotNull] ConstantValue constantValue, [NotNull] IEnum enumType) { IList <IField> fields = CSharpEnumUtil.CalculateEnumMembers(constantValue, enumType); if (fields.Count == 0) { return(false); } string typeHighlighterId = _useReSharperColors ? HighlightingAttributeIds.TYPE_ENUM_ATTRIBUTE : VsHighlightingAttributeIds.Enums; string valueHighlighterId = _useReSharperColors ? HighlightingAttributeIds.CONSTANT_IDENTIFIER_ATTRIBUTE : VsHighlightingAttributeIds.Identifier; var orderedFields = fields.OrderBy(f => f.ShortName); bool addSeparator = false; foreach (IField orderedField in orderedFields) { if (addSeparator) { AppendText(" | ", VsHighlightingAttributeIds.Operator); } AppendText(enumType.ShortName, typeHighlighterId); AppendText(".", VsHighlightingAttributeIds.Operator); AppendText(orderedField.ShortName, valueHighlighterId); addSeparator = true; } return(true); }
private string GetPresentationInner(ISolution solution, IDeclaredElement declaredElement, bool prefabImport, bool makeTextShorter) { solution.GetComponent <IShellLocks>().AssertReadAccessAllowed(); var type = declaredElement.Type(); if (type == null) { return("..."); } if (type.IsBool()) { if (SimpleValue.Equals("0")) { return("\"false\""); } return("\"true\""); } if (type.IsEnumType()) { if (!int.TryParse(SimpleValue, out var result)) { return("..."); } var @enum = type.GetTypeElement() as IEnum; var enumMemberType = @enum?.EnumMembers.FirstOrDefault()?.ConstantValue.Type; if (enumMemberType == null) { return("..."); } var enumMembers = CSharpEnumUtil.CalculateEnumMembers(new ConstantValue(result, enumMemberType), @enum); return(string.Join(" | ", enumMembers.Select(t => t.ShortName))); } var textPresentation = SimpleValue; if (makeTextShorter && textPresentation != null) { textPresentation = StringUtil.DropMiddleIfLong(textPresentation, 30); } return($"\"{textPresentation ?? "..." }\""); }