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       You can start new files File/New ("Ctrl+N") or open existing files
26       File/Open ("Ctrl+O").
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       By default Padre uses the same Perl interpreter for executing code that
33       it uses for itself but this will be configurable later.
34

FEATURES

36       Instead of duplicating all the text here, let us point you to the web
37       site of Padre <http://padre.perlide.org/> where we keep a list of
38       existing and planned features. We are creating detailed explanation
39       about every feature in our wiki:
40       <http://padre.perlide.org/trac/wiki/Features/>
41

DESCRIPTION

43   Configuration
44       The application maintains its configuration information in a directory
45       called .padre.
46
47   Other
48       On Strawberry Perl you can associate .pl file extension with
49       C:\strawberry\perl\bin\wxperl and then you can start double clicking on
50       the application. It should work...
51
52       Run This ("F5") - run the current buffer with the current Perl this
53       currently only works with files with .pl extensions.
54
55       Run Any ("Ctrl+F5") - run any external application
56
57       First time it will prompt you to a command line that you have to type
58       in such as
59
60         perl /full/path/to/my/script.pl
61
62       ...then it will execute this every time you press "Ctrl+F5" or the menu
63       option. Currently "Ctrl+F5" does not save any file.  (This will be
64       added later.)
65
66       You can edit the command line using the Run/Setup menu item.
67
68       Please Note that you can use $ENV{PADRE_VERSION} to detect whether the
69       script is running inside Padre or not.
70
71   Navigation
72         Ctrl+2          Quick Fix
73         Ctrl+.          Next Problem
74
75         Ctrl+H opens a help window where you can see the documentation of
76         any Perl module. Just use open (in the help window) and type in the name
77         of a module.
78
79         Ctrl+Shift+H Highlight the name of a module in the editor and then
80         press Ctrl+Shift+H. It will open the help window for the module
81         whose name was highlighted.
82
83         In the help window you can also start typing the name of a module. When the
84         list of the matching possible modules is small enough you'll be able
85         to open the drop-down list and select the name.
86         The "small enough" is controlled by two configuration options in the
87         Edit/Setup menu:
88
89         Max Number of modules
90         Min Number of modules
91
92         This feature only works after you have indexed all the modules
93         on your computer. Indexing is currently done by running the following command:
94
95         padre --index
96

SQLite

98       Padre is using an SQLite database (~/.padre/config.db) for two things.
99       Part of the preferences/configuration information is kept there and it
100       is used for the POD reader.
101

Documentation POD reader

103       Padre currently can index (the names of) all the modules on your system
104       and it was planned to have a search capability for
105       modules/functions/etc.
106

Plug-ins

108       There is a highly experimental but quite simple plug-in system.
109
110       A plug-in is a module in the "Padre::Plugin::*" namespace.
111
112       At start-up time Padre looks for all such modules in @INC and in its
113       own private directory and loads them.
114
115       Every plug-in must be a subclass of Padre::Plugin and follow the rules
116       defined in the Padre::Plugin API documentation.
117
118       See also Padre::PluginManager and Padre::PluginBuilder
119
120       While Padre is running there is a menu option to show the plug-in
121       configuration window that shows the list of all the plug-ins.
122
123       TO DO: What to do if a newer version of the same plug-in was installed?
124
125       TO DO: What to do if a module was removed ? Shall we keep its data in
126       the configuration file or remove it?
127
128       TO DO: Padre should offer an easy but simple way for plug-in authors to
129       declare configuration variables and automatically generate both
130       configuration file and configuration dialog. Padre should also allow
131       for full customization of both for those more advanced in Wx.
132
133   Tab and space conversion
134       Tab to Space and Space to Tab conversions ask the number of spaces each
135       tab should substitute. It currently works everywhere.  We probably
136       should add a mode to operate only at the beginning of the lines or
137       better yet only at the indentation levels.
138
139       Delete All Ending space does just what it says.
140
141       Delete Leading Space will ask How many leading spaces and act
142       accordingly.
143

Code layout

