Plugins
Usage
- install Padre-Plugin-Fix
- enable in Plug-in Manager
- {{{Tools/Fix/Simplify}}}
TODO
- Create a '''Suggestions table panel''' that contains the following columns:
- Suggestion
- Path
- Line
- Run all suggestion checkers in the background and populate the '''Suggestions table panel'''.
- Provide a way to specify which suggestions are enabled for the current project. (Maybe read custom entries from '''padre.yml''')
- Move beginner checks from Padre here:
Padre::Document::Perl::Beginner
- Move {{{::QuickFix}}} from Padre here:
Padre::QuickFix Padre::Document::Perl::QuickFix Padre::Document::Perl::QuickFix::StrictWarnings Padre::Document::Perl::QuickFix::IncludeModule
- Revisit syntax errors in [http://szabgab.com/scalar-found-where-operator-expected.html Scalar found where operator expected]
- Use [https://metacpan.org/module/PPI::Transform PPI::Transform API]?
- Convert constant to uppercase
use constant pi => 3.14; # OR use constant { pi => 3.14, };to this
use constant PI => 3.14; # OR use constant { PI => 3.14, };* From ticket:502, Find code between subs:
sub a { } die "hello world"; sub b { }* From ticket:1200, Replace one or all occurrences of indirect notations such as this:
new Something("bla");should become
Something->new("bla");
- Over selection text range, provide the ability to quote it and choose qq{} or q{}
- Negate if block form with unless and vice versa
if(defined $fh) { say "File is open"; } else { say "File is not open!"; }should become
unless(defined $fh) { say "File is not open!"; } else { say "File is open"; }Transform if single statement into postfix form and vice versa:
if(defined $fh) { print "File is open"; }should become
print "File is open" if defined $fh;
- Add forgotten else clause to if block
- Transform qq{string} where string does not contain escape sequences into q{string} or 'string'
- if {{{use v5.10;}}} or greater is used, then {{{print "something\n"}}} can be transformed into {{{say "something"}}}
- Transform {{{my $param1 = shift}}} into {{{my ($param1) = @_; }}} and vice versa
- if-elsif-else transformation into given-when. Please see [http://perldoc.perl.org/perlsyn.html#Switch-statements Switch statements]
if($type eq 'a') { } elsif($type eq 'b') { } else { }should become
given($type) { when ('a') { } when ('b') { } default { } }* Add ''{{{Padre::Document::Perl::Beginner}}}'' checks and convert them to '''PPI'''
Test Sample
* assuming modern perl#!/usr/bin/env perl use 5.014; use strict; use warnings; use Carp; # Turn on $OUTPUT_AUTOFLUSH $| = 1; use feature 'unicode_strings'; #1, the following " -> ' try for your self open ( my $filehandle, "<:utf8", "test.bin") or die $!; #2, food for thought only #before open ( my $filehandle, "<:utf8", "test.bin") or die $!; #after use Carp; #after my $filehandle = undef; #after open ( $filehandle, '<:encoding(UTF-8)', 'test.bin') or croak $!; my $word = readline $filehandle; #3, food for thought only #before print "word = $word\n"; #after say 'word ='.$word; #4, food for thought only, an evil null if =~ fails #before my ($untainted) = $word =~ /^(\w+)$/; #after my $untainted = undef; #after $untainted = $word =~ /^(\w+)$/; say "untainted = $untainted"; if ($untainted) { # It passed the regex, so it is "safe". system "echo $untainted"; } 1; __END__