On this page we try to design how Padre should handle various needs of programming languages
and file types.
Every type can have several tools for syntax highlighting, for execution, help, etc
Types
Syntax highlighting can be by
* Scintilla (STC)
* Kate plugin (which is just a few regular expressions in Perl 5)
* Parrot parse tree
* Other
Execution
* Various implementations
Perl 5
Syntax highlighting
* STC - old but fast
* PPI - slow but quite good, can provide parse tree
* Kate - (some Perl 5 regexes)
* Parrot - Not available
Execution
* There can be several different versions of the perl compiler installed
Perl 6
Syntax highlighting
* by STD.pm (in Padre::Plugin:Perl6)
* simple vi-style regex (will be in Padre::Plugin::Perl6 or separately to reduce the need for prereqs?) (Kate integration)
* by Parrot (subclass if Padre::Plugin::Parrot?)
* * Embedded Parrot
* * externally executed Parrot
* * Installed / development version of Parrot
Execution
Can have various implementations:
* Parrot/Rakudo
* Pugs ?
* ??
Can be installed/development etc.
Embedding
* by Parrot + Rakudo + Parrot::Interpreter (Parrot built, languages/perl6 built, Parrot::Embed built)
PIR/PASM
Syntax highlighting
* by simple regex
* by Parrot
Execution
* by Parrot
Embedding
* by Parrot + Parrot::Interpreter
Python
It has several implementations
* Pynie
PHP
* Several versions of the official PHP
* Pipp