145       Padre.pm
146           is the main module.
147
148       Padre::Autosave
149           describes some of our plans for an auto-save mechanism.  It is not
150           implemented yet. (There is also some description elsewhere in this
151           document).
152
153       Padre::Config
154           reads/writes the configuration files.
155
156           There is an SQLite database and a YAML file to keep various pieces
157           of information.  The database holds host related configuration
158           values while the YAML file holds personal configuration options.
159
160           The SQLite database holds the list of modules available on the
161           system.  It will also contain indexing of the documentation Looking
162           at the "" entries of modules List of functions
163
164       Padre::DB
165           The SQLite database abstraction for storing Padre's internal data.
166
167       Padre::Document
168           is an abstraction class to deal with a single document.
169
170           Padre::Document::PASM
171           Padre::Document::PIR
172           Padre::Document::Perl
173       Padre::PluginBuilder
174       Padre::PluginManager
175           locates and loads the plug-ins.
176
177       Padre::Plugin
178           Should be the base class of all plug-ins.
179
180       Padre::Pod2HTML
181       Padre::PPI
182       Padre::Project
183           Abstract class understanding what a project is.
184
185       Padre::Project::Perl
186           Is a Perl specific project. These are work in process.  Not yet
187           used.
188
189       Padre::TaskManager
190           Managing background tasks.
191
192       Padre::Task
193           Background tasks.
194
195       Padre::Util
196           Various utility functions.
197
198   Wx GUI
199       The "Padre::Wx::*" namespace is supposed to deal with all the Wx
200       related code.
201
202       Padre::Wx
203       Padre::Wx::App
204           is the Wx::App subclass. Does not really do much.
205
206       Padre::Wx::Dialog::Bookmarks
207       Padre::Wx::Dialog::Find
208           This is the main Find dialog
209
210       Padre::Wx::Dialog::FindFast
211           This is the newer Firefox like inline search box.
212
213       Padre::Wx::Dialog::PluginManager
214       Padre::Wx::Dialog::Preferences
215       Padre::Wx::Dialog::Snippets
216       Padre::Wx::FileDropTarget
217           The code for drag and drop
218
219       Padre::Wx::Editor
220           holds an editor text control instance (one for each buffer/file).
221           This is a subclass of Wx::StyledTextCtrl also known as "STC" or
222           Scintilla.
223
224       Padre::Wx::History::ComboBox
225       Padre::Wx::History::TextEntryDialog
226       Padre::Wx::Main
227           This is the main window, most of the code is currently there.
228
229       Padre::Wx::Menu
230           handles everything the menu should know and do.
231
232       Padre::Wx::Output
233           the output window at the bottom of the editor displaying the output
234           of running code using "F5".
235
236       Padre::Wx::HtmlWindow
237       Padre::Wx::Frame::POD
238       Padre::Wx::Popup
239           not in use.
240
241       Padre::Wx::Printout
242           Implementing the printing capability of Padre.
243
244       Padre::Wx::SyntaxCheck
245           Implementing the continuous syntax check of Perl code.
246
247       Padre::Wx::ToolBar
248           handles everything the toolbar should know and do.
249

BUGS

251       Before submitting a bug please talk to the Padre developers on IRC:
252       #padre on irc.perl.org. You can use this web based IRC client:
253       <http://padre.perlide.org/irc.html?channel=padre>
254
255       Please submit your bugs at <http://padre.perlide.org/trac/>
256

SUPPORT

258       I hope the <http://www.perlmonks.org/> will be ready to take upon
259       themselves supporting this application.
260
261       See also <http://padre.perlide.org/contact.html>
262
264       Copyright 2008-2011 The Padre development team as listed in Padre.pm.
265       <http://padre.perlide.org/>
266

LICENSE

268       This program is free software; you can redistribute it and/or modify it
269       under the same terms as Perl 5 itself.
270

DISCLAIMER OF WARRANTY

272       BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
273       FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT
274       WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER
275       PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND,
276       EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
277       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
278       ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
279       YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
280       NECESSARY SERVICING, REPAIR, OR CORRECTION.
281
282       IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
283       WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
284       REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE
285       TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR
286       CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
287       SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
288       RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
289       FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
290       SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
291       DAMAGES.
292

ACKNOWLEDGEMENTS

