Skip to content

Releases: vrothberg/vgrep

v2.4.0

02 Aug 09:41
Compare
Choose a tag to compare
  • selectors: add a "all" selector to process all results
  • splitMatch: fail gracefully on failure to parse output
  • (new) grep: add filename completion
  • (new) grep: add a command to trigger a new search from interactive shell
  • refine: add a command to refine match list based on a regular expression
  • keep: add a new command to keep selected indices
  • show: fix a typo ("douldn't" -> "couldn't")
  • colwriter: prevent panic on --no-header and no result found
  • interactive: close command-line editor on early os.Exit()
  • interactive: switch from bufio Scanner to (readline-like) liner
  • delete: fix index update for multi-line deletions
  • git grep: Run 'git rev-parse' only if not selecting ripgrep
  • grep output: expect no more than 2 substrings when splitting on NUL-byte
  • grep output: force printing filename for grep/ripgrep
  • grep commands: Do not pass '.' as an argument to grep/ripgrep
  • README: mention Homebrew package on Mac OS

Thanks to all contributors, with a special thanks to @Qeole for adding many new features and improvements.

v2.3.3

06 Jul 09:57
Compare
Choose a tag to compare

When using emacs, also make sure to account for emacs in daemon mode and
check for emacsclient as an editor.

v2.3.2

06 Jul 08:27
Compare
Choose a tag to compare
  • emacs support
  • Add link to Fedora package
  • add link to gentoo package
  • remove requirement to load cache from the same dir

Thanks to all contributors!

v2.3.1

06 Jun 17:55
Compare
Choose a tag to compare

A number of fixes and maintenance changes.

Thanks to all contributors and reporters!

Changelog

  • README: clarify search/show
  • README: add install instructions
  • replace string literals with constants
  • remove redundant flags
  • gnu uses different format than bsd and git grep
  • linter error fix for regex
  • fix #79, define a new greptype bsd to select : seperator
  • use golangci-lint v1.26.0
  • CI: use golang:1.14
  • update dependencies
  • build(deps): bump github.com/sirupsen/logrus from 1.5.0 to 1.6.0
  • Update chmod command
  • Cross-platform make install

v2.3.0

25 Apr 13:05
Compare
Choose a tag to compare

A couple of clean ups and minor bug fixes along with Windows and ripgrep support. Also note that the -i short flag has been dropped to fix a conflict with (git) grep flags.

Thanks to all contributors!

Changelog

  • pin golangci-lint version
  • Use a standard variable for setting the installation path
  • Ripgrep support
  • Cache file mode 0644
  • drop interactive -i short flag
  • Enable basic functionality on windows
  • build(deps): bump github.com/sirupsen/logrus from 1.4.2 to 1.5.0
  • resolve symlinks in cache

v2.2.0

18 Dec 15:44
Compare
Choose a tag to compare

User-visible changes

  • Changed yellow to magenta to improve readability on light color schemes
    (e.g., tango).
  • Auto-detect VSCode terminal and print line column in a clickable format
    for easy browing.
  • Vgrep has a logo.

Miscellaneous and janitorial changes

  • update x/sys to latest commit
  • check all errors
  • Dockerfile: pin to golang:1.13
  • update dependencies
  • enable Cirrus CI
  • Makefile: go and tools clean ups
  • Travis: bump go to 1.13.x
  • support vscode
  • change email address
  • add a simple logo
  • Makefile: use go proxy
  • update dependencies
  • Travis: use go 1.12.x instead of tip
  • build(deps): bump github.com/sirupsen/logrus from 1.4.0 to 1.4.2
  • regex: fix escpaces
  • add make .install.tools to install dependencies for CI
  • make check: add golangci-lint
  • regex: use raw strings
  • switch to go mod for dependency management

v2.1.0

17 Feb 12:01
Compare
Choose a tag to compare

Changes since v2.0.2:

  • colwriter: panic on cmd execution
  • Travis: check vendor
  • add hack/tree_status.sh to check the tree status
  • README: spell checks, minor rewording
  • fix regression of vgrep -s $SELECTORS
  • update integration-test
  • fix interactive regression
  • fix regression for empty input
  • interactive: print help on empty input
  • append additional args to show command
  • make output/logs consistent
  • embed cli args into vgrep type
  • move state into a vgrep type
  • remove Log variable in favor logrus API
  • Fix some spelling mistakes in comments
  • Add missing return for 'show' command
  • Avoid race conditions when reading/writing cache file
  • Makefile: refactor container build targets
  • move ansi & colwriter to ./internal
  • update vendored libraries
  • Makefile: add vendor target
  • bump Travis to go 1.11.x
  • don't error out if cache file doesn't exist
  • fix travis
  • add integration tests
  • README: remove notes about 2.0.0 release
  • logging: use string instead of *os.File
  • Update vendor/
  • README: add Travis CI build status
  • add Travis CI

v2.0.2

27 Jan 11:37
Compare
Choose a tag to compare

Changes since v2.0.1:

  • ec0be44 Makefile: build position independent code
  • 946a8ff cachePath: create cache directory if necessary

v2.0.1

05 Dec 08:16
Compare
Choose a tag to compare

d8c289a fixes a bug where parsing vgrep commands broke due to using a raw string for the regex.

golang

01 Dec 16:32
Compare
Choose a tag to compare
v2.0.0

The old vgrep implementation in Python can be found in the "python" branch for
historical reasons. The main changes include:

 - The `--no-git-submodules` flag has been removed as git-grep supports
   recursing into submodules (see ``--recurse-submodules``) since git v2.12.
 - The code highlighting of context lines (`--show c`) has been dropped as
   pygments doesn't perform well with some widely used color schemes, such as
   solarized.  Code highlighting may be re-added in a future release.
 - The grammar to execute vgrep commands has changed from ``[selectors]
   command`` to ``command[context] [selectors]``.  This change was necessary to
   discriminate context lines from selectors, what did not work properly before.
   Extending the selectors also doesn't require to delete the entire line anymore.
 - Regex selectors were broken and have been removed for now.  As vgrep pipes
   its output to `less`, there are various alternatives to further search in and
   navigate through the output.
 - The versioning scheme changed from the Ubuntu-like versioning of
   ``month.year-patch`` to semantic versioning of ``major.minor.patch``.
   Please refer to http://semver.org/ to read about the benefits of this
   versioning scheme.

There are two main reasons for having ported vgrep from Python to golang.
First, although the previous code base was Python on steroids, the language has
certain performance penalties that became a bottleneck when operating on large
amounts of data; the implementation in golang is several factors faster and
easier to maintain. Second, although there are valid arguments to use even more
performant programming languages than golang, such as C, C++ or Rust, but C and
C++ are hard to maintain dinosaurs and I simply prefer golang over Rust.

Please open an issue in case you experience any troubles after upgrading to the
golang version.

Signed-off-by: Valentin Rothberg <valentinrothberg@gmail.com>