[[PageOutline(1-2)]]

List of existing and planned features with links to description of each feature
with relevant tickets and test cases to make sure the features are implemented correctly.

= Features =

 * multi-platform: [wiki:DownloadWindows Microsoft Windows], [wiki:Download Linux], [wiki:DownloadFreeBSD FreeBSD], [wiki:DownloadMacOSX Mac OS X], [wiki:DownloadNetBSD NetBSD]
 * 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]
 * 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.
 * [wiki:Features/BasicEditorFeatures Basic Editor Features]
 * [wiki:Features/VisualEditorEffects Visual Editor Effects]
   * Line Numbers
   * Code Folding
   * Current Line
   * Right Margin
   * Newlines
   * Whitespaces
   * Indentation Guide 
 * [wiki:Features/SyntaxHighlighting Syntax Highlighting]
 * [wiki:Features/Run Run a Script]
 * [wiki:Features/TitleAndStatusBarPersonalization Title and Status Bar Personalization]
 * [wiki:Features/CommandLineWindow Command Line Window]
 * [wiki:Features/OpenResource Open Resource]
 * [wiki:Features/QuickMenuAccess Quick Menu Access]
 * [wiki:Features/SingleInstance Single Instance]
 * [wiki:Features/AutoSave Automatic Save and Backup]
 * [wiki:Features/RemoteEditing Remote Editing via FTP, HTTP, SSH]
 * [wiki:Features/CooperativeEditing Cooperative Editing] (Swarm)
 * [wiki:Features/SearchAndReplace Search and Replace]
 * [wiki:Features/IncrementalSearch Incremental Search]
 * [wiki:Features/FindInFiles Find In Files]
 * [wiki:Features/TODOList TODO List]
 * [wiki:Features/EditPatch Patch]
 * [wiki:Features/AutoDiff Auto-Diff]
 * [wiki:Features/CodeSnippets Code Snippets]
 * [wiki:Features/CPANModuleInstaller CPAN Module Installer]
 * [wiki:Features/SessionManagement Session Management]
 * [wiki:Features/SplitView Split View]
 * [wiki:Features/Bookmarks Bookmarks]
 * [wiki:Features/RightClick Context Menu]
 * [wiki:Features/ProjectManagement Project Management]
 * [wiki:Features/ProjectSkeletonGeneration Project Skeleton Generation]
 * [wiki:Features/Autocomplete Autocomplete]
 * [wiki:Features/HelpViewer Help Viewer]
 * [wiki:Features/ContextSensitiveHelp Context Sensitive Help]
 * [wiki:Features/RectangularEditing Rectangular Selection and Editing]
 * [wiki:Features/Autoindent Autoindent]
 * [wiki:Features/Brackets Bracket Completition and Matching]
 * [wiki:Features/Outline Code Browser and Var tree called Outline] 
 * [wiki:Features/Autocomplete Source code suggestions and Autocomplete]
 * [wiki:Features/PreferenceSystem Configuration and Preference System]
 * [wiki:Features/OpenSelection Open Selection]
 * Multi-document editing - as far as we understand this only means you can edit several files at the same time
 * Code-assist editor - What does this cover?
 * IME - [wiki:Features/MultilingualInputMethodEditor Multilingual Input Method Editor]
 * [wiki:Features/IntegratedWebServer Integrated Web Server] for web application development
 * Call tips
* [wiki:Features/ToolsPrefernces Tools Prefernces draft]

== Perl-specific features ==

 * [wiki:Features/SyntaxChecking Real Time Syntax Checking For Perl 5 and 6]
 * [wiki:Features/Perl5Debugger Perl 5 Debugger] - perl debugging in Padre
 * [wiki:Features/RefactoringPerl5 Refactoring Perl 5 code]
 * [wiki:Features/AutomatedBuildAndTest Automated Build and Test]
 * [wiki:Features/Perl6 Perl 6 features]
 * [wiki:Features/RegexEditor Regex Editor]
 * [wiki:PluginAPI Extendable in Perl 5] via a Powerful [wiki:PluginAPI Plugin API]
 * [wiki:Features/PerlTidy] - automatic reformatting (tidying) of code
 * [wiki:Features/REPL REPL]
 * [wiki:Features/ProjectBrowser Project Browser] (Tree view of source files and resources)
 * [wiki:Features/IdentifyCommonErrors Identify Common Errors]
 * special features for beginners (we can create a page listing them)
 * advanced features (we can create a page listing them)

 * [wiki:Features/Extendable Extendable in Perl 6 and other languages]
 * [wiki:Features/HandleMultipleLanguages]


== Plugins ==

 * [wiki:Plugins] generic plugins related tickets
 * [wiki:Features/IntegratedVersionControl Integrated Version Control]
 * [wiki:Features/SuperGrep Super Grep]

= Feature requests and ideas from other sources =

In this section we have lists of features taken from verious articles
and web sites comparing tools and even from other IDEs.

For each feature we first link it to a related ticket but later
on we will point to the description of our implementation of
that feature.

== From Perlmonks ==

Perlmonks has a table comparing features of IDEs and editors to be used for Perl
development.

