1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00
Commit Graph

58 Commits

Author SHA1 Message Date
Andrew Gallant
afd99c43d7 fix deploy 2016-09-08 16:35:48 -04:00
Andrew Gallant
96e87ab738 update distributable to include readme and license 2016-09-08 16:21:37 -04:00
Andrew Gallant
a744ec133d Rename xrep to ripgrep. 2016-09-08 16:15:44 -04:00
Andrew Gallant
0042dce949 Hack in Windows console coloring.
The code has suffered and needs refactoring/commenting. BUT... IT WORKS!
2016-09-07 21:54:28 -04:00
Andrew Gallant
ca058d7584 Add support for memory maps.
I though plain `read` had usurped them, but when searching a very small
number of files, mmaps can be around 20% faster on Linux. It'd be really
unfortunate to leave that on the table.

Mmap searching doesn't support contexts yet, but we probably don't really
care. And duplicating that logic doesn't sound fun. Without contexts, mmap
searching is delightfully simple.
2016-09-06 21:47:33 -04:00
Andrew Gallant
af3b56a623 Fix grep match iterator. 2016-09-06 21:45:41 -04:00
Andrew Gallant
5938bed339 Add support for printing column numbers. 2016-09-06 19:50:27 -04:00
Andrew Gallant
feff1849c8 Tweak colors. 2016-09-06 19:35:52 -04:00
Andrew Gallant
9948e0ca07 Only create the Grep searcher once. 2016-09-06 19:33:19 -04:00
Andrew Gallant
fd3e5069b6 Fix required literal handling and add debug prints.
In particular, if we had an inner literal and were doing a case insensitive
search, then the literals are dropped because we previously only allowed
a single inner literal to have an effect. Now we allow alternations of
inner literals, but still don't quite take full advantage.
2016-09-06 19:33:03 -04:00
Andrew Gallant
0891b4a3c0 update appveyor 2016-09-05 22:01:53 -04:00
Andrew Gallant
af48aaa647 another try 2016-09-05 21:57:57 -04:00
Andrew Gallant
ee7f300ae2 windows debug, take 1 2016-09-05 21:46:11 -04:00
Andrew Gallant
a4d8db16f7 Fix glob tests.
When matching directly with a regex, we need to make sure the path is
normalized first.
2016-09-05 21:36:19 -04:00
Andrew Gallant
3bb387abdd Fix glob problem on Windows.
We weren't actually escaping every use of the file path separator. D'oh.
2016-09-05 21:20:19 -04:00
Andrew Gallant
7f0273c347 Fix yellow color to match ack. 2016-09-05 21:19:56 -04:00
Andrew Gallant
5b42999a3d windows, take 3 2016-09-05 21:02:08 -04:00
Andrew Gallant
8887250860 windows, take 2 2016-09-05 20:58:50 -04:00
Andrew Gallant
5c820ba638 setting up windows, take 1 2016-09-05 20:57:58 -04:00
Andrew Gallant
b2e9ff1361 use correct api key 2016-09-05 20:39:10 -04:00
Andrew Gallant
8023f6fd03 Fix context writing.
Don't show the filename twice... (Copy/paste error).
2016-09-05 20:18:31 -04:00
Andrew Gallant
e9a89520cf incite riots 2016-09-05 20:10:18 -04:00
Andrew Gallant
1a3e7c0bb2 Trying CI. 2016-09-05 20:08:46 -04:00
Andrew Gallant
02ac331529 Whoops. Remove other bits of parking lot. 2016-09-05 19:55:31 -04:00
Andrew Gallant
14b8cd4faf don't need parking lot 2016-09-05 19:51:29 -04:00
Andrew Gallant
2bda77c414 Fix deps so that others can build it. 2016-09-05 18:22:12 -04:00
Andrew Gallant
7a149c20fe More progress. With coloring! 2016-09-05 17:36:41 -04:00
Andrew Gallant
d8d7560fd0 TODOs and some cleanup/refactoring. 2016-09-05 10:15:13 -04:00
Andrew Gallant
812cdb13c6 Lots of progress:
- Refactored interaction between CLI args and rest of xrep.
  - Filling in a lot more options, including file type filtering.
  - Fixing some bugs in globbing/ignoring.
  - More documentation.
2016-09-05 00:52:23 -04:00
Andrew Gallant
0bf278e72f making search work (finally) 2016-09-03 21:48:23 -04:00
Andrew Gallant
c2b5577cba progress on after contexts 2016-09-03 01:11:14 -04:00
Andrew Gallant
062aa5ef76 Switch to Chase-Lev work stealing queue.
It seems to be a touch faster.
2016-09-02 23:38:27 -04:00
Andrew Gallant
7f0b1ccbd3 Before contexts seem to work.
Code is in a little better shape.
2016-09-02 23:25:07 -04:00
Andrew Gallant
5450aed9a8 Make "before" context work.
No line numbers. And match inverting is broken.

This is awful.
2016-09-01 21:56:23 -04:00
Andrew Gallant
5aa3b9bc58 struggling with printing contexts, what a mess 2016-08-31 20:02:59 -04:00
Andrew Gallant
79f62012d7 fix glob tests 2016-08-31 20:02:48 -04:00
Andrew Gallant
03d9df4303 tests and refactoring search 2016-08-31 15:52:35 -04:00
Andrew Gallant
d011cea053 The search code is a mess, but...
... we now support inverted matches and line numbers!
2016-08-29 22:44:15 -04:00
Andrew Gallant
c809679cf2 Lots of improvements. Most notably, removal of memory maps for searching.
Memory maps appear to degrade quite a bit in the presence of multithreading.

Also, switch to lock free data structures for synchronization. Give each
worker an input and output buffer which require no synchronization.
2016-08-28 20:18:34 -04:00
Andrew Gallant
1c8379f55a Implementing core functionality.
Initially experimenting with crossbeam to manage synchronization.
2016-08-28 01:37:12 -04:00
Andrew Gallant
065c449980 File path filtering works and is pretty fast.
I'm pretty disappointed by the performance of regex sets. They are
apparently spending a lot of their time in construction of the DFA,
which probably means that the DFA is just too big.

It turns out that it's actually faster to build an *additional* normal
regex with the alternation of every glob and use it as a first-pass
filter over every file path. If there's a match, only then do we try the
more expensive RegexSet.
2016-08-27 01:01:06 -04:00
Andrew Gallant
b55ecf34c7 globbing by regex 2016-08-25 21:44:37 -04:00
Andrew Gallant
957f90c898 docs and small polish 2016-08-24 18:33:35 -04:00
Andrew Gallant
61f49ba716 Remove the buffered reader.
We really need functionality like this when memory maps aren't suitable,
either because they're too slow or because they just aren't available (like
for reading stdin). However, this particular approach was completely bunk.
Namely, the interface was all wrong. The caller needs to maintain some kind
of control over the search buffers for special output features (like
contexts or inverted matching), but this interface as written doesn't
support that kind of pattern at all.

So... back to the drawing board.
2016-08-24 18:06:42 -04:00
Andrew Gallant
e97d75c024 Refactor buffered test. 2016-08-08 19:17:25 -04:00
Andrew Gallant
076eeff3ea update 2016-08-05 00:10:58 -04:00
Andrew Gallant
a3f609222c progress 2016-06-22 21:19:02 -04:00
Andrew Gallant
0163b39faa refactor progress 2016-06-20 16:55:13 -04:00
Andrew Gallant
8d9d602945 update 2016-04-03 21:22:09 -04:00
Andrew Gallant
07bff7409b tweaks 2016-03-30 22:24:59 -04:00