GitignoreParserNet 0.2.0.15
dotnet add package GitignoreParserNet --version 0.2.0.15
NuGet\Install-Package GitignoreParserNet -Version 0.2.0.15
<PackageReference Include="GitignoreParserNet" Version="0.2.0.15" />
<PackageVersion Include="GitignoreParserNet" Version="0.2.0.15" />
<PackageReference Include="GitignoreParserNet" />
paket add GitignoreParserNet --version 0.2.0.15
#r "nuget: GitignoreParserNet, 0.2.0.15"
#:package GitignoreParserNet@0.2.0.15
#addin nuget:?package=GitignoreParserNet&version=0.2.0.15
#tool nuget:?package=GitignoreParserNet&version=0.2.0.15
This is a .NET port of gitignore-parser for node.js by Ger Hobbelt
A simple yet complete .gitignore parser for .NET.
Installation
Install-Package GitignoreParserNet -Version 0.2.0.14
Features
Supports all features listed in the GIT SCM gitignore manpage:
handles the
**wildcard anywhere- in both the usual usage, e.g.
foo/**/bar, and also in complexes such asyo/**la/bin - can be used multiple times in a single pattern, e.g.
foo/**/rec**on
- in both the usual usage, e.g.
handles the
*wildcardhandles the
?wildcardhandles
[a-z]style character rangesunderstands
!-prefixed negated patternsunderstands
\#,\[,\\, etc. filename escapes, thus handles patterns like\#*#correctly (hint: this is NOT a comment line!)deals with any sequence of positive and negative patterns, like this one from the
.gitignoremanpage:# exclude everything except directory foo/bar /* !/foo /foo/* !/foo/barhandles any empty lines and
#comment lines you feed itwe're filename agnostic: the "
.gitignorefile" does not have to be named.gitignorebut can be named anything: this parser accepts.gitignore-formatted content from anywhere: you load the file, we do the parsing, you feed ourAccepts()orDenies()APIs any filenames / paths you want filtered and we'll tell you if it's a go or a no go.extra: an additional API is available for those of you who wish to have the complete and utter
.gitignoreexperience: use ourInspects(path)API to know whether the given gitignore filter set did actively filter the given file or did simple allow it to pass through.Read as: if the
.gitignorehas a pattern which matches the given file/path, then we will returntrue, otherwise we returnfalse.Use this in directory trees where you have multiple
.gitignorefiles in nested directories and are implementing tooling withgit-like.gitignorebehaviour.
Usage
static void Main(string[] args)
{
const string gitignorePath = @"D:\path\to\.gitignore";
var (accepted, denied) = GitignoreParser.Parse(gitignorePath: gitignorePath, ignoreGitDirectory: true);
foreach (string file in accepted)
Console.WriteLine(file);
}
Notes
- As the
.gitignorespec differentiates between patterns such asfooandfoo/, where the latter only matches any directory namedfoo, you MUST pass the is-this-a-file-or-a-directory info to us when you invoke any of ourAccepts(),Denies()andInspects()APIs by making sure directory paths have a trailing/.
License
Apache 2, see LICENSE.md.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on GitignoreParserNet:
| Package | Downloads |
|---|---|
|
FVNever.Reuse
.NET library to interact with license information in REUSE-compliant sources. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on GitignoreParserNet:
| Repository | Stars |
|---|---|
|
belav/csharpier
CSharpier is an opinionated code formatter for c#.
|