1Padre(3) User Contributed Perl Documentation Padre(3)
2
3
4
6 Padre - Perl Application Development and Refactoring Environment
7
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
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
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
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
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
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
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
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
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
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
268 This program is free software; you can redistribute it and/or modify it
269 under the same terms as Perl 5 itself.
270
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
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.28.0 2011-08-16 Padre(3)