| 13 | | == Customizable syntax highlighting (coloring) of many languages == |
| 14 | | |
| 15 | | #6 #305 |
| 16 | | |
| 17 | | == Syntax checking for Perl 5 and Perl 6 == |
| 18 | | |
| 19 | | #23 |
| 20 | | |
| 21 | | == Smart highlighting == |
| 22 | | |
| 23 | | See example in this blog http://ahmadzawawi.blogspot.com/2009/09/whats-new-in-padre-046.html |
| 24 | | |
| 25 | | == Refactoring tools for Perl 5 == |
| 26 | | |
| 27 | | The various Perl 5 refactoring features are available in the Perl menu - when viewing a file |
| 28 | | that was recognized as a Perl 5 file. |
| 29 | | |
| 30 | | #8 #525 #531 |
| 31 | | |
| 32 | | === Lexically Rename Variable === |
| 33 | | |
| 34 | | {{{ |
| 35 | | |
| 36 | | my $x = 23; |
| 37 | | { |
| 38 | | my $x = 42; |
| 39 | | { |
| 40 | | my $x = 19; |
| 41 | | print $x; # 19 |
| 42 | | } |
| 43 | | print $x; # 42 |
| 44 | | } |
| 45 | | |
| 46 | | print $x; # 23 |
| 47 | | }}} |
| 48 | | |
| 49 | | In the above code the programmer used the same variable name in several scopes. |
| 50 | | We would like to replace the one in the middle where $x is 42. We cannot replace it |
| 51 | | based on selection as that would rename the internal variables ($x = 19) as well. |
| 52 | | |
| 53 | | We can select one of the occurrences of $x that we want to replace, right-click on the mouse, |
| 54 | | select "Lexically Rename Variable", type in a new name and click OK. It will |
| 55 | | replace the correct variable (Once the bugs reported in #565 are fixed). |
| 56 | | |
| 57 | | === Extract Subroutine === |
| 58 | | |
| 59 | | === Introduce Temporary Variable === |
| 60 | | |
| 61 | | |
| 62 | | == Refactoring tools for Perl 6 == |
| 63 | | |
| 64 | | These can be found in the Padre::Plugin::Perl6 You can find them in the |
| 65 | | '''Plugins/Perl 6/Refactor...''' menu item. |
| 66 | | |
| 67 | | |
| 68 | | == Context sensitive Language-specific help == |
| 69 | | |
| 70 | | Select any text and click on F2 or just click on F2. |
| 71 | | |
| 72 | | It currently is implemented for Perl 5 and Perl 6. |
| 73 | | |
| 74 | | See ( #96, #56, #58, #59 ) |
| 75 | | |
| 76 | | See example in this blog http://ahmadzawawi.blogspot.com/2009/09/whats-new-in-padre-046.html |
| 77 | | |
| 78 | | == Rectangular Selection == |
| 79 | | |
| 80 | | Rectangular selection in Padre can be done by pressing the Shift and Alt keys together and then |
| 81 | | use the arrow keys and/or the mouse to make the text selection. |
| 82 | | |
| 83 | | See (#167) |
| 84 | | |
| 85 | | == Multi-platform: Microsoft Windows, Linux, !FreeBSD, Mac OS X == |
| 86 | | |
| 87 | | See the [http://padre.perlide.org/download.html download] page on instructions |
| 88 | | how to install Padre on the various operating systems. |
| 89 | | |
| | 8 | TODO: re-working this pages is not finished yet |
| | 9 | |
| | 10 | = Existing Features = |
| | 11 | * multi-platform: Microsoft Windows, Linux, !FreeBSD, Mac OS X, NetBSD |
| | 12 | * Free and Open Source Software under the Perl licensing terms: [http://svn.perlide.org/padre/trunk/Padre/COPYING GPL I] [http://svn.perlide.org/padre/trunk/Padre/Artistic Artistic I] |
| | 13 | * Written in Perl. There are parts that rely on libraries written in C or C++ but they are all wrapped in CPAN packages and have an API in Perl 5. |
| | 14 | * Customizable syntax highlighting (coloring) for many languages: #6 #305 |
| | 15 | * multi-document editing |
| | 16 | * Perl-specific features |
| | 17 | * Syntax checking for Perl 5 and Perl 6 #23 |
| | 18 | * See example in this blog http://ahmadzawawi.blogspot.com/2009/09/whats-new-in-padre-046.html |
| | 19 | * Refactoring tools for Perl 5: #8 #531 |
| | 20 | * Lexically Rename Variable |
| | 21 | * Extract Subroutine |
| | 22 | * Introduce Temporary Variable |
| | 23 | * Refactoring tools for Perl 6: Padre::Plugin::Perl6 |
| | 24 | * Context sensitive help (Perl 5 and 6): #96 #56 #58 #59 |
| | 25 | * Select any text and click on F2 or just click on F2. |
| | 26 | * See example in this blog http://ahmadzawawi.blogspot.com/2009/09/whats-new-in-padre-046.html |
| | 27 | * Regex Editor for building and debugging regular expressions #542 |
| | 28 | * Extendable in Perl 5: TODO: Describe and link to the plugin system |
| | 29 | * Automatic reformatting of code: Padre::Plugin::PerlTidy |
| | 30 | * REPL: #110 |
| | 31 | * Project support #10 |
| | 32 | * Rectangular selection: #167 |
| | 33 | * press Shift and Alt keys together while selecting with the mouse or the arrow keys |
| | 34 | * Integrated version control: #82 Padre::Plugin::Git, Padre::Plugin::SVN, Padre::Plugin::SVK, Padre::Plugin::HG |
| | 35 | |
| | 36 | |
| | 37 | = Planned Features = |
| | 38 | * More Perl 5 refactoring tools |
| | 39 | * rename subroutine #525 |
| | 40 | * Extendable in Perl 6: There is a very experimental way to extend Padre using Perl 6 via the very limited Inline::Rakudo module. See Padre::Plugin::PSI for a simple example. (Last checked in March 2009) |
| | 41 | * Extendable in Python/PHP/Ruby/etc.: By embedding the Parrot virtual machine into Padre we can allow extending Padre by any language implemented on top of Parrot. The Padre::Plugin::Parrot has the code to embed Parrot and it has an example on coding in PIR. |
| | 42 | |
| | 43 | |
| | 44 | |
| 103 | | == Free and Open Source under the "Perl license" == |
| 104 | | |
| 105 | | |
| 106 | | [http://svn.perlide.org/padre/trunk/Padre/COPYING GPL I] |
| 107 | | [http://svn.perlide.org/padre/trunk/Padre/Artistic Artistic I] |
| 108 | | |
| 109 | | == Written in Perl 5 == |
| 110 | | |
| 111 | | Most of the code if Padre is written in Perl. There are parts that rely on libraries |
| 112 | | written in C or C++ but they are all wrapped in CPAN packages and have an API in Perl 5 |
| 113 | | |
| 114 | | == Extendable in Perl 5 == |
| 115 | | |
| 116 | | TODO: Describe and link to the plugin system |
| 117 | | |
| 118 | | == Extendable in Perl 6 == |
| 119 | | |
| 120 | | There is a very experimental way to extend Padre using Perl 6 via the |
| 121 | | very limited Inline::Rakudo module. See Padre::Plugin::PSI for a |
| 122 | | simple example. (Last checked in March 2009) |
| 123 | | |
| 124 | | |
| 125 | | == Extendable in Python/PHP/Ruby/etc == |
| 126 | | |
| 127 | | By embedding the Parrot virtual machine into Padre we can allow |
| 128 | | extending Padre by any language implemented on top of Parrot. |
| 129 | | This is a Planned feature. The Padre::Plugin::Parrot has the code to |
| 130 | | embed Parrot and it has an example on coding in PIR. |
| | 55 | |
| | 56 | |
| | 57 | |
| | 58 | |