Perltidy TODO List
- This is a partial "wish-list" of features to add and things to do. All
- of these are of interest, but there is no particular schedule for
- implementing them.
+ This is a partial "wish-list" of features to add and things to do.
- Improved Vertical Alignment
- There are many opportunities for improving vertical alignment.
+ Perltidy not idempotent
+ Perltidy does a single pass but iterates locally to try to satisfy the
+ various constraints and formatting parameters, but in some cases it can
+ take a second pass to reach a stable format, particularly when major
+ format style changes are made. It would be useful to have a flag to
+ force a second pass, say --passes=2.
+
+ For now, a workaround for a single file is
+
+ perltidy file.pl -st | perltidy -o file.tdy
+
+ The starting indentation level is not correctly guessed when tabs are used
+ When formatting a snippet which does not begin at zero indentation,
+ perltidy must guess the starting indentation. The -sil flag can be used
+ to specify this, but this is tedious. In general we cannot know the
+ indentation and can only guess, but we can at least require that if
+ perltidy is run twice on the same snippet, with the same parameters,
+ that the indentation be correctly guessed on the second pass. Currently,
+ this is only true if there are no tabs in the leading whitespace. A
+ patch has been submitted to fix this but it needs a little work still.
- More options for controling placement of opening/closing tokens
- Many have requested even more options to control opening and closing
- token placement.
+ -b does not work through the Tidy module
+ The use of -b in the following does not work:
- improved ?: formatting
- An indentation level should be associated with ?: statements. This will
- make nested ?: statements more readable.
+ use Perl::Tidy ();
+ use File::Spec;
- improved internal if/unless formatting
- Consider giving internal if/unless statements an additional level of
- indentation. This would avoid running out of indentation levels.
- Suggested by Jeff Armstorng. For example, we would like the 'ands' in
- the following statement to be indented more than the if:
+ my $file = File::Spec->catfile( $dir,
+ $filename );
- return $ship->chargeWeapons("phaser-canon")
- if $encounter->description eq 'klingon'
- and $ship->firepower >= $encounter->firepower
- and $location->status ne 'neutral';
+ Perl::Tidy::perltidy(
+ source => $file,
+ argv => '-b',
+ perltidyrc => $perltidyrc,
+ );
- enable -ole under Windows
- This only works under unix (or cygwin) at present. It doesn't work for
- Windows versions, such as Active State, because they change line endings
- that they don't like.
+ A temporary workaround is:
+
+ Perl::Tidy::perltidy(
+ argv => "-b $file",
+ perltidyrc => $perltidyrc,
+ );
+
+ Improved Vertical Alignment
+ There are still many opportunities for improving vertical alignment.
Documentation
A FAQ is needed to explain some of the more subtle formatting issues,
multi-line quotes. Then code needs to be written to scan for and markup
identifiers.
- Automatic style detection
- It would be nice to write a program to read a sample of perl code and
- write an approximate .perltidyrc file for that style.
-
Things which have been suggested but will not be done
Recursive file processing
- A -r flag might be nice, but this is probably best handled by an
- exterior shell script.
+ A -r flag might be nice, but this is best handled by an exterior shell
+ script.