Browse Source

Implement EnvDTE.CodeElement.Kind.

pull/28/head
Matt Ward 13 years ago
parent
commit
a1e8921ac5
  1. 1
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeAttribute.cs
  3. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass.cs
  4. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeDelegate.cs
  5. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeElement.cs
  6. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs
  7. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeInterface.cs
  8. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeNamespace.cs
  9. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs
  10. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeProperty.cs
  11. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs
  12. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeVariable.cs
  13. 22
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/vsCMElement.cs
  14. 2
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  15. 11
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttribute2Tests.cs
  16. 11
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs
  17. 10
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeDelegateTests.cs
  18. 10
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs
  19. 40
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeInterfaceTests.cs
  20. 11
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeNamespaceTests.cs
  21. 30
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameterTests.cs
  22. 10
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeProperty2Tests.cs
  23. 10
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs
  24. 10
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeVariableTests.cs

1
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -117,6 +117,7 @@ @@ -117,6 +117,7 @@
<Compile Include="Src\EnvDTE\SourceControl.cs" />
<Compile Include="Src\EnvDTE\TextPoint.cs" />
<Compile Include="Src\EnvDTE\vsCMAccess.cs" />
<Compile Include="Src\EnvDTE\vsCMElement.cs" />
<Compile Include="Src\EnvDTE\vsCMFunction.cs" />
<Compile Include="Src\EnvDTE\vsCMInfoLocation.cs" />
<Compile Include="Src\EnvDTE\vsCMPropertyKind.cs" />

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeAttribute.cs

@ -21,6 +21,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -21,6 +21,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
this.attribute = attribute;
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementAttribute; }
}
public override string Name {
get { return GetShortName(); }
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass.cs

@ -17,6 +17,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -17,6 +17,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementClass; }
}
public virtual CodeElements ImplementedInterfaces {
get { return new ImplementedInterfacesOnClass(ProjectContent, Class); }
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeDelegate.cs

@ -16,5 +16,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -16,5 +16,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public CodeDelegate()
{
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementDelegate; }
}
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeElement.cs

@ -75,5 +75,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -75,5 +75,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
return vsCMAccess.vsCMAccessPrivate;
}
public virtual vsCMElement Kind {
get { return vsCMElement.vsCMElementOther; }
}
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs

@ -25,6 +25,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -25,6 +25,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementFunction; }
}
public virtual vsCMAccess Access {
get { return GetAccess(); }
set { }

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeInterface.cs

@ -22,6 +22,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -22,6 +22,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
fullName = type.GetFullName();
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementInterface; }
}
/// <summary>
/// Returns null if base type is not an interface.
/// </summary>

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeNamespace.cs

@ -25,6 +25,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -25,6 +25,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
this.Language = GetLanguage(projectContent);
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementNamespace; }
}
internal string QualifiedName {
get { return namespaceName.QualifiedName; }
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter.cs

@ -15,6 +15,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -15,6 +15,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
this.parameter = parameter;
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementParameter; }
}
public override string Name {
get { return parameter.Name; }
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeProperty.cs

@ -20,6 +20,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -20,6 +20,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
protected IProperty Property { get; private set; }
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementProperty; }
}
public virtual vsCMAccess Access {
get { return GetAccess(); }
set { }

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeStruct.cs

@ -16,5 +16,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -16,5 +16,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
: base(projectContent, c)
{
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementStruct; }
}
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeVariable.cs

@ -20,6 +20,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -20,6 +20,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE
this.field = field;
}
public override vsCMElement Kind {
get { return vsCMElement.vsCMElementVariable; }
}
public vsCMAccess Access {
get { return GetAccess(); }
set { }

22
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/vsCMElement.cs

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public enum vsCMElement
{
vsCMElementOther = 0,
vsCMElementClass = 1,
vsCMElementFunction = 2,
vsCMElementVariable = 3,
vsCMElementProperty = 4,
vsCMElementNamespace = 5,
vsCMElementParameter = 6,
vsCMElementAttribute = 7,
vsCMElementInterface = 8,
vsCMElementDelegate = 9,
vsCMElementStruct = 11
}
}

2
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -78,8 +78,10 @@ @@ -78,8 +78,10 @@
<Compile Include="Src\EnvDTE\CodeDelegateTests.cs" />
<Compile Include="Src\EnvDTE\CodeElementsInNamespaceTests.cs" />
<Compile Include="Src\EnvDTE\CodeFunctionTests.cs" />
<Compile Include="Src\EnvDTE\CodeInterfaceTests.cs" />
<Compile Include="Src\EnvDTE\CodeModelTests.cs" />
<Compile Include="Src\EnvDTE\CodeNamespaceTests.cs" />
<Compile Include="Src\EnvDTE\CodeParameterTests.cs" />
<Compile Include="Src\EnvDTE\CodeProperty2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeStructTests.cs" />
<Compile Include="Src\EnvDTE\CodeTypeRef2Tests.cs" />

