示例#1
0
        /// <summary>
        /// Generates metadata strings for the specified method.
        /// </summary>
        /// <param name="method">The method.</param>
        /// <returns>The metadata strings.</returns>
        private IEnumerable <string> GenerateMetadataStrings(CodeItemMethod method)
        {
            var strings = new List <string>();

            strings.AddRange(GenerateMetadataStrings((BaseCodeItemElement)method));

            switch (method.OverrideKind)
            {
            case vsCMOverrideKind.vsCMOverrideKindAbstract:
                strings.Add(UseExtendedStrings ? "abstract" : "a");
                break;

            case vsCMOverrideKind.vsCMOverrideKindVirtual:
                strings.Add(UseExtendedStrings ? "virtual" : "v");
                break;

            case vsCMOverrideKind.vsCMOverrideKindOverride:
                strings.Add(UseExtendedStrings ? "override" : "o");
                break;

            case vsCMOverrideKind.vsCMOverrideKindNew:
                strings.Add(UseExtendedStrings ? "new" : "n");
                break;
            }

            return(strings);
        }
示例#2
0
        private static CodeItemMethod CreateExplicitMethod(string interfaceName, string methodName, int offset)
        {
            CodeItemMethod method = Create <CodeItemMethod>(interfaceName + "." + methodName, offset);

            method.CodeFunction      = Substitute.For <CodeFunction2>();
            method.CodeFunction.Name = method.Name;
            return(method);
        }
示例#3
0
        public void ShouldPlaceExplicitInterfaceMembersAtTheEndOfTheGroup()
        {
            CodeItemMethod methodA  = CreateExplicitMethod("Interface", "A", 1);
            BaseCodeItem   methodB  = Create <CodeItemMethod>("B", 2);
            var            comparer = new CodeItemTypeComparer(sortByName: true);

            Settings.Default.Reorganizing_ExplicitMembersAtEnd = true;
            int result = comparer.Compare(methodB, methodA);

            Assert.IsTrue(result < 0);
        }
示例#4
0
        public void ShouldSortByExplicitInterfaceMemberName()
        {
            CodeItemMethod methodZ  = CreateExplicitMethod("Interface", "Z", 1);
            BaseCodeItem   methodX  = Create <CodeItemMethod>("X", 2);
            var            comparer = new CodeItemTypeComparer(sortByName: true);

            Settings.Default.Reorganizing_ExplicitMembersAtEnd = false;
            int result = comparer.Compare(methodX, methodZ);

            Assert.IsTrue(result < 0);
        }