1Padre(3)              User Contributed Perl Documentation             Padre(3)
2
3
4

NAME

6       Padre - Perl Application Development and Refactoring Environment
7

SYNOPSIS

9       Padre is a text editor aimed to be an IDE for Perl.
10
11       After installation you should be able to just type in
12
13         padre
14
15       and get the editor working.
16
17       Padre development started in June 2008 and made a lot of progress but
18       there are still lots of missing features and the development is still
19       very fast.
20

Getting Started

22       After installing Padre you can start it by typing padre on the command
23       line.  On Windows that would be Start/Run padre.bat
24
25       (TO DO) By default Padre starts with an editor containing a simple Perl
26       script and instructions.
27
28       You can edit the file and save it using File/Save ("Ctrl+S").
29
30       You can run the script by pressing Run/Run Script ("F5")
31
32       You can start new files File/New ("Ctrl+N") or open existing files
33       File/Open ("Ctrl+O").
34
35       By default Padre uses the same Perl interpreter for executing code that
36       it uses for itself but this will be configurable later.
37

FEATURES

39       Instead of duplicating all the text here, let me point you to the web
40       site of Padre <http://padre.perlide.org/> where we keep a list of
41       existing and planned features.
42

DESCRIPTION

44   Configuration
45       The application maintains its configuration information in a directory
46       called .padre.
47
48   Files operations
49       File/New creates a new empty file. By default Padre assumes this is a
50       Perl script.  (TO DO later this default will be configurable).
51
52       File/Open allows you to browse for a file and select it for opening.
53
54       File/Open Selection, ("Ctrl+Shift+O") if there is a selected text this
55       will try to locate files that match the selection. If the selection
56       looks like a path Padre will try to open that path either absolute or
57       relative.  If it looks like a module name (Some::Thing) it will try to
58       find the appropriate file Some/Thing.pm in @INC and open it.  currently
59       this feature opens the first file encountered.  (TO DO it should find
60       all the possibilities and if there are multiple hits offer the user to
61       choose. This will be especially important if we are working on a module
62       that is also already installed. Padre might find the installed version
63       first while we might want to open the development version.)
64
65       (TO DO: when the file is not of Perl type we should have other ways to
66       recognize files from internal naming and have paths to search.
67       Surprise, not every language uses @INC.)
68
69       File/Close - checks if the file is saved, if it is closes the current
70       tab.
71
72       File/Close All - closes all opened files (in case they are not saved
73       yet ask for instructions).
74
75       File/Close All but Current - closes all opened files except for the
76       currently being edited.
77
78       File/Reload File - Reloads the file. This is interesting if you either
79       made changes and want to discard them and/or if the file has changed on
80       the disk. If there are unsaved changes Padre will ask you if you really
81       want to throw them away. (TO DO: make a backup of the file before
82       discarding it)
83
84       File/Save "Ctrl+S" - save the current file. If the buffer is not yet
85       saved and has no file name associated with it, Padre will ask you for a
86       file name.
87
88       File/Save As - Offer the user to select a new file name and save the
89       content under that name.
90
91       File/Save All - Save all the currently opened files.
92
93       File/Convert - Convert line endings to Windows, Unix or Mac Classic
94       style.
95
96       Files/Recent Files - a list of recently opened files to open them
97       easily.  (TO DO: update the list when we open a file, not only when
98       opening padre) (TO DO: allow the user to configure size of history)
99
100       File/Doc Stats - just random statistics about the current document.
101       (TO DO: If you miss anything important let us know!)
102
103       File/Quit - Exits Padre.
104
105   Simple editing
106       The simple editing features (should) provide the expected behavior for
107       Windows users.
108
109       Edit/Undo "Ctrl+Z"
110
111       Edit/Redo
112
113       Edit/Select All "Ctrl+A", select all the characters in the current
114       document
115
116       Edit/Copy "Ctrl+C"
117
118       Edit/Cut "Ctrl+X"
119
120       Edit/Paste "Ctrl+V"
121
122       (TO DO What is "Ctrl+D" ?, duplicate the current line?)
123
124   Mouse right click
125       Click on the right button of the mouse brings up a context sensitive
126       menu.  It provides the basic editing functions and will provide other
127       context sensitive options.
128
129   Projects (TO DO)
130       Padre will have the notion of a Perl project. As we would like to make
131       things as natural as possible for the Perl developer and we think the
132       distribution methods used for "CPAN" module are a good way to handle
133       any project Padre will understand a project as a "CPAN" module. This
134       does not mean that your project needs to end up on "CPAN" of course.
135       But if your projects directory structure follows that of the modules on
136       "CPAN", Padre will be automatically recognize it.
137
138   Module::Starter
139       As a first step in the direction of supporting "CPAN"-style Perl
140       projects we integrated into Padre the use of Module::Starter
141
142       File/New.../Perl Distribution will bring up a dialog box where you can
143       select some of the parameters your new project has such as Name of the
144       Project (e.g. My::Widgets), Author - that is probably your name, e-mail
145       (your e-mail).
146
147       Builder is the tool that you project is going to use to package itself
148       and then your user will use to install the project.  Currently
149       Module::Build and ExtUtils::MakeMaker are supported.  (TO DO add
150       Module::Install as well).
151
152       License is one of the keywords currently listed in the META.yml spec of
153       Module::Build. (TO DO: update the list or make it dynamic)
154
155       Once you click OK, Module::Starter will create a new directory called
156       My-Widgets in the parent directory you selected in the last field.
157
158   Other
159       On Strawberry Perl you can associate .pl file extension with
160       C:\strawberry\perl\bin\wxperl and then you can start double clicking on
161       the application. It should work...
162
163       Run This ("F5") - run the current buffer with the current Perl this
164       currently only works with files with .pl extensions.
165
166       Run Any ("Ctrl+F5") - run any external application
167
168       First time it will prompt you to a command line that you have to type
169       in such as
170
171         perl /full/path/to/my/script.pl
172
173       ...then it will execute this every time you press "Ctrl+F5" or the menu
174       option. Currently "Ctrl+F5" does not save any file.  (This will be
175       added later.)
176
177       You can edit the command line using the Run/Setup menu item.
178
179       Please Note that you can use $ENV{PADRE_VERSION} to detect whether the
180       script is running inside Padre or not.
181
182   Bookmarks
183       View/Set Bookmark ("Ctrl+B") brings up a window with a predefined text
184       containing the file name and line number (TO DO should be the content
185       of the current line).
186
187       View/Go to Bookmark ("Ctrl+Shift+B") brings up a window with the list
188       of available bookmarks. You can select one and press OK to jump to that
189       location. If the file where the bookmark belongs to is not open
190       currently, it will be opened and the cursor will jump to the desired
191       place.
192
193       In both cases while the window is open you can select existing
194       bookmarks and press the Delete button to remove the selected one or
195       press Delete All to remove all the existing bookmarks.
196
197   Navigation
198         Ctrl+G          Go to Line
199         Ctrl+1          Matching Brace
200         Ctrl+2          Quick Fix
201         Ctrl+.          Next Problem
202         Ctrl+P          Word Auto-completion
203         Alt+N           Nth Pane
204         Ctrl+Tab        Next Pane
205         Ctrl+Shift+Tab  Previous Pane
206         Alt+S           Jump to list of subs window
207
208         Ctrl+M Ctrl+Shift+M  comment/uncomment selected lines of code
209
210         Ctrl+H opens a help window where you can see the documentation of
211         any Perl module. Just use open (in the help window) and type in the name
212         of a module.
213
214         Ctrl+Shift+H Highlight the name of a module in the editor and then
215         press Ctrl+Shift+H. It will open the help window for the module
216         whose name was highlighted.
217
218         In the help window you can also start typing the name of a module. When the
219         list of the matching possible modules is small enough you'll be able
220         to open the drop-down list and select the name.
221         The "small enough" is controlled by two configuration options in the
222         Edit/Setup menu:
223
224         Max Number of modules
225         Min Number of modules
226
227         This feature only works after you have indexed all the modules
228         on your computer. Indexing is currently done by running the following command:
229
230         padre --index
231
232   Rectangular Text Selection
233       Simple text editors usually only allow you to select contiguous lines
234       of text with your mouse.  Sometimes, however, it is handy to be able to
235       select a rectangular area of text for more precise
236       cutting/copying/pasting or performing search/replace on. You can select
237       a rectangular area in Padre by holding down "Ctrl+Alt" whilst selecting
238       text with your mouse.
239
240       For example, imagine you have the following nicely formatted hash
241       assignment in a Perl source file:
242
243         my %hash = (
244             key1 => 'value1',
245             key2 => 'value2',
246             key3 => 'value3',
247        );
248
249       With a rectangular text selection you can select only the keys, only
250       the values, etc..
251
252   Syntax highlighting
253       Padre is using Wx (aka wxPerl), wxWidgets for GUI and Scintilla for the
254       editor.  Scintilla provides very good syntax highlighting for many
255       languages but Padre is still bound by the version of Scintilla
256       included.
257
258       The share/styles/default.yml file is the mapping between the Scintilla
259       defined constants for various syntactical elements of each language and
260       the "RGB" values of the color to be used to highlight them.
261
262       Adding new syntax highlighting
263
264       To set up a custom syntax highlighting scheme, you create a .yml file
265       that defines the mappings described above. The easiest way to create
266       your own scheme is probably to copy an existing .yml file (for
267       instance, default.yml) from the share/styles/ folder, put it in
268       ~/.padre/styles, and then modify it. Padre checks this folder on start-
269       up and adds any styles in the .yml files there to the "View -> Style"
270       menu.
271
272       TO DO does this stuff below really belong here?
273
274       Need to define constants in Padre::Util to be in the "Padre::Constant"
275       namespace.
276
277       Need to add the color mapping to share/styles/default.yml
278
279       Need to implement the "Padre::Document::Language" class.
280
281       Need to define the MIME type mapping in Padre::Document
282
283       For examples see Padre::Document::PASM, Padre::Document::PIR,
284       Padre::Document::Perl.
285
286   Syntax checking
287       Depending on a corresponding support in the respective
288       "Padre::Document::Language" class, Padre supports real time syntax
289       checking capabilities:
290
291       ·   Syntax errors or warnings are displayed in a side bar (usually at
292           the bottom of the Padre window). By double-clicking a list entry
293           you can navigate to the position in the file.
294
295       ·   Additionally, there is a symbol column on the left side of the
296           editor where colored symbols mark the code lines with problems.
297
298       WARNING NOTE
299
300       Syntax checking for Perl5 documents comes bundled with Padre. It is
301       implemented using "perl -c". This means that parts of the code actually
302       get executed (e.g.  "BEGIN" blocks). Malicious software might used this
303       fact to damage your system ("BEGIN { system('rm -rf ~') }") or suck up
304       your resources ("BEGIN { while(1) { } }").  Syntax checking is
305       currently disabled by default and has to be enabled manually after
306       every start of Padre. This somewhat increases security when doing
307       "padre some_unknown_file.pl".  However, it does not protect you when
308       you open a file from within Padre while syntax checking is turned on.
309       The most secure solution would require a really fast non-executing
310       syntax checker which unfortunately is currently not available.
311