11
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttribute2Tests.cs

@ -159,5 +159,16 @@ namespace PackageManagement.Tests.EnvDTE @@ -159,5 +159,16 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual("TestAttributeColumn", name);
}
[Test]
public void Kind_AttributeIsDataAnnotationsDisplayColumnAttribute_ReturnsAttribute()
{
CreateMSBuildAttribute("System.ComponentModel.DataAnnotations.DisplayColumnAttribute");
CreateAttribute();
vsCMElement kind = codeAttribute.Kind;
Assert.AreEqual(vsCMElement.vsCMElementAttribute, kind);
}
}
}

11
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

@ -212,5 +212,16 @@ namespace PackageManagement.Tests.EnvDTE @@ -212,5 +212,16 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(1, codeElements.Count);
Assert.AreEqual("MyField", codeVariable.Name);
}
[Test]
public void Kind_PublicClass_ReturnsClass()
{
CreateProjectContent();
CreatePublicClass("MyClass");
vsCMElement kind = codeClass.Kind;
Assert.AreEqual(vsCMElement.vsCMElementClass, kind);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeDelegateTests.cs

@ -58,5 +58,15 @@ namespace PackageManagement.Tests.EnvDTE @@ -58,5 +58,15 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(vsCMAccess.vsCMAccessPrivate, access);
}
[Test]
public void Kind_PublicDelegate_ReturnsClass()
{
CreatePublicDelegate("MyDelegate");
vsCMElement kind = codeDelegate.Kind;
Assert.AreEqual(vsCMElement.vsCMElementDelegate, kind);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs

@ -82,5 +82,15 @@ namespace PackageManagement.Tests.EnvDTE @@ -82,5 +82,15 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(4, offset);
}
[Test]
public void Kind_PublicFunction_ReturnsFunction()
{
CreatePublicFunction("MyFunction");
vsCMElement kind = codeFunction.Kind;
Assert.AreEqual(vsCMElement.vsCMElementFunction, kind);
}
}
}

40
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeInterfaceTests.cs

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class CodeInterfaceTests
{
ProjectContentHelper helper;
CodeInterface codeInterface;
[SetUp]
public void Init()
{
helper = new ProjectContentHelper();
}
void CreateInterface()
{
IClass c = helper.AddInterfaceToProjectContent("MyInterface");
codeInterface = new CodeInterface(helper.FakeProjectContent, c);
}
[Test]
public void Kind_Interface_ReturnsInterface()
{
CreateInterface();
vsCMElement kind = codeInterface.Kind;
Assert.AreEqual(vsCMElement.vsCMElementInterface, kind);
}
}
}

11
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeNamespaceTests.cs

@ -149,5 +149,16 @@ namespace PackageManagement.Tests.EnvDTE @@ -149,5 +149,16 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(CodeModelLanguageConstants.vsCMLanguageVB, language);
}
[Test]
public void Kind_EmptyStringNamespace_ReturnsNamespace()
{
CreateProjectContent();
CreateCodeNamespace(String.Empty);
vsCMElement kind = codeNamespace.Kind;
Assert.AreEqual(vsCMElement.vsCMElementNamespace, kind);
}
}
}

30
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameterTests.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement.EnvDTE;
using NUnit.Framework;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class CodeParameterTests
{
CodeParameter parameter;
void CreateParameter()
{
parameter = new CodeParameter(null);
}
[Test]
public void Kind_Parameter_ReturnsParameter()
{
CreateParameter();
vsCMElement kind = parameter.Kind;
Assert.AreEqual(vsCMElement.vsCMElementParameter, kind);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeProperty2Tests.cs

@ -266,5 +266,15 @@ namespace PackageManagement.Tests.EnvDTE @@ -266,5 +266,15 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(property, parent);
}
[Test]
public void Kind_PublicProperty_ReturnsProperty()
{
helper.CreatePublicProperty("MyProperty");
vsCMElement kind = property.Kind;
Assert.AreEqual(vsCMElement.vsCMElementProperty, kind);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeStructTests.cs

@ -58,5 +58,15 @@ namespace PackageManagement.Tests.EnvDTE @@ -58,5 +58,15 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(vsCMAccess.vsCMAccessPrivate, access);
}
[Test]
public void Kind_PublicStruct_ReturnsStruct()
{
CreatePublicStruct("MyStruct");
vsCMElement kind = codeStruct.Kind;
Assert.AreEqual(vsCMElement.vsCMElementStruct, kind);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeVariableTests.cs

@ -92,5 +92,15 @@ namespace PackageManagement.Tests.EnvDTE @@ -92,5 +92,15 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(10, offset);
}
[Test]
public void Kind_PublicVariable_ReturnsVariable()
{
CreatePublicVariable("MyVariable");
vsCMElement kind = codeVariable.Kind;
Assert.AreEqual(vsCMElement.vsCMElementVariable, kind);
}
}
}

Loading…
Cancel
Save