Skip to content

Standalone GUI and Delphi IDE plugin to parametrize ripgrep for superfast search.

License

Notifications You must be signed in to change notification settings

mattia72/DRipGrepper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

💧 DRipGrepper

Yet another ripgrep GUI, written in Delphi Pascal. The goal is to create a useful Delphi IDE extension for fast searching and a standalone tool for parametrizing ripgrep. The release includes the standalone exe and the extension dll.

Screenshot

Features and Todos

Marked with checkmark if ready, else planned. Most actual working items, you will find in the last release notes

  • Searches text, parses output of rg --vimgrep
  • Sorting result groups by row/col/text
  • Filtering results by file path/matching lines
  • Copy rg command line into clipboard
  • File handling (e.g., open in explorer or in another tool)
  • Replace text in files with --replace=TEXT
  • Storing search history between sessions (experimental)

🔍 Search Dialog

Screenshot

  • Helps parametrizing ripgrep (rg.exe)
    • Quick buttons for: --ignore-case, --case-sensitive, --word-regexp, --fixed-strings
    • --glob filter settings can be set in a separate edit box
    • --hidden, --no-ignore can be set
    • --pretty can be set (not supported by rg.exe in VSCode)
    • --context NUM (or -A=NUM -B=NUM) parser
    • --invert-match parser
    • --stats parser (can be set in Additional Options)
    • Setting Expert mode in config form or in DripGrepper.ini makes rg options visible
      • Option helper form generated from rg help: Screenshot
    • Generated command line can be examined in edit box

🚀 Open with...

Screenshot

  • Shortcut Shift+Alt+O

Configure

Screenshot

Examples can be found in the wiki

Configuration

Configuration is stored in ini file (DripGrepper.ini for standalone and DripExtension.ini for the extension) Many settings can be set in the config form, but some are only available in the ini file.

Screenshot Screenshot Screenshot

Delphi Extension

Screenshot

  • Menu item in Tools
  • Shortcut Shift+Alt+R (:warning: conflict with GExpert/MMX Reverse Statement)
  • Click on matching file opens file in the editor at the position
  • Popup menu for
    • Delete history entries
    • Copy path, etc.
    • Add file to uses list in interface/implementation section

Installation

Scoop

If you want to be up to date with the latest versions. Install Scoop, and then you can install and update dripgrepper from the official bucket 🆒

scoop bucket add dripgrepper-bucket https://github.com/mattia72/scoop
scoop install dripgrepper

Manual

Delphi Integration

As Expert DLL
  • Run DripGrepper.exe
  • Open Config...
  • Select Extension tab
  • Push Install...
    • (If not found in current folder, select DripExtensions.dll)
  • Restart Delphi

Update

Before you begin updating, ensure that both DripGrepper.exe and Delphi are closed, especially if you have the extension installed.

Scoop

scoop update dripgrepper

Manual

  • Delete all files in the folder of DripGrepper, except the settings ini file.
  • Unzip the downloaded release.

Compile

  • Fork the project
  • Open the AllRripGrepperProjectXX.groupproj in Delphi

Dependencies

  • Open Tools | GetIt-Package-Manager
    • Install VirtualTree for VCL
  • Clone spring4d into a folder next to DripGrepper

Contribution

To submit a pull request, follow these steps:

  • Fork the project
  • Compile
  • Create a new branch (git checkout -b 'my-new-feature')
  • Make your changes
  • Make the commit (git commit -am 'Functionality or adjustment message')
  • Push the branch (git push origin Message about functionality or adjustment)
  • Open a pull request

Thanks