Preferences

313       There are several types of preferences we can think of.  There are the
314       current view printed preferences such as Show newlines or Show Line
315       numbers and there are the project and file oriented preferences such as
316       the use of tabulators or white space for indentation.
317
318       We would like to achieve that the
319
320       Currently some of the preferences are accessible via the
321       Edit/Preferences menu options, others via the View menu option.
322
323       We have to make sure that when changing the preferences via the GUI it
324       change for the correct things.
325
326       E.g. when changing the Use Tabulators preference it currently applies
327       to all the files open currently or in the future.  It should probably
328       apply to the current file and/or the current project. Such options -
329       when changing them - might even be applied "retroactively". That is
330       when I change the tabulator/space mode of a file or a project it should
331       ask if I want to reflow the file with the new method of indentation?
332
333       On the other hand the "Tabulator display size" is purely a local,
334       editor oriented preference. It should probably apply to all files
335       currently open.
336
337       There are other aspects of preferences as well that might not exactly
338       overlap with the above set:
339
340       The developer might work on the same project on different machines.  In
341       such case some of the personal preferences should apply only only on
342       one computer while others apply in both places.
343
344       In particular if Padre is installed in a Portable Perl it might run on
345       machines with different parameters. Screen size and resolution might be
346       different along other parameters. We would like to make sure the
347       relevant preferences are separated from those that are constant even
348       when moving between computers.
349
350   Editor or view oriented preferences
351       Size and location of windows
352       Show/Hide various windows, Status bar, Toolbar
353       Files recently opened
354       Files that were open last time, cursor location
355       Show newlines
356       Show Line numbers
357       Show indentation guide
358           View/Show Indentation Guide
359
360           When set, Padre will display a thin vertical line at every
361           indentation level on every row with are indented more than one
362           level.
363
364       Highlight indentation guide (TO DO)
365           This should be a separate option available only if the "Show
366           indentation guide" and brace matching is on.
367
368           If "SetHighlightGuide" is set to 8 then when the user reaches one
369           side of a pair of braces the indentation guide - if there is one on
370           column 8 - will be highlighted. (in green).
371
372           As I understand Padre should constantly adjust the
373           "SetHighlightGuide" so that in every block the "correct"
374           indentation guide is highlighted.
375
376       Show Call Tips
377       Tabulator display size
378       Allow experimental features
379           In order to allow the experimental features one needs to manually
380           turn on the experimental flag to 1 in config.yml. As Padre keeps
381           overwriting this file you'll have to make this change with another
382           editor and while Padre is not open.
383
384           The config.yml file is in ~/.padre/ on Linux/Unix and in general in
385           your home directory on Windows. In any case the Help/About box will
386           show you the path of the .padre directory of Padre.
387
388           Once you set the experimental flag when you start Padre you will
389           see a new menu on the right side of the menu bar called
390           Experimental.
391
392       Open file policy
393           What files to open when launching Padre?  nothing, new, those that
394           were open last time?
395
396       Max/Min number of modules to display in POD viewer
397       Auto-indentation
398           Possible values: no/same level/deep
399
400           There are at least two levels of auto-indentation:
401
402           1) when ENTER is pressed indent to exactly the same level as the
403           previous line
404
405           2) if there is an opening brace { on the previous line, indent one
406           level more
407
408       Brace matching
409           When the cursor reaches an opening or closing brace { }, square
410           bracket [ ] or parentheses ( ), Padre automatically highlight the
411           pair of the braces.
412
413           TO DO make this optional, let the user set the color
414
415       Auto-save on/off?
416
417   File and Project oriented preferences
418       Indentation should be by tabulators or spaces
419       In case of using spaces for indentation, the width  of every
420       indentation level
421

Other features

423   Auto-backup (Planned)
424       See Padre::Autosave
425
426       When Padre opens a file it automatically creates a copy of the original
427       in ~/.padre/backup/PATH  where PATH is the same PATH as the full PATH
428       of the file. On Windows the initial drive letter is converted to
429       another subdirectory so c:\dir\file.txt  will be saved as
430       ~/padre/backup/c/dir/file.txt.
431
432       When a new file is created no need for auto-backup.
433
434       When a remote file is opened the backup will probably go to
435       ~/padre/backup_remote/
436
437       Configurable options: on/off
438
439   Auto-save files (Planned)
440       Every N seconds all the files changed since the last auto-save are
441       saved to a temporary place maybe ~/.padre/save.
442
443       When the user closes the file, the auto-saved file is removed.
444
445       Configurable options: on/off, frequency in seconds
446

SQLite

448       Padre is using an SQLite database (~/.padre/config.db) for two things.
449       Part of the preferences/configuration information is kept there and it
450       is used for the POD reader.
451

Documentation POD reader

453       Padre currently can index (the names of) all the modules on your system
454       and it was planned to have a search capability for
455       modules/functions/etc.
456

Plug-ins

458       There is a highly experimental but quite simple plug-in system.
459
460       A plug-in is a module in the "Padre::Plugin::*" namespace.
461
462       At start-up time Padre looks for all such modules in @INC and in its
463       own private directory and loads them.
464
465       Every plug-in must be a subclass of Padre::Plugin and follow the rules
466       defined in the Padre::Plugin API documentation.
467
468       See also Padre::PluginManager and Padre::PluginBuilder
469
470       While Padre is running there is a menu option to show the plug-in
471       configuration window that shows the list of all the plug-ins.
472
473       TO DO: What to do if a newer version of the same plug-in was installed?
474
475       TO DO: What to do if a module was removed ? Shall we keep its data in
476       the configuration file or remove it?
477
478       TO DO: Padre should offer an easy but simple way for plug-in authors to
479       declare configuration variables and automatically generate both
480       configuration file and configuration dialog. Padre should also allow
481       for full customization of both for those more advanced in Wx.
482

Editing tools

484   Case Changes
485       Change the case of the selected text or if there is no selection all
486       the text in the current file.
487
488       Change all characters to upper or lower case
489
490       Change the first character of every word to upper/lower case leaving
491       the rest as they were.
492
493   Tab and space conversion
494       Tab to Space and Space to Tab conversions ask the number of spaces each
495       tab should substitute. It currently works everywhere.  We probably
496       should add a mode to operate only at the beginning of the lines or
497       better yet only at the indentation levels.
498
499       Delete All Ending space does just what it says.
500
501       Delete Leading Space will ask How many leading spaces and act
502       accordingly.
503

Search, Find and Replace

505       (planning)
506
507   Search
508       "Ctrl+F" opens the search window, if something was selected then that
509       is given as the search text.  Otherwise the last search string should
510       be displayed.
511
512       Provide option to search backwards
513
514       Limit action to current block, current subroutine, current file (should
515       be the default) current project, current directory with some file
516       filters.
517
518       When the user presses Find
519
520       1.  We find the first hit and the search window disappears. "F3" jumps
521           to next one.
522
523       2.  The first match is highlighted and focused but the window stays
524           When the user clicks on the Find button again, we jump to the next
525           hit In this case the user must be able to edit the document while
526           the search window is on.
527
528       3.  All the matches are highlighted and we go to the first match,
529           window disappears.  "F3" jumps to next one
530
531       4.  All the matches are highlighted and we go to the first one, window
532           stays open user can edit text
533
534   Find and Replace
535       Find - find the next occurrence
536
537       Replace all - do just that
538
539       Replace - if currently a match is selected then replace it find the
540       next occurrence and select it
541
542   TO DO describe what to do if we have to deal with files that are not in the
543       editor
544       if "Replace all" was pressed then do just that
545          1) without opening editors for the files.
546          2) opening an editor for each file and keep it in unsaved state
547       (sounds crazy having 1000 editors open...)  if Search or Replace is
548       clicked then we might show the next location in the lower pane.  If the
549       user then presses Replace we open the file in an editor window and go
550       on.  If the user presses Search then we show the next occurrence.
551       Opened and edited files will be left in a not saved state.
552

Code layout

554       Padre.pm
555           is the main module.
556
557       Padre::Autosave
558           describes some of our plans for an auto-save mechanism.  It is not
559           implemented yet. (There is also some description elsewhere in this
560           document).
561
562       Padre::Config
563           reads/writes the configuration files.
564
565           There is an SQLite database and a YAML file to keep various pieces
566           of information.  The database holds host related configuration
567           values while the YAML file holds personal configuration options.
568
569           The SQLite database holds the list of modules available on the
570           system.  It will also contain indexing of the documentation Looking
571           at the "" entries of modules List of functions
572
573       Padre::DB
574           The SQLite database abstraction for storing Padre's internal data.
575
576       Padre::Document
577           is an abstraction class to deal with a single document.
578
579           Padre::Document::PASM
580           Padre::Document::PIR
581           Padre::Document::Perl
582       Padre::PluginBuilder
583       Padre::PluginManager
584           locates and loads the plug-ins.
585
586       Plugin
587           Should be the base class of all plug-ins.
588
589       Padre::Pod2HTML
590       Padre::PPI
591       Padre::Project
592           Abstract class understanding what a project is.
593
594       Padre::Project::Perl
595           Is a Perl specific project. These are work in process.  Not yet
596           used.
597
598       Padre::TaskManager
599           Managing background tasks.
600
601       Padre::Task
602           Background tasks.
603
604       Padre::Util
605           Various utility functions.
606
607   Wx GUI
608       The "Padre::Wx::*" namespace is supposed to deal with all the Wx
609       related code. Outside of that the code is not supposed to know about
610       Wx, but currently it still does.
611
612       Padre::Wx
613       Padre::Wx::Ack
614           Implementation of the ack integration in "Edit/Ack" menu item.  It
615           probably should be either under Dialog or moved out to be a plug-
616           in.
617
618       Padre::Wx::App
619           is the Wx::App subclass. Does not really do much.
620
621       Padre::Wx::Dialog
622           is the parent class of all the major dialogs that are all
623           implemented in modules in the "Padre::Wx::Dialog::*" namespace. It
624           is actually a plain subclass of Wx::Perl::Dialog.
625
626           Padre::Wx::Dialog::Bookmarks
627           Padre::Wx::Dialog::Find
628               Current Find and Replace widget.
629
630           Padre::Wx::Dialog::ModuleStart
631               Module::Start integration. Maybe it should be moved to be a
632               plug-in.
633
634           Padre::Wx::Dialog::PluginManager
635           Padre::Wx::Dialog::Preferences
636           Padre::Wx::Dialog::Search
637               This is the newer Firefox like search box. Not yet integrated.
638
639           Padre::Wx::Dialog::Snippets
640       Padre::Wx::FileDropTarget
641           The code for drag and drop
642
643       Padre::Wx::Editor
644           holds an editor text control instance (one for each buffer/file).
645           This is a subclass of Wx::StyledTextCtrl also known as "STC" or
646           Scintilla.
647
648       Padre::Wx::History::ComboBox
649       Padre::Wx::History::TextEntryDialog
650       Padre::Wx::Main
651           This is the main window, most of the code is currently there.
652
653       Padre::Wx::Menu
654           handles everything the menu should know and do.
655
656       Padre::Wx::Output
657           the output window at the bottom of the editor displaying the output
658           of running code using "F5".
659
660       Padre::Wx::HtmlWindow
661       Padre::Wx::PodFrame
662       Padre::Wx::Popup
663           not in use.
664
665       Padre::Wx::Printout
666           Implementing the printing capability of Padre.
667
668       Padre::Wx::SyntaxCheck
669           Implementing the continuous syntax check of Perl code.
670
671       Padre::Wx::ToolBar
672           handles everything the toolbar should know and do.
673

BUGS

675       Please submit your bugs at <http://padre.perlide.org/>
676

SUPPORT

678       I hope the <http://www.perlmonks.org/> will be ready to take upon
679       themselves supporting this application.
680
681       See also <http://padre.perlide.org/>
682
684       Copyright 2008-2010 The Padre development team as listed in Padre.pm.
685       <http://padre.perlide.org/>
686

LICENSE

688       This program is free software; you can redistribute it and/or modify it
689       under the same terms as Perl 5 itself.
690

DISCLAIMER OF WARRANTY

692       BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
693       FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
694       WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
695       PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND,
696       EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
697       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
698       ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
699       YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
700       NECESSARY SERVICING, REPAIR, OR CORRECTION.
701
702       IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
703       WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
704       REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE
705       TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR
706       CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
707       SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
708       RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
709       FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
710       SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
711       DAMAGES.
712

ACKNOWLEDGEMENTS

714   The Padre development team
715       The developers of Padre in alphabetical order:
716
717       Aaron Trevena (TEEJAY)
718
719       Ahmad Zawawi XXXX XXXX XXXXX (AZAWAWI)
720
721       Adam Kennedy (ADAMK) <adamk@cpan.org>
722
723       Breno G. de Oliveira (GARU)
724
725       Brian Cassidy (BRICAS)
726
727       Burak Guersoy (BURAK) <burak@cpan.org>
728
729       Cezary Morga (THEREK) <cm@therek.net>
730
731       Chris Dolan (CHRISDOLAN)
732
733       Claudio Ramirez (CLAUDIO) <padre.claudio@apt-get.be>
734
735       Fayland Lam (FAYLAND) <fayland@gmail.com>
736
737       Gabriel Vieira (GABRIELMAD)
738
739       Gabor Szabo - XXXXX XXX (SZABGAB) <szabgab@gmail.com>
740
741       Heiko Jansen (HJANSEN) <heiko_jansen@web.de>
742
743       Jerome Quelin (JQUELIN) <jquelin@cpan.org>
744
745       Kaare Rasmussen (KAARE) <kaare@cpan.org>
746
747       Keedi Kim - XXX (KEEDI)
748
749       Kenichi Ishigaki - XXXX (ISHIGAKI) <ishigaki@cpan.org>
750
751       Mark Grimes <mgrimes@cpan.org>
752
753       Max Maischein (CORION)
754
755       Olivier Mengue (DOLMEN)
756
757       Patrick Donelan (PDONELAN) <pat@patspam.com>
758
759       PaweX Murias (PMURIAS)
760
761       Petar Shangov (PSHANGOV)
762
763       Ryan Niebur (RSN) <rsn@cpan.org>
764
765       Sebastian Willing (SEWI)
766
767       Steffen Mueller (TSEE) <smueller@cpan.org>
768
769       Zeno Gantner
770
771   Translators
772       Arabic
773
774       Ahmad M. Zawawi - XXXX XXXX XXXXX (AZAWAWI)
775
776       Chinese (Simplified)
777
778       Fayland Lam (FAYLAND)
779
780       Chinese (Traditional)
781
782       BlueT - Matthew Lien - XXX (BLUET) <bluet@cpan.org>
783
784       Chuanren Wu
785
786       Dutch
787
788       Dirk De Nijs (ddn123456)
789
790       English
791
792       Everyone on the team
793
794       French
795
796       Jerome Quelin (JQUELIN)
797
798       Olivier Mengue (DOLMEN)
799
800       German
801
802       Heiko Jansen (HJANSEN)
803
804       Sebastian Willing (SEWI)
805
806       Zeno Gantner
807
808       Hebrew
809
810       Omer Zak  - XXXX XX
811
812       Shlomi Fish  - XXXXX XXX (SHLOMIF)
813
814       Amir E. Aharoni - XXXX X. XXXXXX
815
816       Hungarian
817
818       Gyoergy Pasztor (GYU)
819
820       Italian
821
822       Simone Blandino (SBLANDIN)
823
824       Japanese
825
826       Kenichi Ishigaki - XXXX (ISHIGAKI)
827
828       Korean
829
830       Keedi Kim - XXX (KEEDI)
831
832       Russian
833
834       Andrew Shitov
835
836       Polish
837
838       Cezary Morga (THEREK)
839
840       Portuguese (Brazilian)
841
842       Breno G. de Oliveira (GARU)
843
844       Spanish
845
846       Paco Alguacil (PacoLinux)
847
848       Enrique Nell (ENELL)
849
850       Czech
851
852       Marcela MaXlaXova (mmaslano)
853
854       Norwegian
855
856       Kjetil Skotheim (KJETIL)
857
858       Turkish
859
860       Burak Guersoy (BURAK) <burak@cpan.org>
861
862   Thanks
863       Mattia Barbon for providing wxPerl.  Part of the code was copied from
864       his Wx::Demo application.
865
866       Herbert Breunung for letting me work on Kephra.
867
868       Octavian Rasnita for early testing and bug reports.
869
870       Tatsuhiko Miyagawa for consulting on our I18N and L10N support.
871
872
873
874perl v5.12.1                      2010-06-11                          Padre(3)
Impressum