User Tools

Site Tools


en:devmon:guidelines:tidy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:devmon:guidelines:tidy [2021/08/12 08:03] – created Bruno Manzonien:devmon:guidelines:tidy [2021/08/22 14:35] (current) – [Tidy Document] adminw1k1
Line 1: Line 1:
 ====== Tidy ====== ====== Tidy ======
  
-To make it easier to keep code clean, you can follow this guide +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.  
 + 
 +<code> 
 +cpanm install Perl::Tidy 
 +cpanm install Perl::Critic 
 +cpanm install Code::TidyAll 
 +</code> 
 + 
 +==== 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:  
 +<code> 
 +tidyall -a --check-only  
 +</code> 
 + 
 +To make it work (perltidy will reformat files with an inplace reformatting, perlcritic will review code, but do not change any files)  
 + 
 +<code> 
 +tidyall -a  
 +</code> 
 + 
 +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. 
 +<code> 
 +cpanm install Text::Autoformat 
 +</code> 
 + 
 +Create the following script: (I named it: autoformat.pl) 
 +<code> 
 +#!/usr/bin/perl -w 
 +# Minimal use: read from STDIN, format to STDOUT... 
 +use strict; 
 +use Text::Autoformat; 
 +my $str = do { local $/; <STDIN> }; 
 +my $out = autoformat $str, {left=>0, right=>78, all=>1}; 
 +print $out; 
 +</code> 
 + 
 +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 
 +<code> 
 +chmod +x autoformat.pl 
 +</code> 
 + 
 +And test it! 
 + 
 +<code> 
 +autoformat.pl < unformated.txt > formated.txt 
 +autoformat.pl < unformated.md > formated.md 
 +</code>
  
-Objective:  
-- Tidy perl code, ... 
-- Follow best practice 
-- Automate it  
  
-Installation procedure  
-Cpan minus install latest package, but this can break be in conflict with OS package manager. Make a backup if you can first 
  
  
-- cpanm perltidy 
-- cpanm pre 
en/devmon/guidelines/tidy.1628748222.txt.gz · Last modified: 2021/08/12 08:03 by Bruno Manzoni