Example #1
0
        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);
        }
Example #2
0
        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 ?? "..." }\"");
        }
Example #3
0
        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);
        }
Example #4
0
        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 ?? "..." }\"");
        }