X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=CHANGES;h=8415f570d11440b2568b62df42e8a18919e84b6a;hb=5af8685bea60c00aae46266c726ddfb0132d7d12;hp=0ae4633c4a973370ee6982c9873ff0a61fc463cd;hpb=045a571b1fb0abc413cd19731ee13b5fc232d0f3;p=perltidy.git diff --git a/CHANGES b/CHANGES index 0ae4633..8415f57 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,248 @@ Perltidy Change Log + 2018 02 20 + - RT #124469, #124494, perltidy often making empty files. The previous had + an index error causing it to fail, particularly in version 5.18 of Perl. + + Please avoid version 20180219. + + 2018 02 19 + - RT #79947, cuddled-else generalization. A new flag -cb provides + 'cuddled-else' type formatting for an arbitrary type of block chain. The + default is try-catch-finally, but this can be modified with the + parameter -cbl. + + - Fixed RT #124298: add space after ! operator without breaking !! secret + operator + + - RT #123749: numerous minor improvements to the -wn flag were made. + + - Fixed a problem with convergence tests in which iterations were stopping + prematurely. + + - Here doc targets for <<~ type here-docs may now have leading whitespace. + + - Fixed RT #124354. The '-indent-only' flag was not working correctly in the + previous release. A bug in version 20180101 caused extra blank lines + to be output. + + - Issue RT #124114. Some improvements were made in vertical alignment + involving 'fat commas'. + + 2018 01 01 + - Added new flag -wn (--weld-nested-containers) which addresses these issues: + RT #123749: Problem with promises; + RT #119970: opening token stacking strange behavior; + RT #81853: Can't stack block braces + + This option causes closely nested pairs of opening and closing containers + to be "welded" together and essentially be formatted as a single unit, + with just one level of indentation. + + Since this is a new flag it is set to be "off" by default but it has given + excellent results in testing. + + EXAMPLE 1, multiple blocks, default formatting: + do { + { + next if $x == $y; # do something here + } + } until $x++ > $z; + + perltidy -wn + do { { + next if $x == $y; + } } until $x++ > $z; + + EXAMPLE 2, three levels of wrapped function calls, default formatting: + p( + em( + conjug( + translate( param('verb') ), param('tense'), + param('person') + ) + ) + ); + + # perltidy -wn + p( em( conjug( + translate( param('verb') ), + param('tense'), param('person') + ) ) ); + + # EXAMPLE 3, chained method calls, default formatting: + get('http://mojolicious.org')->then( + sub { + my $mojo = shift; + say $mojo->res->code; + return get('http://metacpan.org'); + } + )->then( + sub { + my $cpan = shift; + say $cpan->res->code; + } + )->catch( + sub { + my $err = shift; + warn "Something went wrong: $err"; + } + )->wait; + + # perltidy -wn + get('http://mojolicious.org')->then( sub { + my $mojo = shift; + say $mojo->res->code; + return get('http://metacpan.org'); + } )->then( sub { + my $cpan = shift; + say $cpan->res->code; + } )->catch( sub { + my $err = shift; + warn "Something went wrong: $err"; + } )->wait; + + + - Fixed RT #114359: Missparsing of "print $x ** 0.5; + + - Deactivated the --check-syntax flag for better security. It will be + ignored if set. + + - Corrected minimum perl version from 5.004 to 5.008 based on perlver + report. The change is required for coding involving wide characters. + + - For certain severe errors, the source file will be copied directly to the + output without formatting. These include ending in a quote, ending in a + here doc, and encountering an unidentified character. + + 2017 12 14 + - RT #123749, partial fix. "Continuation indentation" is removed from lines + with leading closing parens which are part of a call chain. + For example, the call to pack() is is now outdented to the starting + indentation in the following experession: + + # OLD + $mw->Button( + -text => "New Document", + -command => \&new_document + )->pack( + -side => 'bottom', + -anchor => 'e' + ); + + # NEW + $mw->Button( + -text => "New Document", + -command => \&new_document + )->pack( + -side => 'bottom', + -anchor => 'e' + ); + + This modification improves readability of complex expressions, especially + when the user uses the same value for continuation indentation (-ci=n) and + normal indentation (-i=n). Perltidy was already programmed to + do this but a minor bug was preventing it. + + - RT #123774, added flag to control space between a backslash and a single or + double quote, requested by Robert Rothenberg. The issue is that lines like + + $str1=\"string1"; + $str2=\'string2'; + + confuse syntax highlighters unless a space is left between the backslash and + the quote. + + The new flag to control this is -sbq=n (--space-backslash-quote=n), + where n=0 means no space, n=1 means follow existing code, n=2 means always + space. The default is n=1, meaning that a space will be retained if there + is one in the source code. + + - Fixed RT #123492, support added for indented here doc operator <<~ added + in v5.26. Thanks to Chris Weyl for the report. + + - Fixed docs; --closing-side-comment-list-string should have been just + --closing-side-comment-list. Thanks to F.Li. + + - Added patch RT #122030] Perl::Tidy sometimes does not call binmode. + Thanks to Irilis Aelae. + + - Fixed RT #121959, PERLTIDY doesn't honor the 'three dot' notation for + locating a config file using environment variables. Thanks to John + Wittkowski. + + - Minor improvements to formatting, in which some additional vertical + aligmnemt is done. Thanks to Keith Neargarder. + + - RT #119588. Vertical alignment is no longer done for // operator. + + 2017 05 21 + - Fixed debian #862667: failure to check for perltidy.ERR deletion can lead + to overwriting abritrary files by symlink attack. Perltidy was continuing + to write files after an unlink failure. Thanks to Don Armstrong + for a patch. + + - Fixed RT #116344, perltidy fails on certain anonymous hash references: + in the following code snippet the '?' was misparsed as a pattern + delimiter rather than a ternary operator. + return ref {} ? 1 : 0; + + - Fixed RT #113792: misparsing of a fat comma (=>) right after + the __END__ or __DATA__ tokens. These keywords were getting + incorrectly quoted by the following => operator. + + - Fixed RT #118558. Custom Getopt::Long configuration breaks parsing + of perltidyrc. Perltidy was resetting the users configuration too soon. + + - Fixed RT #119140, failure to parse double diamond operator. Code to + handle this new operator has been added. + + - Fixed RT #120968. Fixed problem where -enc=utf8 didn't work + with --backup-and-modify-in-place. Thanks to Heinz Knutzen for this patch. + + - Fixed minor formatting issue where one-line blocks for subs with signatures + were unnecesarily broken + + - RT #32905, patch to fix utf-8 error when output was STDOUT. + + - RT #79947, improved spacing of try/catch/finally blocks. Thanks to qsimpleq + for a patch. + + - Fixed #114909, Anonymous subs with signatures and prototypes misparsed as + broken ternaries, in which a statement such as this was not being parsed + correctly: + return sub ( $fh, $out ) : prototype(*$) { ... } + + - Implemented RT #113689, option to introduces spaces after an opening block + brace and before a closing block brace. Four new optional controls are + added. The first two define the minimum number of blank lines to be + inserted + + -blao=i or --blank-lines-after-opening-block=i + -blbc=i or --blank-lines-before-closing-block=i + + where i is an integer, the number of lines (the default is 0). + + The second two define the types of blocks to which the first two apply + + -blaol=s or --blank-lines-after-opening-block-list=s + -blbcl=s or --blank-lines-before-closing-block-list=s + + where s is a string of possible block keywords (default is just 'sub', + meaning a named subroutine). + + For more information please see the documentation. + + - The method for specifying block types for certain input parameters has + been generalized to distinguish between normal named subroutines and + anonymous subs. The keyword for normal subroutines remains 'sub', and + the new keyword for anonymous subs is 'asub'. + + - Minor documentation changes. The BUGS sections now have a link + to CPAN where most open bugs and issues can be reviewed and bug reports + can be submitted. The information in the AUTHOR and CREDITS sections of + the man pages have been removed from the man pages to streamline the + documentation. This information is still in the source code. + 2016 03 02 - RT #112534. Corrected a minor problem in which an unwanted newline was placed before the closing brace of an anonymous sub with @@ -1245,8 +1489,8 @@ Perltidy Change Log -improved breakpoint choices involving '->' - -Corrected tokenization of things like ${#} or ${©}. For example, - ${©} is valid, but ${© } is a syntax error. + -Corrected tokenization of things like ${#}. For example, + ${#} is valid, but ${# } is a syntax error. -Corrected minor tokenization errors with indirect object notation. For example, 'new A::()' works now.