Files
codeql/csharp/extractor/Semmle.Util/Language.cs
2025-12-11 15:18:27 +01:00

30 lines
997 B
C#

namespace Semmle.Util
{
public sealed class Language
{
public static Language Cpp { get; } = new Language("CPP", ".vcxproj");
public static Language CSharp { get; } = new Language("CSHARP", ".csproj", ".slnx");
public bool ProjectFileHasThisLanguage(string path) =>
System.IO.Path.GetExtension(path) == ProjectExtension;
public string ProjectExtension { get; }
public string? SolutionExtension { get; }
public string UpperCaseName { get; }
private Language(string name, string projectExtension)
{
ProjectExtension = projectExtension;
UpperCaseName = name;
}
private Language(string name, string projectExtension, string solutionExtension) : this(name, projectExtension)
{
SolutionExtension = solutionExtension;
}
public override string ToString() =>
ProjectExtension == Cpp.ProjectExtension ? "C/C++" : "C#";
}
}