A multi-threaded file searching tool

About boringrep


Essentially it would do what BareGrep does, but utilizing multiple CPU cores for searching and also some extra features I want, like automatic code highlighting.

boringrep is written in C++ and uses

  • pcre2 for regular expressions,
  • raylib for the UI
  • mio for memory-mapping files
  • libfmt for string formatting
Read more
Filters

Recent Activity

I didn't have much time this week unfortunately, but I managed to implement the most important features, so filtering filenames by a pattern and searching inside files works. When you hover the mouse cursor over a line in the results window it will show the context around that line and I also made a special widget for entering filesystem paths.

What didn't make the cut was code highlighting, and the filename filtering process is still single-threaded. Also the UI is way worse than I'd like it to be and there are no options for stuff like case-insensitive search and inverted match.

Implementing the path input widget took away way too much time. There are also some performance issues, like the program somehow manages to use 100MiBs of memory (maybe it has to do something with the font used).

I'll continue to work on this after the Jam, because it's nearly in a state where I would want to use it myself :D

Walking the filesystem tree and parallelized regex search mostly works. I'm using the PCRE2 library for regexes.
Filtering files by name doesn't work yet at all and I think that will have to be also parallelized.
A rough draft of the UI is also done, just enough to test things. I'll probably have to make my own controls because the textbox in raygui seems to be very basic (i.e. can't select text, no key repeating).