#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

112 lines
3.8 KiB

// 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 System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement.EnvDTE;
namespace PackageManagement.Tests.Helpers
{
public static class CodeElementsExtensions
{
public static List<CodeElement> ToList(this global::EnvDTE.CodeElements codeElements)
{
var list = new List<CodeElement>();
foreach (CodeElement codeElement in codeElements) {
list.Add(codeElement);
}
return list;
}
public static CodeElement FindFirstOrDefault(this global::EnvDTE.CodeElements codeElements, Func<CodeElement, bool> predicate)
{
return ToList(codeElements).FirstOrDefault(predicate);
}
public static CodeElement FirstOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return ToList(codeElements).FirstOrDefault();
}
public static CodeFunction2 FirstCodeFunction2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeFunction2;
}
public static CodeClass2 FirstCodeClass2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeClass2;
}
public static CodeClass2 FindFirstCodeClass2OrDefault(this global::EnvDTE.CodeElements codeElements, Func<CodeClass2, bool> predicate)
{
return codeElements.OfType<CodeClass2>().FirstOrDefault(predicate);
}
public static CodeInterface FirstCodeInterfaceOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeInterface;
}
public static CodeAttributeArgument FirstCodeAttributeArgumentOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeAttributeArgument;
}
public static CodeNamespace FirstCodeNamespaceOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeNamespace;
}
public static CodeNamespace LastCodeNamespaceOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.LastOrDefault() as CodeNamespace;
}
public static CodeElement LastOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.ToList().LastOrDefault();
}
public static CodeAttribute2 FirstCodeAttribute2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeAttribute2;
}
public static CodeProperty2 FirstCodeProperty2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeProperty2;
}
public static CodeVariable FirstCodeVariableOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeVariable;
}
public static CodeParameter FirstCodeParameterOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeParameter;
}
public static CodeParameter2 FirstCodeParameter2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeParameter2;
}
public static CodeImport FirstCodeImportOrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.FirstOrDefault() as CodeImport;
}
public static CodeClass2 LastCodeClass2OrDefault(this global::EnvDTE.CodeElements codeElements)
{
return codeElements.LastOrDefault() as CodeClass2;
}
public static CodeNamespace FindFirstCodeNamespaceOrDefault(this global::EnvDTE.CodeElements codeElements, Func<CodeNamespace, bool> predicate)
{
return codeElements.OfType<CodeNamespace>().FirstOrDefault(predicate);
}
}
}