summaryrefslogtreecommitdiffstats
path: root/ignore
AgeCommit message (Collapse)Author
2017-10-22deps: bump ignore to 0.3.1Andrew Gallant
2017-10-22ignore: partially revert symlink loop check optimizationAndrew Gallant
This optimization wasn't tested too carefully, and it seems to result in a massive amount of file handles open simultaneously. This is likely a result of the parallel iterator, where many directories are being traversed simultaneously. Fixes #648
2017-10-21cargo: bump to 0.7.0ignore-0.3.0grep-0.1.7globset-0.2.10.7.0Andrew Gallant
2017-10-21ignore: be fastidious with file handlesAndrew Gallant
This commit fixes the symlink loop checker in the parallel directory traverser to open fewer handles at the expense of keeping handles held open longer. This roughly matches the corresponding change in walkdir: https://github.com/BurntSushi/walkdir/commit/5bcc5b87ee08a58a7f2a7ef4b1d23392b55155bb Fixes #633
2017-10-21ignore: upgrade to walkdir 2Andrew Gallant
The uninteresting bits of this commit involve mechanical changes for updates to walkdir 2. The more interesting bits of this commit are the breaking changes, although none of them should require any significant change on users of this library. The breaking changes are as follows: * `DirEntry::path_is_symbolic_link` has been renamed to `DirEntry::path_is_symlink`. This matches the conventions in the standard library, and also the corresponding name change in walkdir. * Removed the `From<walkdir::Error> for ignore::Error` impl. This was intended to only be used internally, but was the only thing that made `walkdir` a public dependency of `ignore`. Therefore, we remove it since it seems unnecessary. * Renamed `WalkBuilder::sort_by` to `WalkBuilder::sort_by_file_name`, and changed the type of the comparator from Fn(&OsString, &OsString) -> cmp::Ordering + 'static to Fn(&OsStr, &OsStr) -> cmp::Ordering + Send + Sync + 'static The corresponding change in `walkdir` retains the `sort_by` name, but gives the comparator a pair of `&DirEntry` values instead of a pair of `&OsStr` values. Ideally, `ignore` would hand off its own pair of `&ignore::DirEntry` values, but this requires more design work. So for now, we retain previous functionality, but leave room to make a proper `sort_by` method. [breaking-change]
2017-10-21deps: upgrade to memchr 2Andrew Gallant
2017-10-12Add purescript to built-in typesJames Smith
Purescript is a functional language that compiles to javascript (https://github.com/purescript/purescript)
2017-10-08Type improvements (`config`, `license`, `sh`, `systemd`, &c.)dana
- Add `license` type for various copyright/licence files - Add `systemd` type for systemd config/unit files - Update existing `config`, `jinja`, `json`, `sh`, `sql`, `xml`, `yaml` types - Minor formatting improvements
2017-10-08Add support for Dockerfiles filteringFélix Cantournet
2017-09-23add support for terraform file typeTri Nguyen
2017-09-04Add support for Standard ML file typesPhilip Munksgaard
2017-09-02ignore: add grouped toggle for standard filtersAlex Burka
2017-08-30Add Elm file type.Jesse Claven
2017-08-26ignore: document git_global enabled by defaultAlex Burka
2017-08-23Types extension and Yocto renaming to BitBakeLilian A. Moraru
2017-08-16Add short key for julia typeGergő Pintér
Fixes #574
2017-07-17ignore-0.2.2ignore-0.2.2Andrew Gallant
2017-07-13[ignore] Fix matched_path_or_any_parents() for patterns ending in slashBehnam Esfahbod
In `matched_path_or_any_parents()` implementation, we missed the point that when we start walking up the tree, we have to set `is_dir` to `true`, so path `ROOT/a/b/c` matches pattern `/a/`, although the original path is not a dir.
2017-07-12ignore-0.2.1ignore-0.2.1Andrew Gallant
2017-07-12[ignore] Add extensive test for gitignore matching (#551)Behnam Esfahbod ✅
[ignore] tests and new matched_path_or_any_parents method The test data (gitignore rules and expected result) is based on the test repo at <https://github.com/behnam/gitignore-test>. The new `matched_path_or_any_parents` method fixes a bug in gitignore matching where rules of form `<dir>/*` result in ignoring only first-level files, but no deep files. This is not correct, as `<dir>/*` matches the first-level directories under `<dir>`, resulting all to be ignored. The new method fixes it by trying to match all parents in the path against the gitignore rules. The new method is necessary because it necessarily entails a performance hit for trying to match all parents.
2017-07-06Fix minor grammar issues in docs for `ignore::Walk`Jordan Danford
2017-07-03add --iglob flagPeter S Panov
Working with Chris Stadler, implemented https://github.com/BurntSushi/ripgrep/issues/163#issuecomment-300012592
2017-07-02Update version of `ignore` crate in README.mdJordan Danford
2017-06-27Add cabal files for Haskell packagesBryan Richter
2017-06-12add yocto file typesSid-Ali Teir
2017-06-12Add julia as file typeGent Bajraj
2017-06-12Add "msbuild" filetype for msbuild related filesBrian Gianforcaro
This commit adds a "msbuild" filetype grouping, with a few different file types being mapped to this grouping: - MSBuild project files: .csproj, .vcxproj, .fsproj, .proj - MSBuild shared property files: .props - MSBuild shared targets files: .targets
2017-06-12Add .inl as one of the c++ file typee definitions.Brian Gianforcaro
.inl files are often used by convention to include both inline functions, or function templates.
2017-06-06Add a cshtml ignore typeTaryn Hill
2017-05-24Add support for QMake filesManuel Vives
2017-05-11bump ripgrep, ignore, globset0.5.2Andrew Gallant
The `ignore` and `globset` crates both got breaking changes in the course of fixing #444, so increase 0.x to 0.(x+1).
2017-04-12Add better error messages for invalid globs.Andrew Gallant
This threads the original glob given by end users through all of the glob parsing errors. This was slightly trickier than it might appear because the gitignore implementation actually modifies the glob before compiling it. So in order to get better glob error messages everywhere, we need to track the original glob both in the glob parser and in the higher-level abstractions in the `ignore` crate. Fixes #444
2017-04-12Add nixBryan Richter
2017-04-09bump ignoreignore-0.1.9Andrew Gallant
2017-03-21Add vim type.Andrew Gallant
It's the same as the vimscript type, but shorter and more obvious. Fixes #415
2017-03-12Bump and update deps.wincolor-0.1.3termcolor-0.3.1ignore-0.1.8grep-0.1.6globset-0.1.4Andrew Gallant
2017-03-12Fixes #394 - Added in svg to the types fileJoshua Horwitz
2017-03-12Add license files to each crate.Andrew Gallant
Fixes #381
2017-03-12Add scss and ejs.Andrew Gallant
We add scss to the existing `css` file type and `ejs` to the existing `html` file type. Fixes #393
2017-03-12Fix leading slash bug when used with `!`.Andrew Gallant
When writing paths like `!/foo` in gitignore files (or when using the -g/--glob flag), the presence of `!` would prevent the gitignore builder from noticing the leading slash, which causes absolute path matching to fail. Fixes #405
2017-03-08Reduce unnecessary stat calls for max_filesizeMarc Tiehuis
2017-03-08Add file size exclusion to walkertiehuis
A maximum filesize can be specified as an argument to a `WalkBuilder`. If a file exceeds the specified size it will be ignored as part of the resulting file/directory set. The filesize limit never applies to directories.
2017-02-23Add .log as FileTypedeepy
2017-02-09Add .twig as a FiletypeAhmed El Gabri
2017-01-31add '*.sass' to sass typeSamuel Colvin
2017-01-30Look for global git/ignore in ~/.config/git, not ~/gitDaniel Hahler
The documentation says: > If `$XDG_CONFIG_HOME` is not set or is empty, then > `$HOME/.config/git/ignore` is used instead. This is the expected behavior, but the code looked at ~/git/ignore instead.
2017-01-24Add Ceylon file type filteringAlexander Altman
2017-01-18File Types: Add .eex under Elixirrobi-wan
.eex is the default file ending for templates using Elixir's template engine EEx.
2017-01-130.4.00.4.0Andrew Gallant
2017-01-09Don't search stdout redirected file.Andrew Gallant
When running ripgrep like this: rg foo > output we must be careful not to search `output` since ripgrep is actively writing to it. Searching it can cause massive blowups where the file grows without bound. While this is conceptually easy to fix (check the inode of the redirection and the inode of the file you're about to search), there are a few problems with it. First, inodes are a Unix thing, so we need a Windows specific solution to this as well. To resolve this concern, I created a new crate, `same-file`, which provides a cross platform abstraction. Second, stat'ing every file is costly. This is not avoidable on Windows, but on Unix, we can get the inode number directly from directory traversal. However, this information wasn't exposed, but now it is (through both the ignore and walkdir crates). Fixes #286