dotfiles/.config/kak/scripts/kakfmt

18 lines
371 B
Perl
Executable file

#!/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;
}