diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs index b85585399e602c5e0900f7f1826e59cce6695558..187737f3bd67b78de4b2359ab0447ae264cf961c 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAccessorFunction.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeFunction))] + [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))] public sealed partial class CodeAccessorFunction : AbstractCodeElement, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2 { internal static EnvDTE.CodeFunction Create(CodeModelState state, AbstractCodeMember parent, MethodKind kind) diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs index 907ffaa98a9065eea4f896b1706208de1ebb5294..bc6c69689522c3611d969d961618b7ae9b18f76c 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeAttribute.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeAttribute))] + [ComDefaultInterface(typeof(EnvDTE80.CodeAttribute2))] public sealed class CodeAttribute : AbstractCodeElement, ICodeElementContainer, EnvDTE.CodeAttribute, EnvDTE80.CodeAttribute2 { internal static EnvDTE.CodeAttribute Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs index 57a4fe2442f45af9cec2a7cdbf765ac448542148..6dd89c5a6efe2e8ce474013ec7f2438ef987e06c 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeDelegate.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeDelegate))] + [ComDefaultInterface(typeof(EnvDTE80.CodeDelegate2))] public sealed partial class CodeDelegate : AbstractCodeType, ICodeElementContainer, EnvDTE.CodeDelegate, EnvDTE80.CodeDelegate2 { internal static EnvDTE.CodeDelegate Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs index 422b56afbff7e9c9cc7c4a288a78c46cb9c6831e..ce9050037cfce3416350f3866a488436e884148b 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeEnum.cs @@ -2,7 +2,6 @@ using System.Runtime.InteropServices; using Microsoft.VisualStudio.LanguageServices.Implementation.Interop; -using Microsoft.VisualStudio.LanguageServices.Implementation.Utilities; namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs index 582cd160a5372a7852dcead61fef5b84de1a1a8a..8cc87195f0e4489974a34dafd860107df42cc684 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeFunction.cs @@ -12,7 +12,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeFunction))] + [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))] public partial class CodeFunction : AbstractCodeMember, ICodeElementContainer, ICodeElementContainer, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2, IMethodXML, IMethodXML2 { internal static EnvDTE.CodeFunction Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs index af064b7bb0d71a6f6ed6d9e2e88a53d3f01e722b..ce2082ac48332b3249b4c81addc5d3556d69f544 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeInterface.cs @@ -7,7 +7,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeInterface))] + [ComDefaultInterface(typeof(EnvDTE80.CodeInterface2))] public sealed class CodeInterface : AbstractCodeType, EnvDTE.CodeInterface, EnvDTE80.CodeInterface2 { internal static EnvDTE.CodeInterface Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs index b099a5a3dbc7cfd3a0bd8d89dd86740998e261e8..a68d12e8866fc999bb3c4ac6f73b824d98dbd9da 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeParameter.cs @@ -12,7 +12,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeParameter))] + [ComDefaultInterface(typeof(EnvDTE80.CodeParameter2))] public sealed class CodeParameter : AbstractCodeElement, EnvDTE.CodeParameter, EnvDTE80.CodeParameter2 { internal static EnvDTE.CodeParameter Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs index b2d0d7ff8ccf63502d9fdab75c144f3e4bfa4d26..3cf1f631f69e1a2664a96404df0145d488f7e9c1 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeProperty.cs @@ -10,7 +10,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeProperty))] + [ComDefaultInterface(typeof(EnvDTE80.CodeProperty2))] public sealed partial class CodeProperty : AbstractCodeMember, ICodeElementContainer, ICodeElementContainer, EnvDTE.CodeProperty, EnvDTE80.CodeProperty2 { internal static EnvDTE.CodeProperty Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs index dab9492a87874fbc64fc28b7f6dbbc387e0ae661..02b64128fa9f79b6309eb1a9a9fe97b2e0a7ab44 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeStruct.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeStruct))] + [ComDefaultInterface(typeof(EnvDTE80.CodeStruct2))] public sealed class CodeStruct : AbstractCodeType, EnvDTE.CodeStruct, EnvDTE80.CodeStruct2 { internal static EnvDTE.CodeStruct Create( diff --git a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs index 68f39be88197cbefcb3c77945830c7f9c778fc08..9a5f236c2dce0fb7d4d44f0c64cc044e06e7d445 100644 --- a/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs +++ b/src/VisualStudio/Core/Impl/CodeModel/InternalElements/CodeVariable.cs @@ -8,7 +8,7 @@ namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements { [ComVisible(true)] - [ComDefaultInterface(typeof(EnvDTE.CodeVariable))] + [ComDefaultInterface(typeof(EnvDTE80.CodeVariable2))] public sealed class CodeVariable : AbstractCodeMember, EnvDTE.CodeVariable, EnvDTE80.CodeVariable2 { internal static EnvDTE.CodeVariable Create( diff --git a/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb b/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb index cf33f5875f6077745892fc25992d586a43305ef6..8d7b47f18447ea14e5d15c072ec5ae69e70eb1ae 100644 --- a/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb +++ b/src/VisualStudio/Core/Test/CodeModel/AbstractCodeElementTests`1.vb @@ -363,6 +363,21 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel Throw New NotSupportedException End Sub + Protected Sub TestPropertyDescriptors(code As XElement, ParamArray expectedPropertyNames As String()) + Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code)) + Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)() + Assert.NotNull(codeElement) + + Dim propertyDescriptors = ComponentModel.TypeDescriptor.GetProperties(codeElement) + Dim propertyNames = propertyDescriptors _ + .OfType(Of ComponentModel.PropertyDescriptor) _ + .Select(Function(pd) pd.Name) _ + .ToArray() + + Assert.Equal(expectedPropertyNames, propertyNames) + End Using + End Sub + Protected Sub TestElement(code As XElement, expected As Action(Of TCodeElement)) Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code)) Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)() diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb index d604426256f19780f39a9ecfd65d22fd886342a7..7c4d5ceabe9f2753030ce4f14a08b5eab09bcaf3 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAccessorFunctionTests.vb @@ -1,8 +1,6 @@ ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -Imports System.Runtime.InteropServices Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -57,6 +55,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + int P { $$get { return 42; } } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "FunctionKind", "Type", "Parameters", "Access", "IsOverloaded", + "IsShared", "MustImplement", "Overloads", "Attributes", "DocComment", "Comment", + "CanOverride", "OverrideKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb index efb8fef02a08266f0289f9bd1d30f3e19e15660a..bcba5e63343028f8d64c9b4a4a6809d5f9b9ffca 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeAttributeTests.vb @@ -1008,6 +1008,24 @@ class C { } End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +[$$System.CLSCompliant(true)] +class C +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Value", "Target", "Arguments"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb index 7639d4c24124f190c810ccde3c117190af8c2042..57406551535459d8d688a0f81d845d6081c562e0 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeClassTests.vb @@ -3791,13 +3791,6 @@ partial class Foo Public Sub TypeDescriptor_GetProperties() - Dim expectedPropertyNames = {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", - "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", - "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", - "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", - "ClassKind", "PartialClasses", "DataTypeKind", "Parts", "InheritanceKind", "IsGeneric", - "IsShared"} - Dim code = class $$C @@ -3805,16 +3798,15 @@ class $$C } - TestElement(code, - Sub(codeClass) - Dim propertyDescriptors = ComponentModel.TypeDescriptor.GetProperties(codeClass) - Dim propertyNames = propertyDescriptors _ - .OfType(Of ComponentModel.PropertyDescriptor) _ - .Select(Function(pd) pd.Name) _ - .ToArray() + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", + "ClassKind", "PartialClasses", "DataTypeKind", "Parts", "InheritanceKind", "IsGeneric", + "IsShared"} - Assert.Equal(expectedPropertyNames, propertyNames) - End Sub) + TestPropertyDescriptors(code, expectedPropertyNames) End Sub diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb index 777a7468c1e98eac152a5f0b9207ec1e38575c7b..0285c2f20828bcc777cc68da44319bd055a30357 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeDelegateTests.vb @@ -367,6 +367,23 @@ delegate void D(); #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +delegate void $$D(); + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", + "IsCodeType", "InfoLocation", "Children", "Language", "StartPoint", + "EndPoint", "ExtenderNames", "ExtenderCATID", "Parent", "Namespace", + "Bases", "Members", "Access", "Attributes", "DocComment", "Comment", + "DerivedTypes", "BaseClass", "Type", "Parameters", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb index e3aeb422457885ed370560506b87266255e7e03a..a85818c65d132cd6cbaee992d963db2e63863021 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEnumTests.vb @@ -567,6 +567,24 @@ enum Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +enum $$E +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb index ff3ec3c4d79b1c1287631780411e561a88179b0d..1a503dbe39e3cd41ae61462385351c7f99abf165 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeEventTests.vb @@ -887,6 +887,25 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + event System.EventHandler $$E; +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Access", "Attributes", "DocComment", "Comment", "Adder", + "Remover", "Thrower", "IsPropertyStyleEvent", "Type", "OverrideKind", "IsShared"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb index 73252d31f1a1c44249bff52b9b5cd67c1167b949..6311423706d650ce21e68426f16c6ed1f1d913ab 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeFunctionTests.vb @@ -2660,6 +2660,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + void $$M() { } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "FunctionKind", "Type", "Parameters", "Access", "IsOverloaded", + "IsShared", "MustImplement", "Overloads", "Attributes", "DocComment", "Comment", + "CanOverride", "OverrideKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Private Function GetExtensionMethodExtender(codeElement As EnvDTE80.CodeFunction2) As ICSExtensionMethodExtender Return CType(codeElement.Extender(ExtenderNames.ExtensionMethod), ICSExtensionMethodExtender) End Function diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb index b4f1c222e7fbd743a19ad74cf73b651da00f2317..3bdf97d0c2b1cc46f3acc2ab197d83596cd7011b 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeImportTests.vb @@ -2,7 +2,6 @@ Imports System.Runtime.InteropServices Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -74,6 +73,21 @@ namespace Bar #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +using $$System; + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Namespace", "Alias", "Parent"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb index 41e54c7f9d6d1296f39c0769fa5c21ded7e0bf5a..63684ec3b38ae2657ab0b362518a09be68348695 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeInterfaceTests.vb @@ -411,6 +411,24 @@ interface Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +interface $$I +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "IsGeneric", "DataTypeKind", "Parts"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb index da425dc000b0e3191f8d40b985340ef6f38ed3de..66a490f2080b4679583132a70427a813d3b234d8 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeNamespaceTests.vb @@ -53,6 +53,23 @@ namespace N$$ IsElement("C3", EnvDTE.vsCMElement.vsCMElementClass)) End Sub + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +namespace $$N +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Members", "DocComment", "Comment"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb index 19c045599db8ee145b855226552e9da94a862c25..1b782bce8b3ecde246f1b1d302471c418e86043f 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeParameterTests.vb @@ -1,7 +1,6 @@ ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. Imports Microsoft.CodeAnalysis -Imports Microsoft.CodeAnalysis.Text Imports Roslyn.Test.Utilities Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp @@ -575,6 +574,24 @@ delegate void Foo(byte?[,] i) { } #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + void M(int $$p) { } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Type", "Attributes", "DocComment", "ParameterKind", "DefaultValue"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb index 330976a44af03c8d26dc3cd2872abb9549d81ebf..af625e30dae33593f75711f7f0ea5032215e450f 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodePropertyTests.vb @@ -1450,6 +1450,26 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class C +{ + int $$P { get { return 42; } } +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Type", "Getter", "Setter", "Access", "Attributes", + "DocComment", "Comment", "Parameters", "IsGeneric", "OverrideKind", "IsShared", + "IsDefault", "Parent2", "ReadWrite"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Private Function GetAutoImplementedPropertyExtender(codeElement As EnvDTE80.CodeProperty2) As ICSAutoImplementedPropertyExtender Return CType(codeElement.Extender(ExtenderNames.AutoImplementedProperty), ICSAutoImplementedPropertyExtender) End Function diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb index 366042388490251aa1ac6a6aac804fdb71130a01..c35463c910739ac8e6753b0a0f87817028c9d915 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeStructTests.vb @@ -515,6 +515,25 @@ struct Bar End Sub #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +struct $$S +{ +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes", + "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract", + "IsGeneric", "DataTypeKind", "Parts"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp diff --git a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb index c649c16de0fc79fe9cd9c0f6a769bbddfe1a36c4..34b6a7920495ffb7e7d021a315a4d240b2f202f0 100644 --- a/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb +++ b/src/VisualStudio/Core/Test/CodeModel/CSharp/CodeVariableTests.vb @@ -2005,6 +2005,25 @@ class C #End Region + + Public Sub TypeDescriptor_GetProperties() + Dim code = + +class S +{ + int $$x; +} + + + Dim expectedPropertyNames = + {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType", + "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames", + "ExtenderCATID", "Parent", "InitExpression", "Type", "Access", "IsConstant", "Attributes", + "DocComment", "Comment", "IsShared", "ConstKind", "IsGeneric"} + + TestPropertyDescriptors(code, expectedPropertyNames) + End Sub + Protected Overrides ReadOnly Property LanguageName As String Get Return LanguageNames.CSharp