Snippets

Kirk Duncan grep-buffer.kak

Created by Kirk Duncan last modified
#----------------------------------------------------------------------------------------------------#
# Built from and runs on kakoune commit:
# commit 021da117cf90bf25b65e3344fa8e43ab4262b714
# Date:   Sat Aug 13 18:53:27 2022 +0100
#
# kakoune build environment
# export CXX="g++-12"
# 
#----------------------------------------------------------------------------------------------------#
# TODO: Implementation for document string extentions; racket, haskell, shell.
# FIXME: Don't grep any .directories or .files
# <https://regex101.com/r/Yzr3Rv/2> as at July 12, 2019
# 
# rgb:347B98+idfbg
#            ^---- italic
#            -^--- dim
#            --^-- foreground
#            ---^- bold
#            ----^ go work it out: <https://github.com/mawww/kakoune/blob/master/doc/pages/faces.asciidoc>
#----------------------------------------------------------------------------------------------------#
hook global WinCreate .* %{
  add-highlighter window/ regex (?S)\b(FIXME[:(](.+?(?=\s\*/)|.+)) 1:bright-black,blue+f
  add-highlighter window/ regex (?S)\b(NOTE[:(](.+?(?=\s\*/)|.+)) 1:bright-red,white+f
  add-highlighter window/ regex (?S)\b(REMOVE[:(](.+?(?=\s\*/)|.+)) 1:bright-black,magenta+f
  add-highlighter window/ regex (?S)\b(TEST[:(](.+?(?=\s\*/)|.+)) 1:bright-black,green+f
  add-highlighter window/ regex (?S)\b(TODO[:(](.+?(?=\s\*/)|.+)) 1:bright-black,yellow+f
}
# NOTE: requires double <ret> to activate grep-buffer-sort
declare-user-mode gbuff
#----------------------------------------------------------------------------------------------------#
map global gbuff 'B' ': grep -E "FIXME|NOTE|REMOVE|TEST|TODO" %val{bufname} <ret>: grep-buffer-sort' \
  -docstring "grep FIXME|NOTE|REMOVE|TEST|TODO in current buffer file"
#----------------------------------------------------------------------------------------------------#
map global gbuff '<c-b>' ': grep --exclude-dir=.git --exclude=*.md -E "FIXME|NOTE|REMOVE|TEST|TODO" <.> <ret>: grep-buffer-sort' \
  -docstring "grep FIXME|NOTE|REMOVE|TEST|TODO from current directory"
#----------------------------------------------------------------------------------------------------#
map global gbuff '<up>' ': grep-next-match<ret>'       -docstring "Next grep match"
map global gbuff '<down>' ': grep-previous-match<ret>' -docstring "Prev grep match"
#----------------------------------------------------------------------------------------------------#
# NOTE: locks into gbuff mode for <up> <down> jumpclient navigation
map global user 'T' ': enter-user-mode<space>-lock<space>gbuff<ret>' \
  -docstring "enter grep FIXME|NOTE|REMOVE|TEST|TODO user mode"
#----------------------------------------------------------------------------------------------------#
# replaced all occurances of <space> to ,
define-command -hidden grep-buffer-sort %{
  try %{ execute-keys -buffer *grep* 'gjd%s:\d+:\h*<ret>s[^\d:]\h*<ret>d%s:\d+:<ret>l&,' }
  try %{ execute-keys -buffer *grep* '%sFIXME<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sNOTE<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sREMOVE<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sTEST<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sTODO<ret>xd,gj<a-o>ge<a-R>,' }
}
#----------------------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------------------#
# Built from and runs on kakoune commit:
# commit 021da117cf90bf25b65e3344fa8e43ab4262b714
# Date:   Sat Aug 13 18:53:27 2022 +0100
#
# kakoune build environment
# export CXX="g++-12"
# 
#----------------------------------------------------------------------------------------------------#
# FIXME: this is the output colour for fixme
# NOTE: this is the output colour for note
# REMOVE: this is the output colour for remove
# RESEARCH: this is the output colour for research
# TEST: this is the output colour for test
# TODO: Implementation for document string extentions; haskell, shell.
# DOCS: this is the output colour for docs
# <https://regex101.com/r/Yzr3Rv/2> as at July 12, 2019
# colour scheme: <https://github.com/caksoylar/kakoune-mysticaltutor>
# alternate yellow rgb:C3B470
#
# Housecat, F & Simone, N 2020, Sinnerman - Felix Da Housecat's Heavenly House Mix, viewed 29 April 2021,
#                               <https://open.spotify.com/track/23KpKEx7BEiILEiUzWpaql?si=df20245521e947b6>
#
# rgb:347B98+idfbg
#            ^---- italic
#            -^--- dim
#            --^-- foreground
#            ---^- bold
#            ----^ go work it out: <https://github.com/mawww/kakoune/blob/master/doc/pages/faces.asciidoc>
#----------------------------------------------------------------------------------------------------#
hook global WinCreate .* %{
  add-highlighter window/ regex (?S)\b(DOCS[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:347B98+if
  add-highlighter window/ regex (?S)\b(FIXME[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:5C8EC7+if
  add-highlighter window/ regex (?S)\b(NOTE[:(](.+?(?=\s\*/)|.+)) 1:bright-red,rgb:D9D9D9+if
  add-highlighter window/ regex (?S)\b(REMOVE[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:8B5FC7+if
  add-highlighter window/ regex (?S)\b(RESEARCH[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:C3B470+if
  add-highlighter window/ regex (?S)\b(TEST[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:8BBE67+if
  add-highlighter window/ regex (?S)\b(TODO[:(](.+?(?=\s\*/)|.+)) 1:bright-black,rgb:BB8E67+if
}
# FIXME: requires double <ret> to activate grep-buffer-sort
declare-user-mode gbuff
#----------------------------------------------------------------------------------------------------#
map global gbuff 'b' ': grep -E "\b(DOCS[:(]|FIXME[:(]|NOTE[:(]|REMOVE[:(]|RESEARCH[:(]|TEST[:(]|TODO[:(])" %val{bufname} <ret>: grep-buffer-sort' \
  -docstring "grep DOCS|FIXME|NOTE|REMOVE|RESEARCH|TEST|TODO in current buffer file"
#----------------------------------------------------------------------------------------------------#
# NOTE: --exclude=*.sh
map global gbuff '<c-b>' ': grep --exclude-dir=.git --exclude-dir=.gradle --exclude-dir=gradle --exclude-dir=.idea --exclude-dir=build --exclude-dir=out --exclude-dir=docs --exclude-dir=.changes --exclude=*.md --exclude=*.asciidoc --exclude=*.txt --exclude=*.sh -E "\b(DOCS[:(]|FIXME[:(]|NOTE[:(]|REMOVE[:(]|RESEARCH[:(]|TEST[:(]|TODO[:(])" <.> <ret>: grep-buffer-sort' \
  -docstring "grep DOCS|FIXME|NOTE|REMOVE|RESEARCH|TEST|TODO from current directory"
#----------------------------------------------------------------------------------------------------#
map global gbuff '<up>'   ': grep-next-match<ret>'     -docstring "Next grep match"
map global gbuff '<down>' ': grep-previous-match<ret>' -docstring "Prev grep match"
#----------------------------------------------------------------------------------------------------#
# NOTE: activate lock mode via ': usermode-lock-add gbuff'
map global user 'T' ': enter-user-mode<space>gbuff<ret>' \
  -docstring "enter grep DOCS|FIXME|NOTE|REMOVE|RESEARCH|TEST|TODO user mode"
#----------------------------------------------------------------------------------------------------#
# replaced all occurances of <space> to ,
define-command -hidden grep-buffer-sort %{
  try %{ execute-keys -buffer *grep* 'gjd%s:\d+:\h*<ret>s[^\d:]\h*<ret>d%s:\d+:<ret>l&,' }
  try %{ execute-keys -buffer *grep* '%sDOCS<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sFIXME<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sNOTE<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sREMOVE<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sRESEARCH<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sTEST<ret>xd,gj<a-o>ge<a-R>,' }
  try %{ execute-keys -buffer *grep* '%sTODO<ret>xd,gj<a-o>ge<a-R>,' }
}
#----------------------------------------------------------------------------------------------------#
# AlMr 2021, Lock usermode from inside mode, discuss kakoune, viewed 01 July 2021, <https://discuss.kakoune.com/t/lock-usermode-from-inside-mode/1799>
define-command -override -params 1 usermode-lock-add %{ evaluate-commands -draft %sh{
  printf 'map -docstring %s -- global %s <ret> %s\n' \
    '"lock mode"' "$1" "': enter-user-mode -lock $1<ret>'"
} } -shell-script-candidates %{
printf '%s\n' $kak_user_modes
} -docstring %{
  Add <ret>=lock to any usermode
}

Comments (2)

  1. Kirk Duncan
    map global gbuff '<c-b>' ': grep --exclude-dir=.git --exclude-dir=.gradle --exclude-dir=gradle --exclude-dir=.idea --exclude-dir=out --exclude-dir=.changes --exclude=*.md --exclude=*.asciidoc --exclude=*.txt -E "\b(FIXME[:(]|NOTE[:(]|REMOVE[:(]|TEST[:(]|TODO[:(])" <.> <ret>: grep-buffer-sort' -docstring "grep FIXME|NOTE|REMOVE|TEST|TODO from current directory"
    

    --exclude-dir=<dir-name>

    --exclude=*.ext

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.