代码格式化

use Math::Matrix ;

my $key-width     = 0;
my $value-width   = 0;
my $comment-width = 0;
my $padding       = 5;
my @sep           = ('=', '//')   ;
my @lengths;

# sub MAIN() {

# }
# 找到每一列的最大长度

for $=finish.lines -> $line {
    my @items = $line.split(/ @sep /);
    my @l;
    for @items -> $item {
        @l.append($item.trim.chars);
    }
    @lengths.push(@l);
}

my $m = Math::Matrix.new( [@lengths] );
my @maximal-width;
my @b = $m.transposed.list-rows;
@maximal-width.append(.max) for @b;
@maximal-width »+=» $padding;
my @f = @maximal-width».&sformat;
my $cformat = j(@f, @sep);

for $=finish.lines -> $l {
    my @items = $l.split(/@sep/);
    say sprintf("{$cformat}", @items);
}

sub sformat($l) {
    return '%-' ~ $l ~ 's'
}

# 如果不使用 is copy , 会修改 @sep 的值, 影响结果, 坑!
sub j(@columns, @separators is copy) {
    return (@columns »~» (@separators.append(""))).join("");
} 

=finish
  val GAS = "gas"  //天然气
  val HYDROGEN = "hydrogen"  //氢气
  val GASOLINE = "gasoline"  //汽油
  val LOWEST_VOLTAGE_CELL_MONOMER = "lowest_voltage_cell_monomer"  //电池单体电压最低值
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017年1月26日一.Sublime Text如何实现html文件代码格式化1.效果:未格式化前效果 格式化后效...
    wangyu2488阅读 12,116评论 2 5
  • 打开eclipse 选择 window-->Preferences-->JAVA-->Code-->Code St...
    Untils阅读 262评论 0 0
  • 年后回来,对代码书写进行一下格式化,让阅读的人看待这份代码的时候,至少能够觉得赏心悦目,不至于看看就头疼吧,同事<...
    Lee丶Way阅读 772评论 6 0
  • 我想请问一下各位,你们理解礼仪这个词的意思吗?你们认为礼仪对孩子来说重要吗,孩子们需要学习礼仪吗? 今天我想与大家...
    蒲公英LiLychen阅读 419评论 0 0
  • 从小到大自己都是多梦的。 小时候梦见自己变成孙悟空可以飞。 中学时梦见台湾偶像剧里的男主角变成男盆友。 大学时梦见...
    巫花的回忆阅读 581评论 0 50