-
Notifications
You must be signed in to change notification settings - Fork 2k
Expand file tree
/
Copy pathLanguage.cs
More file actions
29 lines (24 loc) · 997 Bytes
/
Language.cs
File metadata and controls
29 lines (24 loc) · 997 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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#";
}
}