AutoYADM commit: 2025-05-13 18:32:14

This commit is contained in:
Daniel Fichtinger 2025-05-13 18:32:14 -04:00
parent 66a600da48
commit 422a963697
2 changed files with 58 additions and 5 deletions

View file

@ -64,17 +64,18 @@ define-command ui-scrolloff-toggle -docstring "toggle scrolloff" %{
CUR="$kak_opt_scrolloff"
IFS=,
read TARG HOR <<<$kak_opt_base_scrolloff
if [ "$CUR" != ${CUR#99} ]; then
IFS=,
read VSCROLL _ <<<$kak_opt_scrolloff
if [ "$VSCROLL" = 99 ]; then
final="$TARG,$HOR"
else
final="99,$HOR"
fi
# echo "echo final: $final, targ: $TARG, hor: $HOR"
echo "set-option window scrolloff $final"
}
}
map global ui z ": ui-scrolloff-toggle 3 3<ret>"
map global ui z ": ui-scrolloff-toggle<ret>"
hook global WinCreate .* %{
ui-wrap-enable

View file

@ -1,5 +1,24 @@
#!/usr/bin/env perl
# old
# 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;
# }
#!/usr/bin/env perl
use strict;
use warnings;
@ -7,12 +26,45 @@ my $Indent = 0;
my $Blank_Lines = 0;
my $Open = qr/[{\[(]$/;
my $Close = qr/^[}\])]/;
my $InShell = 0;
my $ShellIndent = 0;
while (<>) {
s/^\h*//;
$Blank_Lines++, next if m/^$/;
# Track blank lines
if (/^$/) {
$Blank_Lines++;
next;
}
# Detect start of %sh{
if (/^%sh\s*{/) {
print "\t" x $Indent, $_;
$InShell = 1;
$ShellIndent = 0;
next;
}
# Detect end of shell block
if ($InShell && /^\}/) {
$InShell = 0;
print "\t" x $Indent, $_;
next;
}
if ($InShell) {
$ShellIndent-- if /^\s*(?:fi|done|esac|elif|else|elif|;;)/;
print "\t" x ($Indent + $ShellIndent), $_;
$ShellIndent++ if /\b(?:then|do|case)\b(?:\s*#.*)?$/ or /{\s*$/;
next;
}
my $Comment = m/^#/;
$Indent-- if m/$Close/ and not $Comment;
$Blank_Lines = 0, print "\n" if $Blank_Lines;
print "\n" if $Blank_Lines;
$Blank_Lines = 0;
print "\t" x $Indent, $_;
$Indent++ if m/$Open/ and not $Comment;
}