AutoYADM commit: 2025-05-13 18:32:14
This commit is contained in:
parent
66a600da48
commit
422a963697
2 changed files with 58 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue