AutoYADM commit: 2025-05-16 17:14:15
This commit is contained in:
parent
51ccc1e607
commit
b9cc8e936f
9 changed files with 78 additions and 171 deletions
6
.config/kak/autoload/clipboard.kak
Normal file
6
.config/kak/autoload/clipboard.kak
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
map -docstring "yank the selection into the clipboard" global user y "<a-|> wl-copy<ret>"
|
||||||
|
|
||||||
|
map -docstring "paste the clipboard" global user p "<a-!> wl-paste -n<ret>"
|
||||||
|
map -docstring "paste the clipboard before" global user P "! wl-paste -n<ret>"
|
||||||
|
map -docstring "replace with the clipboard" global user R '"_d! wl-paste -n<ret>'
|
||||||
|
|
18
.config/kak/autoload/git-mode.kak
Normal file
18
.config/kak/autoload/git-mode.kak
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
declare-user-mode git
|
||||||
|
map -docstring "git" global user g ": enter-user-mode git<ret>"
|
||||||
|
map -docstring "lazygit kak cwd" global git g ": terminal lazygit<ret>"
|
||||||
|
|
||||||
|
define-command lazygit-buffer-dir %{
|
||||||
|
evaluate-commands %sh{
|
||||||
|
ROOT="$(env -C "$(dirname $kak_buffile)" git rev-parse --show-toplevel)"
|
||||||
|
printf "terminal lazygit -p %s" "$ROOT"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map -docstring "lazygit buffer directory" global git G ": lazygit-buffer-dir<ret>"
|
||||||
|
|
||||||
|
define-command git-blame %{
|
||||||
|
info %sh{
|
||||||
|
git -C $(dirname $(realpath $kak_buffile)) blame -L $kak_cursor_line,$kak_cursor_line $(realpath $kak_buffile)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map -docstring "blame" global git b ": git-blame<ret>"
|
51
.config/kak/autoload/ui-mode.kak
Normal file
51
.config/kak/autoload/ui-mode.kak
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
declare-user-mode ui
|
||||||
|
map -docstring "UI" global user u ": enter-user-mode ui<ret>"
|
||||||
|
|
||||||
|
define-command ui-wrap-enable -docstring "enable wrap" %{
|
||||||
|
add-highlighter window/wrap wrap -word -indent
|
||||||
|
echo -markup "{Information}wrap enabled"
|
||||||
|
}
|
||||||
|
|
||||||
|
define-command ui-wrap-disable -docstring "disable wrap" %{
|
||||||
|
remove-highlighter window/wrap
|
||||||
|
echo -markup "{Information}wrap disabled"
|
||||||
|
}
|
||||||
|
|
||||||
|
define-command -override ui-wrap-toggle -docstring "toggle wrap" %{
|
||||||
|
try %{ ui-wrap-enable } catch %{ ui-wrap-disable }
|
||||||
|
}
|
||||||
|
map -docstring "toggle soft wrap" global ui w ": ui-wrap-toggle<ret>"
|
||||||
|
|
||||||
|
declare-option str base_scrolloff %opt{scrolloff}
|
||||||
|
|
||||||
|
define-command ui-scrolloff-toggle -docstring "toggle scrolloff" %{
|
||||||
|
evaluate-commands %sh{
|
||||||
|
CUR="$kak_opt_scrolloff"
|
||||||
|
IFS=,
|
||||||
|
read TARG HOR <<<$kak_opt_base_scrolloff
|
||||||
|
IFS=,
|
||||||
|
read VSCROLL _ <<<$kak_opt_scrolloff
|
||||||
|
if [ "$VSCROLL" = 99 ]; then
|
||||||
|
final="$TARG,$HOR"
|
||||||
|
else
|
||||||
|
final="99,$HOR"
|
||||||
|
fi
|
||||||
|
echo "set-option window scrolloff $final"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
map -docstring 'toggle screen centering' global ui z ": ui-scrolloff-toggle<ret>"
|
||||||
|
|
||||||
|
declare-option bool autowrap false
|
||||||
|
|
||||||
|
define-command autowrap-toggle -docstring "toggle autowrap" %{
|
||||||
|
evaluate-commands %sh{
|
||||||
|
if [ "$kak_opt_autowrap" = "true" ]; then
|
||||||
|
echo "autowrap-disable"
|
||||||
|
echo "set-option window autowrap false"
|
||||||
|
else
|
||||||
|
echo "autowrap-enable"
|
||||||
|
echo "set-option window autowrap true"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
define-command open_yazi %{
|
define-command open-yazi %{
|
||||||
evaluate-commands %sh{
|
evaluate-commands %sh{
|
||||||
rm -f /tmp/yazi-path &>/dev/null
|
rm -f /tmp/yazi-path &>/dev/null
|
||||||
|
# TODO: make this use %opt{termcmd} instead
|
||||||
footclient -d error yazi $kak_buffile --chooser-file=/tmp/yazi-path &>/dev/null
|
footclient -d error yazi $kak_buffile --chooser-file=/tmp/yazi-path &>/dev/null
|
||||||
P="$(cat /tmp/yazi-path)"
|
P="$(cat /tmp/yazi-path)"
|
||||||
out="info -markup -title {title}Yazi"
|
out="info -markup -title {title}Yazi"
|
||||||
|
@ -9,7 +10,6 @@ define-command open_yazi %{
|
||||||
else
|
else
|
||||||
echo "edit $P"
|
echo "edit $P"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
map -docstring "open file in yazi" global user <space> ": open_yazi<ret>"
|
map -docstring "open file in yazi" global user <space> ": open-yazi<ret>"
|
|
@ -9,15 +9,6 @@ hook global ModuleLoaded wayland %{
|
||||||
set-option global termcmd 'footclient sh -c'
|
set-option global termcmd 'footclient sh -c'
|
||||||
}
|
}
|
||||||
|
|
||||||
# open tutor (needs curl)
|
|
||||||
define-command trampoline -docstring "open a tutorial" %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
tramp_file=$(mktemp -t "kakoune-trampoline.XXXXXXXX")
|
|
||||||
echo "edit -fifo $tramp_file *TRAMPOLINE*"
|
|
||||||
curl -s https://raw.githubusercontent.com/mawww/kakoune/master/contrib/TRAMPOLINE -o "$tramp_file"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# This gets overridden by editorconfig but we set sane default anyways
|
# This gets overridden by editorconfig but we set sane default anyways
|
||||||
set-option global tabstop 4
|
set-option global tabstop 4
|
||||||
set-option global indentwidth 4
|
set-option global indentwidth 4
|
||||||
|
@ -35,73 +26,13 @@ add-highlighter global/regex-escaped regex \\[\[\]\(\)\{\}fnrtv0\\dwshDWSH] 0:rg
|
||||||
add-highlighter global/ number-lines -hlcursor -relative -separator " "
|
add-highlighter global/ number-lines -hlcursor -relative -separator " "
|
||||||
add-highlighter global/ show-whitespaces -lf "" -tab "" -only-trailing
|
add-highlighter global/ show-whitespaces -lf "" -tab "" -only-trailing
|
||||||
add-highlighter global/ show-matching
|
add-highlighter global/ show-matching
|
||||||
# add-highlighter global/wrap wrap -word -indent
|
|
||||||
|
|
||||||
declare-user-mode ui
|
|
||||||
map -docstring "UI" global user u ": enter-user-mode ui<ret>"
|
|
||||||
|
|
||||||
define-command ui-wrap-enable -docstring "enable wrap" %{
|
|
||||||
add-highlighter window/wrap wrap -word -indent
|
|
||||||
echo -markup "{Information}wrap enabled"
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command ui-wrap-disable -docstring "disable wrap" %{
|
|
||||||
remove-highlighter window/wrap
|
|
||||||
echo -markup "{Information}wrap disabled"
|
|
||||||
}
|
|
||||||
|
|
||||||
define-command -override ui-wrap-toggle -docstring "toggle wrap" %{
|
|
||||||
try %{ ui-wrap-enable } catch %{ ui-wrap-disable }
|
|
||||||
}
|
|
||||||
map -docstring "toggle soft wrap" global ui w ": ui-wrap-toggle<ret>"
|
|
||||||
|
|
||||||
declare-option str base_scrolloff %opt{scrolloff}
|
|
||||||
|
|
||||||
define-command ui-scrolloff-toggle -docstring "toggle scrolloff" %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
CUR="$kak_opt_scrolloff"
|
|
||||||
IFS=,
|
|
||||||
read TARG HOR <<<$kak_opt_base_scrolloff
|
|
||||||
IFS=,
|
|
||||||
read VSCROLL _ <<<$kak_opt_scrolloff
|
|
||||||
if [ "$VSCROLL" = 99 ]; then
|
|
||||||
final="$TARG,$HOR"
|
|
||||||
else
|
|
||||||
final="99,$HOR"
|
|
||||||
fi
|
|
||||||
echo "set-option window scrolloff $final"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
map -docstring 'toggle screen centering' global ui z ": ui-scrolloff-toggle<ret>"
|
|
||||||
|
|
||||||
declare-option bool autowrap false
|
|
||||||
|
|
||||||
define-command autowrap-toggle -docstring "toggle autowrap" %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
if [ "$kak_opt_autowrap" = "true" ]; then
|
|
||||||
echo "autowrap-disable"
|
|
||||||
echo "set-option window autowrap false"
|
|
||||||
else
|
|
||||||
echo "autowrap-enable"
|
|
||||||
echo "set-option window autowrap true"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# map -docstring "toggle autowrap" global ui a ": autowrap-toggle<ret>"
|
|
||||||
|
|
||||||
hook global WinCreate .* %{
|
hook global WinCreate .* %{
|
||||||
ui-wrap-enable
|
ui-wrap-enable
|
||||||
ui-scrolloff-toggle
|
ui-scrolloff-toggle
|
||||||
}
|
}
|
||||||
|
|
||||||
map -docstring "yank the selection into the clipboard" global user y "<a-|> wl-copy<ret>"
|
|
||||||
|
|
||||||
map -docstring "paste the clipboard" global user p "<a-!> wl-paste -n<ret>"
|
|
||||||
map -docstring "paste the clipboard before" global user P "! wl-paste -n<ret>"
|
|
||||||
map -docstring "replace with the clipboard" global user R '"_d! wl-paste -n<ret>'
|
|
||||||
|
|
||||||
map -docstring "quit" global user q ": q<ret>"
|
map -docstring "quit" global user q ": q<ret>"
|
||||||
map -docstring "quit" global normal <c-q> ": q<ret>"
|
map -docstring "quit" global normal <c-q> ": q<ret>"
|
||||||
map -docstring "quit" global user Q ": q!<ret>"
|
map -docstring "quit" global user Q ": q!<ret>"
|
||||||
|
@ -130,24 +61,6 @@ map global normal <tab> _
|
||||||
|
|
||||||
map -docstring "comment line" global normal "#" ": comment-line<ret>"
|
map -docstring "comment line" global normal "#" ": comment-line<ret>"
|
||||||
map -docstring "comment block" global normal "<a-#>" ": comment-block<ret>"
|
map -docstring "comment block" global normal "<a-#>" ": comment-block<ret>"
|
||||||
declare-user-mode git
|
|
||||||
map -docstring "git" global user g ": enter-user-mode git<ret>"
|
|
||||||
map -docstring "lazygit kak cwd" global git g ": terminal lazygit<ret>"
|
|
||||||
|
|
||||||
define-command lazygit-buffer-dir %{
|
|
||||||
evaluate-commands %sh{
|
|
||||||
ROOT="$(env -C "$(dirname $kak_buffile)" git rev-parse --show-toplevel)"
|
|
||||||
printf "terminal lazygit -p %s" "$ROOT"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map -docstring "lazygit buffer directory" global git G ": lazygit-buffer-dir<ret>"
|
|
||||||
|
|
||||||
define-command git-blame %{
|
|
||||||
info %sh{
|
|
||||||
git -C $(dirname $(realpath $kak_buffile)) blame -L $kak_cursor_line,$kak_cursor_line $(realpath $kak_buffile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
map -docstring "blame" global git b ": git-blame<ret>"
|
|
||||||
|
|
||||||
map -docstring "format" global normal = ": format-buffer<ret>"
|
map -docstring "format" global normal = ": format-buffer<ret>"
|
||||||
map -docstring "format" global normal <a-=> ": format-selections<ret>"
|
map -docstring "format" global normal <a-=> ": format-selections<ret>"
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/usr/bin/env perl
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
my $Indent = 0;
|
|
||||||
my $Blank_Lines = 0;
|
|
||||||
my $Open = qr/[{\[(]$/;
|
|
||||||
my $Close = qr/^[}\])]/;
|
|
||||||
while (<>) {
|
|
||||||
s/^\h*//;
|
|
||||||
$Blank_Lines++, next if m/^$/;
|
|
||||||
my $Comment = m/^#/;
|
|
||||||
$Indent-- if m/$Close/ and not $Comment;
|
|
||||||
$Blank_Lines = 0, print "\n" if $Blank_Lines;
|
|
||||||
print "\t" x $Indent, $_;
|
|
||||||
$Indent++ if m/$Open/ and not $Comment;
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/usr/bin/env fish
|
|
||||||
|
|
||||||
echo nav
|
|
|
@ -1,60 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
# TODO: works great for moving within wrapped line,
|
|
||||||
# not quite when moving from wrapped to normal and vice versa
|
|
||||||
# 1. Detect line-wrap status of target line before deciding to do vertical jump or visual column shift
|
|
||||||
# 2. Load the target line in addition
|
|
||||||
# 3. Use the same wrap_width logic to compare visual row availability
|
|
||||||
# on the target line
|
|
||||||
|
|
||||||
# Basically, look at the target line, and figure out the logical column
|
|
||||||
# number that corresponds to the visual column number we see right now.
|
|
||||||
|
|
||||||
# ISSUE: does not work if the line has indentation
|
|
||||||
|
|
||||||
# Also TODO: once this is ironed out, re-write it in Rust for le speed
|
|
||||||
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
|
|
||||||
session_id = sys.argv[1]
|
|
||||||
line_n = int(sys.argv[2])
|
|
||||||
col = int(sys.argv[3])
|
|
||||||
|
|
||||||
width = int(sys.argv[4])
|
|
||||||
count = int(sys.argv[5])
|
|
||||||
|
|
||||||
path = sys.argv[6]
|
|
||||||
direction = sys.argv[7]
|
|
||||||
digits = len(str(count))
|
|
||||||
wrap_width = width - (digits + 3)
|
|
||||||
line = ""
|
|
||||||
with open(path, "r") as f:
|
|
||||||
for n, l in enumerate(f, start=1):
|
|
||||||
if n == line_n:
|
|
||||||
line = l
|
|
||||||
# match = re.match(r"^(\s*)", line)
|
|
||||||
# if match:
|
|
||||||
# indent = match.group(1)
|
|
||||||
# indent_len = len(indent)
|
|
||||||
# else:
|
|
||||||
# indent_len = 0
|
|
||||||
|
|
||||||
# content = line[indent_len:]
|
|
||||||
content = line
|
|
||||||
indent_len = 0
|
|
||||||
|
|
||||||
chunks = [content[i : i + wrap_width] for i in range(0, len(content), wrap_width)]
|
|
||||||
visual_row = col // wrap_width
|
|
||||||
visual_col = col % wrap_width
|
|
||||||
|
|
||||||
new_visual_row = visual_row + (-1 if direction == "up" else 1)
|
|
||||||
if 0 <= new_visual_row < len(chunks):
|
|
||||||
target_chunk = chunks[new_visual_row]
|
|
||||||
new_col = min(visual_col, len(target_chunk) - 1)
|
|
||||||
new_abs_col = indent_len + (new_visual_row * wrap_width + new_col)
|
|
||||||
diff = abs(new_abs_col - col)
|
|
||||||
key = "h" if direction == "up" else "l"
|
|
||||||
print(f"{diff}{key}")
|
|
||||||
else:
|
|
||||||
print("j" if direction == "down" else "k")
|
|
Loading…
Add table
Add a link
Reference in a new issue