====== Tidy ====== To make documents clean, we did automate reformatting with tools freely available ==== Tidy Code ==== To keep the code clean, follow this guide (but dont worry if you dont!) === Tools=== *Tidy perl code, ... (perltidy) *Follow best practice (perlcritic) *Automate it (tidyall) === Installation === Cpan minus (cpanm) install the latest package, but this can break be in conflict with OS package manager. cpanm install Perl::Tidy cpanm install Perl::Critic cpanm install Code::TidyAll ==== Usage ==== "TidyAll" automates the code formating (perltidy) and the code review (perlcritic). In the project folder, you will find a file called: **".tidyallrc"** that contains the current configuration. Look at it to understand what it does. \\ \\ To simulate the result: tidyall -a --check-only To make it work (perltidy will reformat files with an inplace reformatting, perlcritic will review code, but do not change any files) tidyall -a And files are bakuped ind the **".tidyall.d"** folder (add it to your git ignore files, if not already) ==== Current Best Practice with Perltidy ==== (Can change at any time: submit your proposal, critics) \\ Similar to arg -pbp (perl best practice), mainly: * 4 chars * no tabs * Line lenght 0 (unlimited) * Cuddle else ( else stay on the same line as the parenthesis) ==== Best Practice for Critic ==== (Wip, Not Implemented, nor deployed) == Use modern default: == * use strict; * use warning; * use utf8; ==== Tidy Document ==== To keep clean the other documents that are not code, follow this guide (but dont worry if you dont!) === Tools=== * Autoformat === Current Best Practice with autoformat === * 78 char per line * (stating at pos 0) === Installation === Cpan minus (cpanm) install the latest package, but this can break be in conflict with OS package manager. cpanm install Text::Autoformat Create the following script: (I named it: autoformat.pl) #!/usr/bin/perl -w # Minimal use: read from STDIN, format to STDOUT... use strict; use Text::Autoformat; my $str = do { local $/; }; my $out = autoformat $str, {left=>0, right=>78, all=>1}; print $out; And now you can format any text or markdown (this will not rendered in a Markdown reader, but Markdown files becomes more readable when they are read "without" a Markdown reader. (like basic vi , less and other standard tools) Make your script exectutable chmod +x autoformat.pl And test it! autoformat.pl < unformated.txt > formated.txt autoformat.pl < unformated.md > formated.md