The table can be found at [http://www.perlmonks.org/?node=Perl%20Development%20Tools Perl Development Tools]

TODO: add links to the relevant Feature Pages

|| '''Feature'''      || '''Status or link to ticket''' ||
|| Perl Exclusive     || Why is yes considered good here? ||
|| Free               || yes - Under the "perl" license. ||
|| Perl Engine        || Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl ||
|| [wiki:Features/SyntaxChecking Syntax Checking]  || yes ||
|| [wiki:Features/SyntaxHighlighting Syntax colouring]  || yes ||
|| [wiki:Features/Autoindent Autoindent]    || yes ||
|| [wiki:Features/IncrementalSearch Incremental search] || yes ||
|| [wiki:Features/Brackets Bracket Completition and Matching] || yes ||
|| Folding            || see under [wiki:Features/VisualEditorEffects Visual Editor Effects] ||
|| Var tree           || see in [wiki:Features/Outline Outline] ||
|| Code browser       || see in [wiki:Features/Outline Outline] ||
|| Debugger           || [wiki:Features/Perl5Debugger Perl 5 Debugger] ||
|| Stepping           || See Debugger ||
|| Breakpoints        || See Debugger ||
|| Watches            || See Debugger ||
|| Var evaluation     || See Debugger ||
|| Stack module       || See Debugger ||
|| [wiki:Features/Bookmarks Bookmarks]    || yes ||
|| Suggest & complete || see #67 but add more ||
|| [wiki:Features/IdentifyCommonErrors Identify errors] || also [wiki:Features/SyntaxChecking Syntax Checking] ||
|| [wiki:Features/REPL Interactive shell]  || ||
|| [wiki:Features/CodeSnippets Code snippets]  || yes ||
|| [wiki:Features/ProjectManagement Project] || ||
|| Control version    ||  [wiki:Features/IntegratedVersionControl Integrated Version Control] ||
|| Multi document     || yes ||
|| [wiki:Features/SplitView Split View] || ||
|| IME                || Multilingual Input Method Editor ||
|| [wiki:Features/HelpViewer Docs & Help viewer] || yes ||
|| [wiki:Features/CPANModuleInstaller Module installer]   || ||
|| WEB                || [wiki:Features/IntegratedWebServer Integrated Web Server] ||
|| FTP                || #12 Read and write over ftp protocol (modify the program at remote server) ||
|| HTML export        || #112 To export the source of program with the syntax colouring. ||
|| Linux              || [wiki:Download] ||
|| BSD                || [wiki:DownloadFreeBSD] and [wiki:DownloadNetBSD] ||
|| Mac OS X           || [wiki:DownloadMacOSX] ||
|| Solaris            || ||
|| Windows            || [wiki:DownloadWindows] ||


== From Perl Needs Better Tools ==

[http://www.eigenstate.net/perl_tools/ Perl Needs Better Tools] by Matisse Enzer 

||'''Feature'''                                                    || '''Status or link to ticket''' ||
||[wiki:Features/SyntaxHighlighting Syntax coloring]               || ||
||[wiki:Features/SyntaxChecking Real Time Syntax Checking] || ||
||[wiki:Features/IntegratedVersionControl Version control integration] || ||
||Code-assist editor                                               ||  ||
||Excellent refactoring support                                    || [wiki:Features/RefactoringPerl5 Refactoring Perl 5 code] ||
||Tree view of source files and resources                          ||  ||
||Support for creating and running unit tests                      || [wiki:Features/AutomatedBuildAndTest Automated Build and Test] ||
||Language-specific help                                           || [wiki:Features/ContextSensitiveHelp Context Sensitive Help] ||
||Run your code under a debugger with real-time display of results ||  ||
||Automatic reformatting of code.                                  ||  ||
||handling of multiple languages                                   ||  ||
||Automated build and test                                         ||  ||


== From Enlightened Perl ==

Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/
to see how Padre can provide a GUI for their efforts.
Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module
and see how Padre can provide a GUI (via a plugin or in core Padre) for them.

== From Competitors ==

See the [wiki:'Competitor Analysis']

== From Eclipse EPIC ==

[http://www.eclipse.org/cdt/ Eclipse CDT - C/C++ Development Tooling]
[http://www.eclipse.org/jdt/ Eclipse Java development tools (JDT)]

Some of these features are only relevant (or possible) for C/C++ or Java

||'''Feature'''                                            || '''Status or link to ticket''' ||
||Find all references                                      || ||
||Find definition/declaration/usage                        || ||
||Type Hierarchy                                           || ||
||Call Hierarchy (or call graph)                           || ||
||[wiki:Features/RefactoringPerl5 Refactoring]             || ||
||[wiki:Features/SourceNavigation Source navigation]       || ||
||[wiki:Features/SyntaxHighlighting Syntax highlighting]   || ||
||Code folding                                             || under [wiki:Features/VisualEditorEffects Visual Editor Effects] ||
||Hyperlink navigation                                     || ||
||Include browser                                          || ||
||Project creation                                         || [wiki:Features/ProjectSkeletonGeneration Project Skeleton Generation] ||
||Managed build for various toolchains                     || ||
||Standard make build                                      || Via Run menu ||
||Macro definition browser                                 || ||
||Code generation                                          || partly (File -> New...) ||
||Visual debugging tools                                   || ||
||Memory, registers, and disassembly viewers               || ||


