|
|
|
@ -3,22 +3,19 @@ use str
@@ -3,22 +3,19 @@ use str
|
|
|
|
|
use path |
|
|
|
|
use util |
|
|
|
|
|
|
|
|
|
use github.com/xiaq/edit.elv/compl/git |
|
|
|
|
git:apply |
|
|
|
|
|
|
|
|
|
fn overlap-at [a b]{ |
|
|
|
|
fn overlap-at {|a b| |
|
|
|
|
for i [(range 1 (- (count $b) 1))] { |
|
|
|
|
if (has-value $a $b[$i]) { put $i; return } |
|
|
|
|
} |
|
|
|
|
put $false |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn at-command [cmd]{ |
|
|
|
|
fn at-command {|cmd| |
|
|
|
|
== (count $cmd) 2 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn prefix-completer [p a]{ |
|
|
|
|
edit:completion:arg-completer[$p] = [@cmd]{ |
|
|
|
|
fn prefix-completer {|p a| |
|
|
|
|
set edit:completion:arg-completer[$p] = {|@cmd| |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
$a $@cmd |
|
|
|
|
} elif (has-key $edit:completion:arg-completer $cmd[1]) { |
|
|
|
@ -29,33 +26,15 @@ fn prefix-completer [p a]{
@@ -29,33 +26,15 @@ fn prefix-completer [p a]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fn complete-directory [a]{ |
|
|
|
|
dir = (path:dir $a)/ |
|
|
|
|
if (str:has-prefix $a $dir) { |
|
|
|
|
a = (str:replace &max=1 $dir '' $a) |
|
|
|
|
} else { |
|
|
|
|
dir = '' |
|
|
|
|
} |
|
|
|
|
for x [$dir*[match-hidden][nomatch-ok]$a*[match-hidden][nomatch-ok]] { |
|
|
|
|
if (path:is-dir $x) { edit:complex-candidate &code-suffix=/ $x } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[cd] = [@cmd]{ |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
complete-directory $cmd[1] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[kak] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[kak] = {|@cmd| |
|
|
|
|
if (eq $cmd[-2] -c) { |
|
|
|
|
kak -l | each [x]{ if (not-eq $x[-1] ')') { put $x } } |
|
|
|
|
kak -l | each {|x| if (not-eq $x[-1] ')') { put $x } } |
|
|
|
|
} else { |
|
|
|
|
edit:complete-filename $cmd[-1] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[waifu2x-converter-cpp] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[waifu2x-converter-cpp] = {|@cmd| |
|
|
|
|
if (has-value [-i --input -o --output] $cmd[-2]) { |
|
|
|
|
edit:complete-filename $cmd[-1] |
|
|
|
|
} elif (has-value [-m --mode] $cmd[-2]) { |
|
|
|
@ -68,13 +47,13 @@ edit:completion:arg-completer[waifu2x-converter-cpp] = [@cmd]{
@@ -68,13 +47,13 @@ edit:completion:arg-completer[waifu2x-converter-cpp] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
kitty-cmds = $nil |
|
|
|
|
kitty-kittens = $nil |
|
|
|
|
var kitty-cmds = $nil |
|
|
|
|
var kitty-kittens = $nil |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[kitty] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[kitty] = {|@cmd| |
|
|
|
|
if (not $kitty-cmds) { |
|
|
|
|
@kitty-cmds = (kitty @ --help | peach [x]{ if (re:match '^ \w' $x) { put $x[2..] } }) |
|
|
|
|
@kitty-kittens = (pwd=/usr/lib/kitty/kittens fd main.py | peach [x]{ path:dir $x }) |
|
|
|
|
set @kitty-cmds = (kitty @ --help | peach {|x| if (re:match '^ \w' $x) { put $x[2..] } }) |
|
|
|
|
set @kitty-kittens = (pwd=/usr/lib/kitty/kittens fd main.py | peach {|x| path:dir $x }) |
|
|
|
|
} |
|
|
|
|
if (has-value [kitten '+kitten'] $cmd[-2]) { |
|
|
|
|
all $kitty-kittens |
|
|
|
@ -85,7 +64,7 @@ edit:completion:arg-completer[kitty] = [@cmd]{
@@ -85,7 +64,7 @@ edit:completion:arg-completer[kitty] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[sv] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[sv] = {|@cmd| |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
put status up down once pause cont hup alarm interrupt quit kill term 1 2 ^ |
|
|
|
|
exit start try-restart check {force-,}{stop,reload,restart,shutdown} |
|
|
|
@ -94,38 +73,38 @@ edit:completion:arg-completer[sv] = [@cmd]{
@@ -94,38 +73,38 @@ edit:completion:arg-completer[sv] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[man] = [@cmd]{ |
|
|
|
|
pwd=/bedrock/cross/man put man*/* | each [a]{ |
|
|
|
|
set edit:completion:arg-completer[man] = {|@cmd| |
|
|
|
|
pwd=/bedrock/cross/man put man*/* | each {|a| |
|
|
|
|
re:replace &literal=$true '(\.\dp?)?(\.gz)?$' '' (path:base $a) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[kill] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[kill] = {|@cmd| |
|
|
|
|
ps -u (whoami) --no-headers -o pid,command |^ |
|
|
|
|
eawk [_ p @c]{ edit:complex-candidate &display=(print ' '$@c) $p } |
|
|
|
|
eawk {|_ p @c| edit:complex-candidate &display=(print ' '$@c) $p } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[nimble] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[nimble] = {|@cmd| |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
put {un,}install develop check init publish build c cc js test doc{,2} ^ |
|
|
|
|
refresh search list tasks path dump |
|
|
|
|
if ?(isnimbleproject) { |
|
|
|
|
nimble tasks 2>&- | eawk [_ a @_]{ put $a } |
|
|
|
|
nimble tasks 2>&- | eawk {|_ a @_| put $a } |
|
|
|
|
} |
|
|
|
|
} elif (eq $cmd[-2] install) { |
|
|
|
|
for x (from-json <~/.nimble/packages_official.json) { put $x[name] } |
|
|
|
|
} elif (eq $cmd[-2] uninstall) { |
|
|
|
|
idx = (util:index-of $cmd[-1] '@') |
|
|
|
|
var idx = (util:index-of $cmd[-1] '@') |
|
|
|
|
if (== $idx -1) { |
|
|
|
|
nimble list -i | eawk [_ n @_]{ put $n } |
|
|
|
|
nimble list -i | eawk {|_ n @_| put $n } |
|
|
|
|
} else { |
|
|
|
|
pkgs = [&] |
|
|
|
|
nimble list -i | eawk [_ n @v]{ |
|
|
|
|
@ver = $@v[..-1] |
|
|
|
|
ver[0] = $ver[0][1..] |
|
|
|
|
pkgs[$n] = $ver |
|
|
|
|
var pkgs = [&] |
|
|
|
|
nimble list -i | eawk {|_ n @v| |
|
|
|
|
var @ver = $@v[..-1] |
|
|
|
|
set ver[0] = $ver[0][1..] |
|
|
|
|
set pkgs[$n] = $ver |
|
|
|
|
} |
|
|
|
|
pkg = $cmd[-1][..$idx] |
|
|
|
|
var pkg = $cmd[-1][..$idx] |
|
|
|
|
if (has-key $pkgs $pkg) { |
|
|
|
|
for v $pkgs[$pkg] { put $pkg@$v } |
|
|
|
|
} |
|
|
|
@ -133,31 +112,31 @@ edit:completion:arg-completer[nimble] = [@cmd]{
@@ -133,31 +112,31 @@ edit:completion:arg-completer[nimble] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pijul-cmds = [add apply branches checkout clone credit delete-branch diff dist^ |
|
|
|
|
var pijul-cmds = [add apply branches checkout clone credit delete-branch diff dist^ |
|
|
|
|
generate-completions help init key log ls mv patch pull push^ |
|
|
|
|
record remove revert rollback show-dependencies sign status tag unrecord] |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[pijul] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[pijul] = {|@cmd| |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
all $pijul-cmds |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
neofetch-img = [ascii caca iterm2 jp2a kitty pixterm sixel termpix tycat w3m off] |
|
|
|
|
neofetch-opts = $nil |
|
|
|
|
var neofetch-img = [ascii caca iterm2 jp2a kitty pixterm sixel termpix tycat w3m off] |
|
|
|
|
var neofetch-opts = $nil |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[neofetch] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[neofetch] = {|@cmd| |
|
|
|
|
if (not $neofetch-opts) { |
|
|
|
|
neofetch-opts = [(_ = ?(neofetch --help | each [x]{ |
|
|
|
|
set neofetch-opts = [(set _ = ?(neofetch --help | each {|x| |
|
|
|
|
if (str:has-prefix $x ' --') { |
|
|
|
|
put $x | eawk [_ a @_]{ put $a } |
|
|
|
|
put $x | eawk {|_ a @_| put $a } |
|
|
|
|
} |
|
|
|
|
})) --logo -L -v -vv] |
|
|
|
|
} |
|
|
|
|
all $neofetch-opts |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[bspc] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[bspc] = {|@cmd| |
|
|
|
|
if (eq (count $cmd) 2) { |
|
|
|
|
put node desktop monitor query wm rule config subscribe quit |
|
|
|
|
} elif (eq $cmd[1] subscribe) { |
|
|
|
@ -171,15 +150,15 @@ edit:completion:arg-completer[bspc] = [@cmd]{
@@ -171,15 +150,15 @@ edit:completion:arg-completer[bspc] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[ntr] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[ntr] = {|@cmd| |
|
|
|
|
if (not (str:has-prefix $cmd[-1] '-')) { |
|
|
|
|
pwd=$E:XDG_CONFIG_HOME/ntr/contexts put ** |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[mpv] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[mpv] = {|@cmd| |
|
|
|
|
if (and (> (count $cmd[-1]) 0) (eq $cmd[-1][0] '-')) { |
|
|
|
|
mpv --list-options | drop 2 | take 872 | eawk [_ a @b]{ |
|
|
|
|
mpv --list-options | drop 2 | take 872 | eawk {|_ a @b| |
|
|
|
|
if (eq (count $b) 0) { |
|
|
|
|
put $a |
|
|
|
|
} else { |
|
|
|
@ -191,26 +170,26 @@ edit:completion:arg-completer[mpv] = [@cmd]{
@@ -191,26 +170,26 @@ edit:completion:arg-completer[mpv] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[update] = [@cmd]{ |
|
|
|
|
update | each [x]{ if (str:has-prefix $x " ") { put $x[4..] } } |
|
|
|
|
set edit:completion:arg-completer[update] = {|@cmd| |
|
|
|
|
update | each {|x| if (str:has-prefix $x " ") { put $x[4..] } } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[xr] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[xr] = {|@cmd| |
|
|
|
|
xpkg -m |
|
|
|
|
xpkg -O | peach [x]{ edit:complex-candidate $x } |
|
|
|
|
xpkg -O | peach {|x| edit:complex-candidate $x } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[xi] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[xi] = {|@cmd| |
|
|
|
|
pwd=$E:XBPS_DISTDIR/srcpkgs put * |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
xbps-src-cmds = $nil |
|
|
|
|
xbps-src-arch = $nil |
|
|
|
|
var xbps-src-cmds = $nil |
|
|
|
|
var xbps-src-arch = $nil |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[xbps-src] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[xbps-src] = {|@cmd| |
|
|
|
|
if (not $xbps-src-cmds) { |
|
|
|
|
@xbps-src-cmds = (xbps-src -h | take 129 | drop 4 | each [x]{ put (re:find &max=1 '^\w+(\-\w+)*' $x)[text] }) |
|
|
|
|
@xbps-src-arch = (xbps-src -h | take 162 | drop 136)[1..] |
|
|
|
|
set @xbps-src-cmds = (xbps-src -h | take 129 | drop 4 | each {|x| put (re:find &max=1 '^\w+(\-\w+)*' $x)[text] }) |
|
|
|
|
set @xbps-src-arch = (xbps-src -h | take 162 | drop 136)[1..] |
|
|
|
|
} |
|
|
|
|
if (eq $cmd[-2] '-a') { |
|
|
|
|
all $xbps-src-arch |
|
|
|
@ -223,9 +202,9 @@ edit:completion:arg-completer[xbps-src] = [@cmd]{
@@ -223,9 +202,9 @@ edit:completion:arg-completer[xbps-src] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[strat] = [@cmd]{ |
|
|
|
|
@strata = (brl list) |
|
|
|
|
has-strat = (overlap-at $strata $cmd) |
|
|
|
|
set edit:completion:arg-completer[strat] = {|@cmd| |
|
|
|
|
var @strata = (brl list) |
|
|
|
|
var has-strat = (overlap-at $strata $cmd) |
|
|
|
|
if (not $has-strat) { |
|
|
|
|
all $strata |
|
|
|
|
} else { |
|
|
|
@ -233,16 +212,16 @@ edit:completion:arg-completer[strat] = [@cmd]{
@@ -233,16 +212,16 @@ edit:completion:arg-completer[strat] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
brl-cmds = $nil |
|
|
|
|
var brl-cmds = $nil |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[brl] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[brl] = {|@cmd| |
|
|
|
|
if (not $brl-cmds) { |
|
|
|
|
@brl-cmds = (brl -h | take 36 | drop 5 | each [x]{ put (re:find &max=1 '^ \w+' $x)[text][2..] }) |
|
|
|
|
set @brl-cmds = (brl -h | take 36 | drop 5 | each {|x| put (re:find &max=1 '^ \w+' $x)[text][2..] }) |
|
|
|
|
} |
|
|
|
|
if (at-command $cmd) { |
|
|
|
|
all $brl-cmds |
|
|
|
|
} else { |
|
|
|
|
c = $cmd[1] |
|
|
|
|
var c = $cmd[1] |
|
|
|
|
if (has-value [status enable disable hide show] $c) { |
|
|
|
|
brl list |
|
|
|
|
} elif (eq $c fetch) { |
|
|
|
@ -251,11 +230,11 @@ edit:completion:arg-completer[brl] = [@cmd]{
@@ -251,11 +230,11 @@ edit:completion:arg-completer[brl] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[tam] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[tam] = {|@cmd| |
|
|
|
|
if (at-command $cmd) { |
|
|
|
|
put install uninstall enable disable update list query search |
|
|
|
|
} else { |
|
|
|
|
c = $cmd[1] |
|
|
|
|
var c = $cmd[1] |
|
|
|
|
if (has-value [uninstall update query] $c) { |
|
|
|
|
tam list -s |
|
|
|
|
} elif (eq $c enable) { |
|
|
|
@ -268,14 +247,14 @@ edit:completion:arg-completer[tam] = [@cmd]{
@@ -268,14 +247,14 @@ edit:completion:arg-completer[tam] = [@cmd]{
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[handlr] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[handlr] = {|@cmd| |
|
|
|
|
if (at-command $cmd) { |
|
|
|
|
put get set add unset launch open list |
|
|
|
|
} elif (and (== (count $cmd) 3) (has-value [get set add unset launch] $cmd[-2])) { |
|
|
|
|
handlr autocomplete -m |
|
|
|
|
} elif (and (== (count $cmd) 4) (has-value [set add] $cmd[-3])) { |
|
|
|
|
handlr autocomplete -d | each [x]{ |
|
|
|
|
desktop name = (str:split "\t" $x) |
|
|
|
|
handlr autocomplete -d | each {|x| |
|
|
|
|
var desktop name = (str:split "\t" $x) |
|
|
|
|
edit:complex-candidate $desktop &display=$desktop' '$name |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
@ -285,19 +264,19 @@ edit:completion:arg-completer[handlr] = [@cmd]{
@@ -285,19 +264,19 @@ edit:completion:arg-completer[handlr] = [@cmd]{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[promotescript] = [@cmd]{ |
|
|
|
|
set edit:completion:arg-completer[promotescript] = {|@cmd| |
|
|
|
|
pwd=~/.local/bin fd -t f |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[edit-script] = $edit:complete-sudo~ |
|
|
|
|
edit:completion:arg-completer[whereis] = $edit:complete-sudo~ |
|
|
|
|
edit:completion:arg-completer[which] = $edit:complete-sudo~ |
|
|
|
|
set edit:completion:arg-completer[edit-script] = $edit:complete-sudo~ |
|
|
|
|
set edit:completion:arg-completer[whereis] = $edit:complete-sudo~ |
|
|
|
|
set edit:completion:arg-completer[which] = $edit:complete-sudo~ |
|
|
|
|
|
|
|
|
|
edit:completion:arg-completer[xq] = $edit:completion:arg-completer[xi] |
|
|
|
|
edit:completion:arg-completer[xqt] = $edit:completion:arg-completer[xi] |
|
|
|
|
edit:completion:arg-completer[xbps-install] = $edit:completion:arg-completer[xi] |
|
|
|
|
set edit:completion:arg-completer[xq] = $edit:completion:arg-completer[xi] |
|
|
|
|
set edit:completion:arg-completer[xqt] = $edit:completion:arg-completer[xi] |
|
|
|
|
set edit:completion:arg-completer[xbps-install] = $edit:completion:arg-completer[xi] |
|
|
|
|
|
|
|
|
|
prefixes = [ |
|
|
|
|
var prefixes = [ |
|
|
|
|
&sudo=$edit:complete-sudo~ |
|
|
|
|
&strace=$edit:complete-sudo~ |
|
|
|
|
&time=$edit:complete-sudo~ |
|
|
|
|