Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 26, 2022 06:05 pm GMT

Release 2.2.0 of an ack Bash Completion

A long time ago I fooled around with Bash completions and I created several. I created a basic one for the marvellous grep alternative ack, which I open sourced in a GitHub repository.

At some point I started using ag (the silver searcher), and was no longer using ack as much as I used to.

I had actually forgotten all about it when, much to my surprise, I received a notification about an issue in the repository, the first one ever actually.

The issue was filed by @rpgoldman, who had an improved version of the completion, based on my initial work. I kindly requested @rpgoldman created a PR to sort of inspect the proposed changes in a more streamlined manner.

The proposed changes, where most fulfilling and extends the Bash completion, quite a lot from my very basic implementation.

My first implementation and parsed my .ackrc and created completions for my custom types.

The new release reimplements this and extracts the custom types from ack together with all the additional goodness ack offers.

So if you do ack -<tab>

You get:

--actionscript--ada--after-context--asm--asp--aspx--bar--batch--bazel--before-context--break--cathy--cc--cfmx--clojure--cmake--coffeescript--color--color-colno--color-filename--color-lineno--color-match--column--conf--context--count--cpp--csharp--css--dart--delphi--dump--elisp--elixir--elm--env--erlang--files-with-matches--files-without-matches--filter--flush--follow--fortran--go--groovy--group--gsp--haskell--heading--help--help-colors--help-rgb-colors--help-types--hh--hpp--html--ignore-case--ignore-dir--ignore-directory--ignore-file-r--invert-match--jade--java--js--json--jsp--known-types--kotlin--less--lisp--literal--lua--make--man--markdown--match--matlab--mojo--no-filename--no-ignore-case--no-recurse--nobreak--nocolor--nocolumn--noenv--nofilter--nofollow--nogroup--noheading--noignore-dir--noignore-directory--nopager--nosmart-case--nounderline--objc--objcpp--ocaml--output--pager--passthru--pconf--perl--perltest--php--plone--pod--print0--proximate--purescript--python--rake--range-end--range-start--recurse--rr--rst--ruby--rust--sass--scala--scheme--shell--show-types--smalltalk--smart-case--smarty--sort-files--sql--stylus--svg--swift--tcl--tex--thpppt--toml--ts--ttml--type--underline--vb--verilog--version--vhdl--vim--with-filename--word-regexp--xml--yaml-1-A-B-c-C-f-g-h-H-i-I-k-l-L-n-o-p-Q-R-s-S-t-T-v-w-x

This is based on my installation, so your set might look different, since I have custom extensions for:

  • *.conf
  • *.mojo
  • *.pconf

Please visit beyondgrep.com for more information on ack and all of the command line options, which you can have completions for.

This little venture taught me two things:

  1. Open source your things, not matter how big or small, finished or semi-finished - I can be useful to others
  2. Open source is for the patient - so even after years, somebody might contribute back; Go to 1.

Thanks to @rpgoldman for his contribution.


Original Link: https://dev.to/jonasbn/release-220-of-an-ack-bash-completion-fei

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To