summaryrefslogtreecommitdiff
path: root/rc/connect/modules/dmenu
diff options
context:
space:
mode:
Diffstat (limited to 'rc/connect/modules/dmenu')
-rwxr-xr-xrc/connect/modules/dmenu/commands/:dmenu-grep18
-rw-r--r--rc/connect/modules/dmenu/dmenu.kak6
2 files changed, 24 insertions, 0 deletions
diff --git a/rc/connect/modules/dmenu/commands/:dmenu-grep b/rc/connect/modules/dmenu/commands/:dmenu-grep
new file mode 100755
index 0000000..cb02ed4
--- /dev/null
+++ b/rc/connect/modules/dmenu/commands/:dmenu-grep
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# dmenu
+# https://tools.suckless.org/dmenu/
+
+# Dependencies:
+# – ripgrep (https://github.com/BurntSushi/ripgrep)
+
+rg --line-number --with-filename '.+' "$@" |
+dmenu -l 20 -i -p 'Open files (search by content)' |
+
+while read line; do
+ # Output format: <file>:<line>:<text>
+ file=${line%%:*}
+ line_number=${line#*:}; line_number=${line_number%%:*}
+
+ :edit "$file" "+$line_number"
+done
diff --git a/rc/connect/modules/dmenu/dmenu.kak b/rc/connect/modules/dmenu/dmenu.kak
index 17fdd8c..c5dd5e0 100644
--- a/rc/connect/modules/dmenu/dmenu.kak
+++ b/rc/connect/modules/dmenu/dmenu.kak
@@ -3,6 +3,7 @@
# Dependencies:
# – fd (https://github.com/sharkdp/fd)
+# – ripgrep (https://github.com/BurntSushi/ripgrep)
provide-module connect-dmenu %{
# Modules
@@ -22,6 +23,11 @@ provide-module connect-dmenu %{
$ :dmenu-buffers %arg{@}
}
+ # Grep
+ define-command dmenu-grep -params .. -file-completion -docstring 'Open files (search by content) with dmenu' %{
+ $ :dmenu-grep %arg{@}
+ }
+
# Aliases
alias global dmenu dmenu-files
}