Padre (software)

Padre (short for "Perl Application Development and Refactoring Environment") is a multi-language software development platform comprising an IDE and a plug-in system to extend it. It is written primarily in Perl and is used to develop applications in this language.

Padre is written in Perl 5 but can be extended by any language running on top of the Parrot virtual machine, such as Raku, through its plug-in system and its integration with Parrot. The development officially started in June 2008 but Padre has reused components that have been available on CPAN, and the latest version of Padre is itself always available on CPAN. Most importantly, it uses the Perl bindings of wxWidgets for the windowing system, and PPI to correctly parse and highlight Perl and to allow refactoring. The primary advantages of Padre for Perl developers is that full and easy access to the source code of their editor is available, and a unique set of "Perl intuition" features that allow the IDE to understand details about project structure and content without needing to be told by the user.

Architecture
Padre employs plug-ins in order to provide all of its functionality on top of the runtime system. All the functionality except the core Perl 5 support is implemented as plug-ins. Padre has plug-ins for HTML and XML editing.

This plug-in mechanism is a lightweight framework. In addition to allowing Padre to be extended using other programming languages, the plug-in framework allows Padre to work with networking applications such as telnet, and database management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management, version control systems (Subversion, Git) support, etc.

Padre's widgets are implemented by wxWidgets, an open source, cross-platform toolkit written in C++.

Features

 * Bookmark Support
 * Code Folding
 * Session Support
 * Diff Feature
 * CPAN Explorer Tool
 * Graphical Debugger Tool
 * Version Control Tool

Notable plug-ins

 * Version Control: Subversion, Git, Mercurial
 * Languages: Raku, Parrot, HTML, XML, CSS, LaTeX
 * Editor Compatibility: Vim
 * Helper tool for Catalyst