提交 4feb508d 编写于 作者: D Dustin Campbell

Specify correct ComDefaultInterface for other Code Model types

上级 9760cdc7
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeFunction))] [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))]
public sealed partial class CodeAccessorFunction : AbstractCodeElement, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2 public sealed partial class CodeAccessorFunction : AbstractCodeElement, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2
{ {
internal static EnvDTE.CodeFunction Create(CodeModelState state, AbstractCodeMember parent, MethodKind kind) internal static EnvDTE.CodeFunction Create(CodeModelState state, AbstractCodeMember parent, MethodKind kind)
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeAttribute))] [ComDefaultInterface(typeof(EnvDTE80.CodeAttribute2))]
public sealed class CodeAttribute : AbstractCodeElement, ICodeElementContainer<CodeAttributeArgument>, EnvDTE.CodeAttribute, EnvDTE80.CodeAttribute2 public sealed class CodeAttribute : AbstractCodeElement, ICodeElementContainer<CodeAttributeArgument>, EnvDTE.CodeAttribute, EnvDTE80.CodeAttribute2
{ {
internal static EnvDTE.CodeAttribute Create( internal static EnvDTE.CodeAttribute Create(
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeDelegate))] [ComDefaultInterface(typeof(EnvDTE80.CodeDelegate2))]
public sealed partial class CodeDelegate : AbstractCodeType, ICodeElementContainer<CodeParameter>, EnvDTE.CodeDelegate, EnvDTE80.CodeDelegate2 public sealed partial class CodeDelegate : AbstractCodeType, ICodeElementContainer<CodeParameter>, EnvDTE.CodeDelegate, EnvDTE80.CodeDelegate2
{ {
internal static EnvDTE.CodeDelegate Create( internal static EnvDTE.CodeDelegate Create(
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using Microsoft.VisualStudio.LanguageServices.Implementation.Interop; using Microsoft.VisualStudio.LanguageServices.Implementation.Interop;
using Microsoft.VisualStudio.LanguageServices.Implementation.Utilities;
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeFunction))] [ComDefaultInterface(typeof(EnvDTE80.CodeFunction2))]
public partial class CodeFunction : AbstractCodeMember, ICodeElementContainer<CodeParameter>, ICodeElementContainer<CodeAttribute>, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2, IMethodXML, IMethodXML2 public partial class CodeFunction : AbstractCodeMember, ICodeElementContainer<CodeParameter>, ICodeElementContainer<CodeAttribute>, EnvDTE.CodeFunction, EnvDTE80.CodeFunction2, IMethodXML, IMethodXML2
{ {
internal static EnvDTE.CodeFunction Create( internal static EnvDTE.CodeFunction Create(
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeInterface))] [ComDefaultInterface(typeof(EnvDTE80.CodeInterface2))]
public sealed class CodeInterface : AbstractCodeType, EnvDTE.CodeInterface, EnvDTE80.CodeInterface2 public sealed class CodeInterface : AbstractCodeType, EnvDTE.CodeInterface, EnvDTE80.CodeInterface2
{ {
internal static EnvDTE.CodeInterface Create( internal static EnvDTE.CodeInterface Create(
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeParameter))] [ComDefaultInterface(typeof(EnvDTE80.CodeParameter2))]
public sealed class CodeParameter : AbstractCodeElement, EnvDTE.CodeParameter, EnvDTE80.CodeParameter2 public sealed class CodeParameter : AbstractCodeElement, EnvDTE.CodeParameter, EnvDTE80.CodeParameter2
{ {
internal static EnvDTE.CodeParameter Create( internal static EnvDTE.CodeParameter Create(
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeProperty))] [ComDefaultInterface(typeof(EnvDTE80.CodeProperty2))]
public sealed partial class CodeProperty : AbstractCodeMember, ICodeElementContainer<CodeParameter>, ICodeElementContainer<CodeAttribute>, EnvDTE.CodeProperty, EnvDTE80.CodeProperty2 public sealed partial class CodeProperty : AbstractCodeMember, ICodeElementContainer<CodeParameter>, ICodeElementContainer<CodeAttribute>, EnvDTE.CodeProperty, EnvDTE80.CodeProperty2
{ {
internal static EnvDTE.CodeProperty Create( internal static EnvDTE.CodeProperty Create(
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeStruct))] [ComDefaultInterface(typeof(EnvDTE80.CodeStruct2))]
public sealed class CodeStruct : AbstractCodeType, EnvDTE.CodeStruct, EnvDTE80.CodeStruct2 public sealed class CodeStruct : AbstractCodeType, EnvDTE.CodeStruct, EnvDTE80.CodeStruct2
{ {
internal static EnvDTE.CodeStruct Create( internal static EnvDTE.CodeStruct Create(
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements namespace Microsoft.VisualStudio.LanguageServices.Implementation.CodeModel.InternalElements
{ {
[ComVisible(true)] [ComVisible(true)]
[ComDefaultInterface(typeof(EnvDTE.CodeVariable))] [ComDefaultInterface(typeof(EnvDTE80.CodeVariable2))]
public sealed class CodeVariable : AbstractCodeMember, EnvDTE.CodeVariable, EnvDTE80.CodeVariable2 public sealed class CodeVariable : AbstractCodeMember, EnvDTE.CodeVariable, EnvDTE80.CodeVariable2
{ {
internal static EnvDTE.CodeVariable Create( internal static EnvDTE.CodeVariable Create(
......
...@@ -363,6 +363,21 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel ...@@ -363,6 +363,21 @@ Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel
Throw New NotSupportedException Throw New NotSupportedException
End Sub 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)) Protected Sub TestElement(code As XElement, expected As Action(Of TCodeElement))
Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code)) Using state = CreateCodeModelTestState(GetWorkspaceDefinition(code))
Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)() Dim codeElement = state.GetCodeElementAtCursor(Of TCodeElement)()
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' 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
Imports Microsoft.CodeAnalysis.Text
Imports Roslyn.Test.Utilities Imports Roslyn.Test.Utilities
Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp
...@@ -57,6 +55,26 @@ class C ...@@ -57,6 +55,26 @@ class C
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class C
{
int P { $$get { return 42; } }
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -1008,6 +1008,24 @@ class C { } ...@@ -1008,6 +1008,24 @@ class C { }
End Sub End Sub
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
[$$System.CLSCompliant(true)]
class C
{
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -3791,13 +3791,6 @@ partial class Foo ...@@ -3791,13 +3791,6 @@ partial class Foo
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)> <ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties() 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 = Dim code =
<Code> <Code>
class $$C class $$C
...@@ -3805,16 +3798,15 @@ class $$C ...@@ -3805,16 +3798,15 @@ class $$C
} }
</Code> </Code>
TestElement(code, Dim expectedPropertyNames =
Sub(codeClass) {"DTE", "Collection", "Name", "FullName", "ProjectItem", "Kind", "IsCodeType",
Dim propertyDescriptors = ComponentModel.TypeDescriptor.GetProperties(codeClass) "InfoLocation", "Children", "Language", "StartPoint", "EndPoint", "ExtenderNames",
Dim propertyNames = propertyDescriptors _ "ExtenderCATID", "Parent", "Namespace", "Bases", "Members", "Access", "Attributes",
.OfType(Of ComponentModel.PropertyDescriptor) _ "DocComment", "Comment", "DerivedTypes", "ImplementedInterfaces", "IsAbstract",
.Select(Function(pd) pd.Name) _ "ClassKind", "PartialClasses", "DataTypeKind", "Parts", "InheritanceKind", "IsGeneric",
.ToArray() "IsShared"}
Assert.Equal(expectedPropertyNames, propertyNames) TestPropertyDescriptors(code, expectedPropertyNames)
End Sub)
End Sub End Sub
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)> <ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
......
...@@ -367,6 +367,23 @@ delegate void D(); ...@@ -367,6 +367,23 @@ delegate void D();
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
delegate void $$D();
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -567,6 +567,24 @@ enum Bar ...@@ -567,6 +567,24 @@ enum Bar
End Sub End Sub
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
enum $$E
{
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -887,6 +887,25 @@ class C ...@@ -887,6 +887,25 @@ class C
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class C
{
event System.EventHandler $$E;
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -2660,6 +2660,26 @@ class C ...@@ -2660,6 +2660,26 @@ class C
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class C
{
void $$M() { }
}
</Code>
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 Private Function GetExtensionMethodExtender(codeElement As EnvDTE80.CodeFunction2) As ICSExtensionMethodExtender
Return CType(codeElement.Extender(ExtenderNames.ExtensionMethod), ICSExtensionMethodExtender) Return CType(codeElement.Extender(ExtenderNames.ExtensionMethod), ICSExtensionMethodExtender)
End Function End Function
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
Imports System.Runtime.InteropServices Imports System.Runtime.InteropServices
Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis
Imports Microsoft.CodeAnalysis.Text
Imports Roslyn.Test.Utilities Imports Roslyn.Test.Utilities
Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp
...@@ -74,6 +73,21 @@ namespace Bar ...@@ -74,6 +73,21 @@ namespace Bar
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
using $$System;
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -411,6 +411,24 @@ interface Bar ...@@ -411,6 +411,24 @@ interface Bar
End Sub End Sub
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
interface $$I
{
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -53,6 +53,23 @@ namespace N$$ ...@@ -53,6 +53,23 @@ namespace N$$
IsElement("C3", EnvDTE.vsCMElement.vsCMElementClass)) IsElement("C3", EnvDTE.vsCMElement.vsCMElementClass))
End Sub End Sub
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
namespace $$N
{
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. ' 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
Imports Microsoft.CodeAnalysis.Text
Imports Roslyn.Test.Utilities Imports Roslyn.Test.Utilities
Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.CSharp
...@@ -575,6 +574,24 @@ delegate void Foo(byte?[,] i) { } ...@@ -575,6 +574,24 @@ delegate void Foo(byte?[,] i) { }
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class C
{
void M(int $$p) { }
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -1450,6 +1450,26 @@ class C ...@@ -1450,6 +1450,26 @@ class C
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class C
{
int $$P { get { return 42; } }
}
</Code>
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 Private Function GetAutoImplementedPropertyExtender(codeElement As EnvDTE80.CodeProperty2) As ICSAutoImplementedPropertyExtender
Return CType(codeElement.Extender(ExtenderNames.AutoImplementedProperty), ICSAutoImplementedPropertyExtender) Return CType(codeElement.Extender(ExtenderNames.AutoImplementedProperty), ICSAutoImplementedPropertyExtender)
End Function End Function
......
...@@ -515,6 +515,25 @@ struct Bar ...@@ -515,6 +515,25 @@ struct Bar
End Sub End Sub
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
struct $$S
{
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
...@@ -2005,6 +2005,25 @@ class C ...@@ -2005,6 +2005,25 @@ class C
#End Region #End Region
<ConditionalFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
Public Sub TypeDescriptor_GetProperties()
Dim code =
<Code>
class S
{
int $$x;
}
</Code>
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 Protected Overrides ReadOnly Property LanguageName As String
Get Get
Return LanguageNames.CSharp Return LanguageNames.CSharp
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册