| 1 | | == Description == |
| | 1 | = Syntax checking = |
| | 2 | |
| | 3 | Depending on a corresponding support in the respective '''Padre::Document::Language''' class, Padre supports real time syntax checking capabilities. |
| | 4 | |
| | 5 | Syntax errors or warnings are displayed in a side bar (usually at the bottom of the Padre window). By double-clicking a list entry you can navigate to the position in the file. |
| | 6 | |
| | 7 | Additionally, there is a symbol column on the left side of the editor where colored symbols mark the code lines with problems. |
| | 8 | |
| | 9 | == WARNING NOTE == |
| | 10 | |
| | 11 | Syntax checking for Perl5 documents comes bundled with Padre. It is implemented using '''perl -c'''. This means that parts of the code actually get executed (e.g. '''BEGIN''' blocks). Malicious software might used this fact to damage your system |
| | 12 | {{{ |
| | 13 | BEGIN { |
| | 14 | system('rm -rf ~') |
| | 15 | } |
| | 16 | }}} |
| | 17 | or suck up your resources |
| | 18 | {{{ |
| | 19 | BEGIN { |
| | 20 | while(1) { } |
| | 21 | } |
| | 22 | }}} |
| | 23 | |
| | 24 | Syntax checking is currently disabled by default and has to be enabled manually after every start of Padre. This somewhat increases security when doing '''padre some_unknown_file.pl'''. |
| | 25 | However, it does not protect you when you open a file from within Padre while syntax checking is turned on. |
| | 26 | The most secure solution would require a really fast non-executing syntax checker which unfortunately is currently not available. |
| | 27 | |
| | 28 | |