294   The Padre development team
295       The developers of Padre in alphabetical order:
296
297       Aaron Trevena (TEEJAY)
298
299       Ahmad Zawawi أحمد محمد زواوي (AZAWAWI)
300
301       Adam Kennedy (ADAMK) <adamk@cpan.org>
302
303       Alexandr Ciornii (CHORNY)
304
305       Blake Willmarth (BLAKEW)
306
307       Breno G. de Oliveira (GARU)
308
309       Brian Cassidy (BRICAS)
310
311       Burak Gürsoy (BURAK) <burak@cpan.org>
312
313       Cezary Morga (THEREK) <cm@therek.net>
314
315       Chris Dolan (CHRISDOLAN)
316
317       Claudio Ramirez (NXADM) <nxadm@cpan.org>
318
319       Fayland Lam (FAYLAND) <fayland@gmail.com>
320
321       Gabriel Vieira (GABRIELMAD)
322
323       Gábor Szabó - גאבור סבו (SZABGAB) <szabgab@gmail.com>
324
325       Heiko Jansen (HJANSEN) <heiko_jansen@web.de>
326
327       Jérôme Quelin (JQUELIN) <jquelin@cpan.org>
328
329       Kaare Rasmussen (KAARE) <kaare@cpan.org>
330
331       Keedi Kim - 김도형 (KEEDI)
332
333       Kenichi Ishigaki - 石垣憲一 (ISHIGAKI) <ishigaki@cpan.org>
334
335       Mark Grimes <mgrimes@cpan.org>
336
337       Max Maischein (CORION)
338
339       Olivier Mengué (DOLMEN)
340
341       Patrick Donelan (PDONELAN) <pat@patspam.com>
342
343       Paweł Murias (PMURIAS)
344
345       Petar Shangov (PSHANGOV)
346
347       Ryan Niebur (RSN) <rsn@cpan.org>
348
349       Sebastian Willing (SEWI)
350
351       Steffen Müller (TSEE) <smueller@cpan.org>
352
353       Zeno Gantner (ZENOG)
354
355   Translators
356       Arabic
357
358       Ahmad M. Zawawi - أحمد محمد زواوي (AZAWAWI)
359
360       Chinese (Simplified)
361
362       Fayland Lam (FAYLAND)
363
364       Chinese (Traditional)
365
366       BlueT - Matthew Lien - 練喆明 (BLUET) <bluet@cpan.org>
367
368       Chuanren Wu
369
370       Dutch
371
372       Dirk De Nijs (ddn123456)
373
374       English
375
376       Everyone on the team
377
378       French
379
380       Jérôme Quelin (JQUELIN)
381
382       Olivier Mengué (DOLMEN)
383
384       German
385
386       Heiko Jansen (HJANSEN)
387
388       Sebastian Willing (SEWI)
389
390       Zeno Gantner (ZENOG)
391
392       Hebrew
393
394       Omer Zak  - עומר זק
395
396       Shlomi Fish  - שלומי פיש (SHLOMIF)
397
398       Amir E. Aharoni - אמיר א. אהרוני
399
400       Hungarian
401
402       György Pásztor (GYU)
403
404       Italian
405
406       Simone Blandino (SBLANDIN)
407
408       Japanese
409
410       Kenichi Ishigaki - 石垣憲一 (ISHIGAKI)
411
412       Korean
413
414       Keedi Kim - 김도형 (KEEDI)
415
416       Russian
417
418       Andrew Shitov
419
420       Polish
421
422       Cezary Morga (THEREK)
423
424       Portuguese (Brazilian)
425
426       Breno G. de Oliveira (GARU)
427
428       Spanish
429
430       Paco Alguacil (PacoLinux)
431
432       Enrique Nell (ENELL)
433
434       Czech
435
436       Marcela Mašláňová (mmaslano)
437
438       Norwegian
439
440       Kjetil Skotheim (KJETIL)
441
442       Turkish
443
444       Burak Gürsoy (BURAK) <burak@cpan.org>
445
446   Thanks
447       Mattia Barbon for providing wxPerl.  Part of the code was copied from
448       his Wx::Demo application.
449
450       Herbert Breunung for letting me work on Kephra.
451
452       Octavian Rasnita for early testing and bug reports.
453
454       Tatsuhiko Miyagawa for consulting on our I18N and L10N support.
455
456
457
458perl v5.30.0                      2019-07-26                          Padre(3)
Impressum