Text-Trac-0.24/0000755000175000017500000000000013403124170012601 5ustar manwarmanwarText-Trac-0.24/.travis.yml0000644000175000017500000000047513401765156014735 0ustar manwarmanwarbranches: except: - gh-pages language: perl perl: - "5.20" - "5.18" - "5.16" - "5.14" - "5.12" - "5.10" before_install: - cpanm --notest Test::Version - cpanm --notest Test::Pod::Coverage - cpanm --notest Test::Pod - cpanm --notest Test::Code::TidyAll - cpanm --notest Test::Perl::Critic Text-Trac-0.24/t/0000755000175000017500000000000013403124170013044 5ustar manwarmanwarText-Trac-0.24/t/TestTextTrac.pm0000644000175000017500000000071413401765156016017 0ustar manwarmanwarpackage t::TestTextTrac; use strict; use warnings; use Test::Base -Base; use Text::Trac; our @EXPORT = qw( run_tests ); sub run_tests { delimiters('###'); filters { input => 'parse', expected => 'chomp' }; run_is 'input' => 'expected'; } package t::TestTextTrac::Filter; use strict; use warnings; use Test::Base::Filter -Base; my $p = Text::Trac->new( trac_url => 'http://trac.mizzy.org/public/' ); sub parse { $p->parse(@_); return $p->html; } 1; Text-Trac-0.24/t/12-script-noclass-noid.t0000644000175000017500000000201213401765156017354 0ustar manwarmanwaruse strict; use warnings; use Test::More tests => 2; #use Test::Differences qw(eq_or_diff); use File::Temp qw(tempdir); use Path::Tiny qw(path); my $dir = tempdir( CLEANUP => 1 ); subtest usage => sub { plan tests => 1; my $out = qx{$^X script/trac2html}; like $out, qr{Usage: script/trac2html}; #diag $out; }; # padre_download_debian # padre_download_fedora # padre_download_mandriva # padre_download_opensuse # padre_download_ubuntu # padre_download_netbsd # padre_development my @cases = qw( padre_download_freebsd padre_features ); # Ubuntu generates warnings subtest full_html => sub { plan tests => 2 * @cases; foreach my $case (@cases) { my $out = qx{$^X script/trac2html --infile t/corpus/$case.trac --outfile $dir/$case.html --span}; is $out, '', 'out'; my $html_generated = path("$dir/$case.html")->slurp_utf8; my $html_expected = path("t/expected/${case}_noclass_noid.html")->slurp_utf8; #eq_or_diff $html_generated, $html_expected, 'Mandriva'; is $html_generated, $html_expected, $case; } }; Text-Trac-0.24/t/08-regression.t0000644000175000017500000000053513401765156015656 0ustar manwarmanwaruse strict; use warnings; use t::TestTextTrac; run_tests; __DATA__ ### regression test 1 --- input [http://shibuya.pm.org/blosxom/techtalks/200610.html Shibuya.pm ¥Æ¥¯¥Ë¥«¥ë¥È¡¼¥¯ #7] --- expected

Shibuya.pm ¥Æ¥¯¥Ë¥«¥ë¥È¡¼¥¯ #7

Text-Trac-0.24/t/01-text-trac.t0000644000175000017500000001534013401765156015402 0ustar manwarmanwaruse strict; use warnings; use t::TestTextTrac; run_tests; __DATA__ ### h1 test --- input = heading 1 = --- expected

heading 1

### h2 test< --- input == heading 2 == --- expected

heading 2

### h3 test --- input === heading 3 === --- expected

heading 3

### h4 test --- input ==== heading 4 ==== --- expected

heading 4

### h5 test --- input ===== heading 5 ===== --- expected
heading 5
### bold test --- input '''bold''' '''bold''' --- expected

bold bold

### italic test --- input ''italic'' ''italic'' --- expected

italic italic

### bolditalic test --- input '''''bolditalic''''' '''''bolditalic''''' --- expected

bolditalic bolditalic

### underline test --- input __underline__ __underline__ --- expected

underline underline

### monospace test --- input `monospace` {{{monospace}}} --- expected

monospace monospace

### strike test --- input ~~strike~~ ~~strike~~ --- expected

strike strike

### sup test --- input ^sup^ ^sup^ --- expected

sup sup

### sub test --- input ,,sub,, ,,sub,, --- expected

sub sub

### br test --- input line1[[BR]]line2 --- expected

line1
line2

### p test --- input test test --- expected

test test

### ul test --- input * list 1-1 * list 1-2 * list 2-1 * list 2-2 --- expected ### ol test --- input 1. list 1-1 1. list 1-2 a. list a-1 a. list a-2 --- expected
  1. list 1-1
  2. list 1-2
    1. list a-1
    2. list a-2
### blockquote test --- input This text is a quote from someone else. --- expected

This text is a quote from someone else.

### blockquote2 test --- input Ask not what your country can do for you. Ask what you can do for your country. --John F. Kennedy --- expected

Ask not what your country can do for you. Ask what you can do for your country.

--John F. Kennedy

### pre test --- input {{{ This is pre-formatted text. This also pre-formatted text. }}} --- expected
  This is pre-formatted text.
  This also pre-formatted text.
### table test --- input ||Cell 1||Cell 2||Cell 3|| ||Cell 4||Cell 5||Cell 6|| --- expected
Cell 1Cell 2Cell 3
Cell 4Cell 5Cell 6
### hr test --- input line1 ---- line2 --- expected

line1


line2

### dl test --- input title1:: content 1-1 content 1-2 title2:: content 2-1 content 2-2 content 2-3 --- expected
title1
content 1-1 content 1-2
title2
content 2-1 content 2-2 content 2-3
### autolink test --- input http://mizzy.org/ [http://mizzy.org/ Title] --- expected

http://mizzy.org/ Title

### auto image link test --- input http://mizzy.org/test.png [http://mizzy.org/test.png Image] --- expected

http://mizzy.org/test.png Image

### ul node with single space --- input * indent with * single space * sublist with * two spaces --- expected ### ul node with double space --- input * indent with * two spaces * sublist with * two spaces --- expected ### ol node with single space --- input 1. indent with 1. single space a. sublist with a. two spaces --- expected
  1. indent with
  2. single space
    1. sublist with
    2. two spaces
### ol node with double space --- input 1. indent with 1. two spaces a. sublist with a. two spaces --- expected
  1. indent with
  2. two spaces
    1. sublist with
    2. two spaces
### dl node with single space --- input title1:: indent title single space title2:: indent content double space --- expected
title1
indent title single space
title2
indent content double space
### dl node with double space --- input title1:: indent title double space title2:: indent content double space --- expected
title1
indent title double space
title2
indent content double space
### unknown short link --- input unknown:target --- expected

unknown:target

### unknown long link --- input [unknown:target label] --- expected

[unknown:target label]

### escape HTML meta-characters --- input foo baz. foo '''bar''' baz. * foo bar. * foo '''bar''' baz. 1. foo bar. 1. foo '''bar''' baz. ||foo||||'''baz'''|| {{{ foo baz. foo '''bar''' baz. }}} --- expected

foo <bar> baz. foo bar baz.

  • foo <bar> bar.
  • foo bar baz.
  1. foo <bar> bar.
  2. foo bar baz.
foo<bar>baz
foo <bar> baz.
foo '''bar''' baz.
### citation link --- input >> Someone's original text >> Someone's original text >> Someone's original text > Someone else's reply text > Someone else's reply text My reply text >> Someone's original text My reply text --- expected

Someone's original text Someone's original text Someone's original text

Someone else's reply text Someone else's reply text

My reply text

Someone's original text

My reply text

#### List item #--- input #* First #* Second #--- expected #
    #
  • First
  • #
  • Second
  • #
# #### Image #--- input #[[Image(cool_diff_box.png)]] #--- expected # Text-Trac-0.24/t/02-macros.t0000644000175000017500000000126613401765156014756 0ustar manwarmanwaruse strict; use warnings; use t::TestTextTrac; run_tests; __DATA__ ### macro with no arguments --- input [[HelloWorld]] --- expected

Hello World, args =

### macro with quoted arguments --- input [[HelloWorld( "one, one", "two, two", 'three, three' )]] --- expected

Hello World, args = one, one, two, two, three, three

### macro with embedded terminators --- input [[HelloWorld( func(arg), ]] )]] --- expected

Hello World, args = func(arg), ]]

### macros with extra ws aren't valid --- input [[ HelloWorld(foo) ]] --- expected

[[ HelloWorld(foo) ]]

### unknown macro doesn't die --- input [[TheUnknownMacro]] --- expected

[[TheUnknownMacro]]

Text-Trac-0.24/t/00-load.t0000644000175000017500000000024213401765156014400 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::More tests => 1; BEGIN { use_ok('Text::Trac'); } diag("Testing Text::Trac $Text::Trac::VERSION, Perl $], $^X"); Text-Trac-0.24/t/11-script-noclass.t0000644000175000017500000000200313401765156016424 0ustar manwarmanwaruse strict; use warnings; use Test::More tests => 2; #use Test::Differences qw(eq_or_diff); use File::Temp qw(tempdir); use Path::Tiny qw(path); my $dir = tempdir( CLEANUP => 1 ); subtest usage => sub { plan tests => 1; my $out = qx{$^X script/trac2html}; like $out, qr{Usage: script/trac2html}; #diag $out; }; my @cases = qw( padre_download_debian padre_download_fedora padre_download_mandriva padre_download_opensuse padre_download_ubuntu padre_download_freebsd padre_download_netbsd padre_development padre_features ); # Ubuntu generates warnings subtest full_html => sub { plan tests => 2 * @cases; foreach my $case (@cases) { my $out = qx{$^X script/trac2html --infile t/corpus/$case.trac --outfile $dir/$case.html --id --span}; is $out, '', 'out'; my $html_generated = path("$dir/$case.html")->slurp_utf8; my $html_expected = path("t/expected/${case}_noclass.html")->slurp_utf8; #eq_or_diff $html_generated, $html_expected, 'Mandriva'; is $html_generated, $html_expected, $case; } }; Text-Trac-0.24/t/corpus/0000755000175000017500000000000013403124170014357 5ustar manwarmanwarText-Trac-0.24/t/corpus/padre_translationstyle.trac0000644000175000017500000001211113401765156022035 0ustar manwarmanwar= Translation manual of style = These are all real shortcomings found around r6000 (July 2009). Also see: * [http://msdn.microsoft.com/en-us/library/aa511440.aspx] * [http://developer.kde.org/documentation/design/ui/] * [http://developer.gnome.org/projects/gup/hig/] * [http://wiki.openusability.org/guidelines/] * [http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/] ---- Bad: {{{ We found several new plugins. In order to configure and enable them go to Plugins -> Plugin Manager List of new plugins: }}} * Avoid the words 'we' or 'I' in dialog. Do not attempt to speak on behalf of the program or computer. State the situation as a matter of fact. * Do not make the user remember a navigation path. Offer a direct shortcut to the referenced dialog. * Avoid primitive ASCII approximate representation of symbols. Use proper characters: → * Remove superfluous words. It is obvious to the user that this is a list. Better: {{{ New plugins were found. [Plugin A ^] [Plugin B #] [Plugin C #] [Plugin D #] [Plugin E v] [Configure...] }}} ---- Bad: {{{ $plugin->errstr( Wx::gettext("Error when calling menu for plugin") . "'$name': $@" ); Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of Padre::Plugin }}} * Do not concatenate strings in code. Use sprintf-style gettext templates. * Do not write messages in newspaper headline style. Write full sentences in proper English. Better: {{{ "An error occured when calling the menu for the plugin %s: %s", $name, $@ The plugin %s is not compatible with the Padre::Plugin API. It needs to be a subclass of Padre::Plugin. }}} ---- Bad: {{{ GoTo Bookmark GoTo Element }}} * !EnglishIsNotWrittenLikeThat Better: {{{ Go to Bookmark Go to Element }}} ---- Bad: {{{ &Close\tCtrl+W Select all\tCtrl-A }}} * Do not invent a different notation for key combinations. Use consistently the symbol + to join keys. Better: {{{ &Close\tCtrl+W Select all\tCtrl+A }}} ---- Bad: {{{ Could not locate project dir Cannot build regex for '%s' Chars without spaces: %s Convert EOL }}} * Do not use abbreviations. Use consistently the formal wording. Better: {{{ Could not locate project directory Cannot build regular expression for '%s' Characters without spaces: %s Convert line endings }}} ---- Bad: {{{ The bookmark '%s' no longer exists %s occurences were replaced }}} * Do not omit punctuation. Complete sentences with a full stop. Better: {{{ The bookmark '%s' no longer exists. %s occurences were replaced. }}} ---- Bad: {{{ No diagnostics available for this error! }}} * Avoid excitement or shouting. Whereever possible, use mere statements of fact. Better: {{{ No diagnostics are available for this error. }}} ---- Bad: {{{ First character of selection does not seem to point at a token. Selection not part of a Perl statement? All braces appear to be matched %s apparantly created. Do you want to open it now? }}} * Avoid vagueness. If the computer is not sure, the user certainly can't be, either. Whereever possible, use mere statements of fact. If you really cannot be sure, give the user more context or partial results so he can make an informed decision. Better: {{{ The first character of the selection does not point at a token. The selection is not part of a Perl statement. All braces are matched. %s was created. Do you want to open it now? }}} ---- Bad: {{{ No declaration could be found for the specified (lexical?) variable }}} * Avoid overloading several circumstances into a single message. Split them off into several messages and match them according to the relevant situation. Better: {{{ No declaration could be found for the specified package variable. No declaration could be found for the specified lexical variable. }}} ---- Bad: {{{ File changed on disk since last saved. Do you want to overwrite it? }}} * Avoid being overly specific in technical details. In this instance, there might not be a disk involved. Better: {{{ The file has changed since the last save. Do you want to overwrite it? }}} ---- Bad: {{{ Install Remote Distribution }}} * Avoid using words that have multiple similar meanings. Clarify with more or different wording. Better: {{{ Install Distribution from the Web }}} ---- Bad: {{{ TAB display size (in spaces): Next File\tCtrl-TAB Encode document to utf-8 }}} * Use proper capitalisation. Be aware of what is an acronym and what is not. Better: {{{ Tabulator display size (in spaces): Next File\tCtrl+Tab Encode document to UTF-8 }}} ---- Bad: {{{ &Open\tCtrl+O }}} * Menu items and buttons that open a dialog or require further user action end in an ellipsis… Menu items and buttons that result in immediate action do not end in an ellipsis. Better: {{{ &Open…\tCtrl+O }}} Text-Trac-0.24/t/corpus/padre_download_netbsd.trac0000644000175000017500000000351313401765156021572 0ustar manwarmanwar= NetBSD Installation Instructions = == Installation using the Package Manager == For binary packages installation take a look at http://www.netbsd.org/docs/software/packages.html#binarydist. There are packages available for some platforms (including NetBSD and Darwin). The 2010Q1 release of pkgsrc will provide binary packages for Padre, too. Packed by Sno|, contact pkgsrc-users@NetBSD.org in case of problems. To install Padre on NetBSD or any other pkgsrc supported platform, simply {{{ $ cd /usr/pkgsrc/editors/p5-Padre $ make install clean clean-depends }}} If you want to add plugin's, too, check which ones are already available: {{{ $ cd /usr/pkgsrc $ echo */p5-Padre-Plugin-* }}} For each desired plugin, change the working directory to it's location and install as done above. If you have trouble installing Padre using pkgsrc (and read the pkgsrc guide, mailing list archives and open PR's carefully), feel free to send your question to {{{ pkgsrc-p5-people }}} or {{{ pkgsrc-users }}} mailing list as found on {{{ http://www.netbsd.org/mailinglists/#descriptions-of-mailing-lists }}}. Although the import and maintaining is mostly done by Jens Rehsack, your chance getting feedback is better asking the proper mailing list instead of the primary maintainer. You might get questions answered on {{{ irc://irc.freenode.net/ }}} in the channel {{{ #pkgsrc }}}. == Installation from CPAN == Currently, there are no Padre CPAN installation instructions specific to NetBSD. Feel free to add comments and hints. == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_wxwidgets.trac0000644000175000017500000000647313401765156020461 0ustar manwarmanwar= Learning wxPerl and wxWidgets = For those like me (Gabor) who lack imagination here is an explanation of the stack. * wxWidgets is the name of the C++ library that can be installed either by your operating systems package management tool ( aptitude install wx-common in case of Debian ) or by installing Alien::wxWidgets from CPAN * [http://www.scintilla.org/ Scintilla] is an editor component written in C++ and used in many editors. It has been included in wxWidgets ad the STC or wxStyledTextCtrl. Padre 0.92 and later will use Wx::Scintilla instead of old Wx::STC to provide the latest and greatest from Scintilla. * wxPerl is the name of the Perl binding to wxWidgets (or wrapper if you prefer that word) - It is packaged as the Wx distro on CPAN. Some of the recent Linux distros might also have. * Above all that comes our code (Padre in our case) [http://wxperl.sourceforge.net/ Home of wxPerl] downloadable version: [http://prdownloads.sourceforge.net/wxperl/wxPerl-0.82-wx-2.8.7-docs-html.zip] [http://www.wxwidgets.org/ Home of wxWidgets] [http://wxperl.sourceforge.net/tutorial/tutorial.html tutorial of Mattia Barbon] [http://www.perl.com/pub/a/2001/09/12/wxtutorial1.html tutorial by Jouke Visser] STC or StyledTextCtrl is [http://www.scintilla.org/ Scintilla] [http://www.yellowbrain.com/stc/index.html Yellow Brain documentation of Wx::StyledTextCtrl] [http://wxruby.rubyforge.org/doc/styledtextctrl.html Ruby documentation of Wx::StyledTextCtrl] [http://docs.wxwidgets.org/trunk/classwx_styled_text_ctrl.html] [http://docs.wxwidgets.org/2.8.6/wx_stockitems.html#stockitems stock items in wx] [http://wxperl.pvoice.org/w/index.php/WxPerlTablet a kind of WxPerl cheat sheet] [http://use.perl.org/~Alias/journal/39642 Creating GUI code for Padre - A walk through a new feature] * PerlMonks articles * [http://www.perlmonks.org/?node_id=122227 wxPerl tutorial 3] * [http://www.perlmonks.org/?node_id=112297 wxPerl Tutorial one :: The basics] * [http://www.perlmonks.org/?node_id=152323 WxPerl woes -- putting a Tree into a ScrolledWindow] * [http://www.perlmonks.org/?node_id=153366 XML with wxPerl] * [http://www.perlmonks.org/?node_id=199840 HWXperl - The place for GUI apps in Perl] * [http://www.perlmonks.org/?node_id=164341 WxBrowser - a wxPerl HTML Browser] * [http://www.perlmonks.org/?node_id=290475 WxPerl Login Dialog] * [http://www.perlmonks.org/?node_id=219778 Tk vs. wxPerl] * [http://www.perlmonks.org/?node_id=807957 Using Icons on Wx::Notebook] * [http://www.perlmonks.org/?node_id=758548 Using BoxSizer Layout Manager in wxPerl] * [http://www.perlmonks.org/?node_id=638554 WxPerl Simplified] * [http://www.perlmonks.org/?node_id=216762 RegexLab (a wxPerl version)] * http://www.perlmonks.org/?node_id=184685 * http://www.perlmonks.org/?node_id=194611 * http://www.perlmonks.org/?node_id=287396 = The latest versions of wxPerl, wxWidgets and Scintilla = * Wx (aka wxPerl) latest is 0.89 release on Dec 6, 2008 http://search.cpan.org/dist/Wx/ * Padre 0.90: Wx::Scintilla integration was added through feature_wx_scintilla * Padre 0.92: Wx::Scintilla replaced Wx::STC completely. * Wx::Scintilla 0.30 supports the Scintilla 2.29 (released on 16th September 2011) * Wx::Scintilla 0.36 supports Scintilla 3.0.2. = Various Items and suggestions = See Wx-Perl-DirTree on CPAN Text-Trac-0.24/t/corpus/padre_faq.trac0000644000175000017500000000765613401765156017207 0ustar manwarmanwar[[PageOutline(1-2)]] == Is Padre for Perl only? == While the main focus of Padre is to provide excellent support for both beginner and advanced Perl developers it is not restricted to Perl development only. It provides syntax highlighting to most of the languages out there and if you are missing something just ask on the mailing list or open a ticket. It is also planned to be integrated with [http://www.parrot.org/ Parrot] that will allow writing plug-ins in any language running on Parrot. == Why not just reuse an existing Editor? == We hope that by writing it in Perl we will make it easy for any user of Padre to contribute back to the project and/or to add plug-ins. * vi and emacs -- while being excellent tools -- are not very beginner-friendly. * Komodo costs money and is not Free/Open Source software. * Eclipse is huge and you need to know Java to extend it. * Various editors such as Ultra-Edit, Notepad++ etc. are Windows-only == Why does Padre use wxWidgets and not ...? == wxWidgets uses the native windowing widgets of each operating system and in theory that should be the nicest and most "native looking" on all operating systems. So while it has it own problems and it is not the easiest to write in it, it might have the best potential. == Why using Subversion when Git is so much better? == We started to use SVN as Gabor did not know Git. We keep it as it works well for us and a lot more people know SVN than Git. With that said if someone implements an awesome and simple-to-use plugin for Padre to integrate with Git that works well on both Windows and Linux then we can consider switching. == Why using ithreads when forks/coro is so much better? == Threads are the only Perl concurrency system that is portable and actually runs things in parallel and makes use of multiple cores. We needed something portable that does real concurrency (i.e. no cooperative multi-threading or event loop), so fork was out of the loop due to portability and POE/Coro due to cooperative multithreading. == I have trouble installing Padre. Where can I find help? == See [wiki:Download] and the pages linked there for installation instructions. If this does not bring you any further, [http://padre.perlide.org/contact.html contact us], we will see how we can help us. == I have found a bug. What do I do now? == Report it. Either by [http://padre.perlide.org/contact.html contacting us], or by [wiki:Tickets creating a new ticket in Trac]. == Padre lacks feature XY. What can I do about it? == Tell us. Either by [http://padre.perlide.org/contact.html contacting us], or by [wiki:Tickets creating a new ticket in Trac]. Or even better: Implement it yourself. Hacking Padre isn't that hard if you know some Perl. And the developer community is very open and welcoming towards new developers. See [wiki:Howto] and [http://padre.perlide.org/getting_involved.html Getting Involved] for more information. == How do I checkout a trunk version of padre? == This is described on the [wiki:Howto] page. == My Perl script expects user input from STDIN, but I cannot enter anything when executing it inside Padre. What can I do? == There is a setting in the Preferences dialog, under "Run parameters" (or under "Language Perl 5", depending on your version of Perl, called "Use external window for execution". If you activate that setting, you can make inputs to STDIN. See also ticket #743. == I am not getting output console when I Run a script (press F5) == There is a setting in the Preferences dialog, under "Run parameters" (or under "Language Perl 5", depending on your version of Perl, called "Use external window for execution". Try to check / uncheck that. == Can I edit remote files on an FTP server with Padre? == Yes, just use "File"->"Open ..."->"Open URL ..." and enter your file's URL. HTTP and HTTPS are also supported, by the way. == How can I add/modify keyboard shortcuts? == There is a keyboard shortcut editor in the menu under "Tools" -> "Key Bindings". Text-Trac-0.24/t/corpus/padre_download_perlbrew.trac0000644000175000017500000000307613401765156022141 0ustar manwarmanwarThe combination of perlbrew [http://perlbrew.pl] and cpanminus [http://search.cpan.org/dist/App-cpanminus/lib/App/cpanminus.pm] allows you to easily build your own Perl installation and add additional CPAN programs (including Padre) without bothering to setup a CPAN client. perlbrew is a tool to manage multiple perl installations in your $HOME directory. They are completely isolated perl universes. This approach has many benefits: * No need to run sudo to install CPAN modules, any more. * Try the monthly released new perls. * Learn new language features. * Test production code. * Leave vendor perl (the one that comes with OS) alone cpanminus is a script to get, unpack, build and install modules from CPAN and does nothing else. It's dependency free (can bootstrap itself), requires zero configuration, and stands alone. When running, it requires only 10MB of RAM. The websites of both project explain how to install them. Once the perlbrew and cpanminus is setup, you can install Padre by simply typing "cpanm Padre" in a shell. Additionall howtos (by a Padre developer), can be found below. The examples were taken from a Debian/Ubuntu and Solaris system, but it's applicable to other systems as well: - Get the latest Perl release with perlbrew [http://nxadm.wordpress.com/2010/12/10/get-the-latest-perl-release-with-perlbrew/] - App::cpanminus: zero-conf CPAN client [http://nxadm.wordpress.com/2010/12/10/appcpanminus-zero-conf-cpan-client/] - Build Padre svn easily with perlbrew and cpanm [http://nxadm.wordpress.com/2010/12/10/build-padre-svn-easily-with-perlbrew-and-cpanm/] Text-Trac-0.24/t/corpus/padre_development.trac0000644000175000017500000001021113401765156020737 0ustar manwarmanwar[[PageOutline(1-2)]] = Development in general = We are using Subversion for version control. The main development of Padre is in the trunk [http://svn.perlide.org/padre/trunk/Padre] but there are several additional projects and almost all the plugins of Padre also live in the same repository so the best if you check out the whole trunk [http://svn.perlide.org/padre/trunk] {{{ $ svn co http://svn.perlide.org/padre/trunk padre }}} Then you can run the standard CPAN module process: Make sure you have all of the needed prerequisites. See [http://padre.perlide.org/trac/wiki/Download] {{{ $ cd padre/Padre $ perl Makefile.PL # which will tell about all the missing dependencies of Padre # this may fail if you don't have Module::Install # if so, start cpan and install it with all its prerequisites $ make $ make test }}} For a more detailed set of instructions on how to install the dependencies visit the [wiki:Download] Once all the above works well you can launch Padre from the SVN tree by running {{{ $ perl dev }}} dev has some more parameters you can see by typing {{{ $ perl dev -h }}} The most important being {{{ $ perl dev -a }}} that will include the path to all the plugins located in trunk/ == Coding == See the http://search.cpan.org/dist/Padre/lib/Padre/Manual/Hacking.pod file for Core Padre development and http://search.cpan.org/dist/Padre/lib/Padre/Plugin.pm for Plugin development. == Translation == Translation is basically part of the development effort. For more details please take a look at this page: See [wiki:TranslationIntro] == Documentation == The documentation of Padre is standard POD embedded in the .pm files. If you'd like to improve those you should check out the source code of Padre as described above and send patches or ask for commit bit. The documentation is part of the regular development process. == QA/Testing == Unfortunately Padre has not enough automated test mostly due to the fact that we hardly know how to test GUI applications. The existing tests are located in the standard t/ directory. If you'd like to help in this and if you are on Windows you could take a look at the t/win32/ directory where we have a few tests written using Win32::GUItest. You would be very highly regarded if you improved the test coverage of Padre!! == Release Management == See separate page about [wiki:Release] = Development in a branch = Most of our development is done on the trunk but occasionally we prefer to make our private corner for experimental changes or changes that might not be stable for some time. Instructions on how to do that: Create a branch and work on it: Assuming you have already checked out http://svn.perlide.org/padre/trunk/ to /path/to/padre {{{ $ svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/My-branch -m'some messages' $ cd /path/to/padre/Padre $ svn switch http://svn.perlide.org/padre/branches/My-branch . }}} If you run {{{ svn st .. }}} You will see a letter S infront to the Padre directory as that one is switched. Now you can edit, test and commit as usual. Your changes will be committed to the branch. When done and you would like to merge your changes 1. Make sure everything is committed {{{ $ cd /path/to/padre/Padre $ svn switch http://svn.perlide.org/padre/trunk/Padre $ svn log --stop-on-copy http://svn.perlide.org/padre/branches/My-branch }}} This will show you the changes you made on the branch. Take the FIRST and LAST revision numbers in this log and use the following command to see the full change you made: {{{ svn diff -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch }}} use the following to merge it back to trunk {{{ svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch . svn commit -m'merged -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch ' svn rm http://svn.perlide.org/padre/branches/My-branch -m'My-branch is not needed any more' }}} If you decided it was a dead-end you can just switch back to trunk and remove the branch. == Tickets == [[TicketQuery(component=development,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]] Text-Trac-0.24/t/corpus/padre_download_freebsd.trac0000644000175000017500000000524713401765156021733 0ustar manwarmanwar= FreeBSD Installation Instructions = == Installation using pkg_add == Because the FreeBSD Perl package comes without threads support no official Padre packages are available. The prefered method is to manually recompile Perl port to support threads and then build Padre and all it's dependencies from Ports (see below). However there are __'''highly experimental'''__ packages available for FreeBSD 6-STABLE and 7-STABLE. First, make sure you have uninstalled the non-threaded Perl package or that you have threaded Perl already compiled. Please note, that after installing threaded Perl all Perl modules already installed have to be recompiled. All packages depend on Perl 5.8.9 (that's the current Perl version for 6 and 7 branches). First set `PACKAGESITE` environment variable to point to {{{ http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ }}} for 6-STABLE or {{{ http://therek.net/freebsd/tb/7-STABLE-i386/All/Latest/ }}} for 7-STABLE. Then install packages as usual: {{{ # setenv PACKAGESITE http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for C Shell # export PACKAGESITE=http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for Bourne Shell # pkg_add -r p5-Padre }}} Feedback is welcome. == Installation from Source == To run Padre on FreeBSD you have to recompile Perl to support threads. To verify whether your Perl installation has thread support turned on run following command. {{{ $ perl -V:usethreads usethreads='define'; }}} If the result is `define` then you have already threaded Perl installed, otherwise execute: {{{ # cd /usr/ports/lang/perl5.8 && make WITH_THREADS=yes # make deinstall && make reinstall }}} Optionally you can substitute `make WITH_THREADS=yes` with the following and choose `THREADS` in the menu. Then uninstall and reinstall Perl as above. This has an advantage over the previous method, because the preferred configuration options will be stored in your system's packing database. This way next time you'll be building Perl (i.e. updating) all stored options will be applied without the need to manually specify them. {{{ # make config # make }}} To install Padre and its dependencies just execute: {{{ # cd /usr/ports/editors/p5-Padre # make install clean }}} == Installation from CPAN == Currently, there are no Padre CPAN installation instructions specific to FreeBSD. Feel free to add comments and hints. == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_cpan.trac0000644000175000017500000000515013401765156021233 0ustar manwarmanwar= CPAN Installation Instructions = Padre is released as a CPAN package. You can download and install it using {{{cpan}}}, {{{cpanm}}} or CPANPLUS. The released versions can be seen here [http://search.cpan.org/dist/Padre/] here [http://kobesearch.cpan.org/dist/Padre] and here [https://metacpan.org/release/Padre] depending on your preferences. As Padre has many dependencies probably the easiest is to install the binary distribution where available from the vendor (Mandriva, Fedora, Debian, FreeBSD) and then use {{{cpanm}}} to upgrade. If this is not possible read on. == Install from CPAN == === Strawberry Perl on Windows === On Strawberry Perl you should be able to install/upgrade Padre by just opening the "cmd" and typing {{{ c:> cpan Padre }}} === Active Perl in Windows === Probably the same as for Strawberry Perl but you might first need to install the C compiler they supply. === Linux === On Linux you should probably start by installing from the binary repository of your distribution (see below) and then upgrading from CPAN using local::lib. That part starts by installing local::lib using the [https://metacpan.org/module/local::lib#The-bootstrapping-technique Bootstrapping technique] and once that's done type {{{ $ cpan Padre }}} == Common Problems == === Corporate Proxy === People behind a (corporate) proxy will not be able to access the CPAN servers directly. First they need to tell the CPAN client which proxy to use. For this, launch the cpan client by typing '''cpan''' on the command line. You should get a cpan> prompt and in there type the following: (obviously replace the address of the proxy server with the one you have in your company). {{{ cpan> o conf http_proxy http://proxy.corporate.com:8080 cpan> o conf commit cpan> q }}} Once you did this the cpan command should work. === WxWidgets and WxPerl === The difficult part is sometimes to install some of the prerequisites: * Installing wxWidgets (that [http://search.cpan.org/dist/Alien-wxWidgets/ Alien::wxWidgets] tries to solve) * Installing wxPerl (the [http://search.cpan.org/dist/Wx/ Wx] distro) from CPAN. Mattia Barbon did a great job with them but they still may be difficult to install in some cases. == Platform-specific Instructions == * [wiki:DownloadDebian#Installation_from_CPAN Debian] * [wiki:DownloadFedora#Installation_from_CPAN Fedora] * [wiki:DownloadFreeBSD#Installation_from_CPAN FreeBSD] * [wiki:DownloadMandriva#Installation_from_CPAN Mandriva] * [wiki:DownloadNetBSD#Installation_from_CPAN NetBSD] * [wiki:DownloadUbuntu#Installation_from_CPAN Ubuntu] * [wiki:DownloadWindows#Installation_from_CPAN Windows] Text-Trac-0.24/t/corpus/padre_download_debian.trac0000644000175000017500000000515413401765156021540 0ustar manwarmanwar= Debian Installation Instructions = == Installation using the Package Manager == Padre 0.63 is available in [http://www.debian.org/ Debian] 6.0 ("squeeze"), as well as in the {{{unstable}}} (Pare 0.90) and {{{testing}}} (Padre 0.90) branches of Debian. Install: {{{ # aptitude install padre }}} === Older Stable Releases === If you run a stable release prior to Squeeze (6.0), you'd have to add an "unstable" or "testing" source to {{{/etc/apt/sources.list}}}, e.g. as follows: {{{ deb http://mirror.isoc.org.il/pub/debian/ unstable main deb-src http://mirror.isoc.org.il/pub/debian/ unstable main }}} Then update the package list {{{ # aptitude update }}} and perform the installation as described above. == Installation from CPAN or Subversion == Make sure that CPAN can work properly. Install the {{{build-essential}}} package if it is not yet installed. {{{ aptitude install libppix-regexp-perl libalien-wxwidgets-perl libppix-editortools-perl libio-string-perl libdevel-dumpvar-perl libfile-spec-perl libwx-perl libprobe-perl-perl libwxbase2.8-dev libdevel-refactor-perl libnet-daemon-perl libclass-unload-perl libthreads-shared-perl libwxgtk2.8-0 libtext-diff-perl libfile-next-perl libdbi-perl libtext-glob-perl ack-grep libclass-inspector-perl libtext-findindent-perl libfile-remove-perl libplrpc-perl libmodule-manifest-perl libparse-exuberantctags-perl libtemplate-tiny-perl libparse-errorstring-perl-perl libpod-pom-perl liborlite-migrate-perl libfile-pushd-perl libio-stringy-perl libwxbase2.8-0 libipc-run-perl libclass-adapter-perl libtask-weaken-perl libpod2-base-perl liborlite-perl libfile-find-rule-perl libpod-abstract-perl libclass-xsaccessor-perl libio-pty-perl libclone-perl libwx-perl-processstream-perl libipc-run3-perl libwxgtk2.8-dev libdbd-sqlite3-perl libfile-sharedir-perl libppi-perl wx2.8-headers libfile-homedir-perl liblist-moreutils-perl libdebug-client-perl libnumber-compare-perl libyaml-tiny-perl libgtk2.0-dev }}} Then either install from CPAN (which will help you to resolve possible additional dependencies), or run {{{ perl Makefile.PL make make test make install }}} in the Padre directory. Pay attention to the output of {{{perl Makefile.PL}}}, it may remind you of some missing CPAN modules that you need to install. (last checked Sep. 22, 2011, on Debian testing) == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_wikistart.trac0000644000175000017500000000675613401765156020461 0ustar manwarmanwar== Padre - Perl Application Development and Refactoring Environment == Take a look at the current state of Padre on our [http://padre.perlide.org/trac/wiki/Screenshots Screenshots] page. [wiki:Features] [wiki:Tickets] To create a New Ticket for Padre, you will need to Login (if you are new here, please Register first). == Project Objectives == Some of the objectives of the project: * Make it very easy to start using it, especially for Perl development. * Easy installation on Windows, Linux and other operating systems * By default work like notepad, hide most of the options. * Make it very Perl beginner friendly * Out of the box allow running Perl scripts, have Perl documentation. * Provide a variety of assistance options to help with learning Perl. * Auto-detect as much as possible, to provide a Do What I Mean working style. * Support for development of large cross language applications * Project-specific editor configuration. * Boilerplate creation for CPAN modules, Catalyst applications, and more. * Extend Padre with [wiki:Plugins plugins] to add new interfaces and functionality. * Support for languages that are often used with Perl (SQL, Javascript, HTML, XML) * Support for other programming languages (Python, PHP, Ruby etc.) * Support for Parrot and Perl 6 * Support for Moose, Mouse and MooseX::Declare == How do I try it? == See [wiki:Download] for installation instructions. And be sure to check out the [wiki:Documentation] for additional info. * Videos * Gabor [http://www.youtube.com/user/gabor529/videos youtube] various * Adam at [http://www.youtube.com/watch?v=qu8-NzHZsXY Padre - The Perl IDE for Normal People] YAPC::Asia Tokyo 2012 == Getting involved - How can I participate? == See also http://padre.perlide.org/getting_involved.html === Setting up a development environment === See [wiki:Howto] * SvnMimeTypes * Guide to setting mime types to enable pygments to display formatted code in trac. * [wiki:PadrePluginDialog Padre::Plugin::Cookbook] * Series of Cookbooks to aid in Gui Plug-in development == Mailing lists == * Padre development mailing list http://mail.perlide.org/mailman/listinfo/padre-dev * SVN commit mailing list http://mail.perlide.org/mailman/listinfo/padre-commit * Trac changes mailing list http://mail.perlide.org/mailman/listinfo/padre-trac * Padre news mailing list http://mail.perlide.org/mailman/listinfo/padre-news == IRC == Padre's IRC channel is very active, and the best first point of call for questions or assistance. We hang out on [irc://irc.perl.org/%23padre #padre] on irc.perl.org It is being logged here: http://irclog.perlgeek.de/padre/today You can also use the web-based IRC client on Mibbit from our [http://padre.perlide.org/irc.html IRC] page == Support == You can try our mailing list or IRC, but I am sure the [http://www.perlmonks.org/ PerlMonks] will be glad to help you as well. == History == Before 7 August 2008 the source code was kept in a different SVN repository under various names. There was no easy way to transfer it so I started this repository from scratch. That pre-history can be found here: `http://svn1.hostlocal.com/szabgab/trunk/Wx-Tutorial -r 941` `http://svn1.hostlocal.com/szabgab/trunk/App-Editor -r 1080` The [http://padre.perlide.org/about.html About] page has links to related blog posts from before Padre was released. [http://padre.perlide.org/trac/wiki/Release_History Release History] Padre is written in Perl 5 using [http://padre.perlide.org/trac/wiki/wxWidgets wxWidgets] Text-Trac-0.24/t/corpus/padre_download_osx.trac0000644000175000017500000002310713401765156021125 0ustar manwarmanwar[[PageOutline(1-5, Table of Contents, floated)]] = DMG Betas = As a beta release, Padre is available as a packaged Application for OsX. See this page for the latest DMG: http://wildperl.com/padreonosx/ This is a beta and we could really use your help. We need more OSX testers, and any help you can give us, even saying it runs fine for you, is important. Open tickets can be found here: [wiki:osxbugs], and [http://widget.mibbit.com/?server=irc.perl.org&channel=%23padre hop on to IRC] as the best way to report any issues and give feedback. = Installation from source = There are several methods of installing Padre from source. As such, they require some familiarity with command-line usage of OsX. **System Perl vs User Perl:** Padre requires a 32bit version of Perl and wxWidgets 2.8.12. These are not the default on OsX. Additionally, the default "system" perl on OsX may be altered or changed in the course of software updates from Apple. Consequently, building Padre requires creating a self-contained perl, wxWidgets, and Padre. **Xcode:** On OsX most of the common development utilities that are referenced by perl (gcc, make, etc) are provided by installing Xcode. The instruction sets below assume that you have installed these or reasonable substitutes on your system, that they are properly in your path, etc. **Wx Tests:** There will be a point where you are compiling Wx. The tests for Wx involve generating many window primitives. These tests will fail if they are run inside of a gnu-screen or ssh session. (The error message might be a bit strange: stating issues creating the clipboard because of permissions.) Additionally, during the test cycle many of the tests will grab focus on the UI. This will make your system unusable for a short period of time. Let the tests run. If you try to quit out of them, you will cause the tests to fail and it will halt the compile. == Option 1 - Installation with Citrus Perl == Cirtus Perl is a portable distribution of perl that has pre-built Wx binaries and integration. A shortened form of installation instructions is below. Refer to the installation instructions on the download page below if you want full details. - Download Citrus Perl from http://www.citrusperl.com/platform/macosx.html - Unpack Citrus Perl into your favorite dev location: {{{#!sh cd ~/dev tar xzvf ~/Downloads/citrusperl-standard-51402-20903-osx-i32-014.tar.gz }}} - This has created a "`CitrusPerl`" directory that has a fully isolated install of perl, including Wx. You can also use CPAN to add to this perl without polluting your system's install of perl with additional modules. (Also meaning that an apple update will not break your version of perl if you use this.) - Configure Cirtus Perl to work in its new location {{{#!sh ./CitrusPerl/bin/relocateperl ./CitrusPerl/bin/citrusvars.sh }}} - At this point you can put Citrus Perl in your path. Set it ahead of other entries by putting the line below as the last line in your `.bash_profile`. That will make any command line invocation of `perl` or `cpan` use Citrus Perl and not your system perl. Substitute `/Users/joe/dev` below with your chosen installation directory. {{{#!sh export PATH=/Users/joe/dev/CitrusPerl/bin:$PATH }}} - Reload your `.bash_profile` to use the new path {{{#!sh source ~/.bash_profile }}} - To install Padre, use `cpan` and run the command `install Padre`. This will build all required dependencies along the way, so it will take some time. {{{#!sh cpan > install Padre > exit }}} - Padre should now be in your path and usable on the command line {{{#!sh padre }}} == Option 2 - Installation with Mac Ports == Mac Ports is a project to provide many GNU and Open Source utilities to OsX. It packages and installs them in `/opt/local`. - Mac Ports can be downloaded and installed as a package from http://www.macports.org/install.php and configured: {{{#!sh sudo port -f selfupdate }}} - Remember to follow the instructions to put Mac Ports first in your path so the Ports version of perl will execute when called on the command line: {{{#!sh export PATH=/opt/local/bin:/opt/local/sbin:$PATH }}} - Install Perl and Wx (This will include many dependencies and take some time to compile and complete.) {{{#!sh sudo port install perl5 +threads sudo port install wxWidgets }}} - Install Padre via CPAN {{{#!sh sudo /opt/local/bin/cpan > install Padre }}} - Padre should now be in your path and usable on the command line {{{#!sh padre }}} == Option 3 - Compiling a Perl with Perl Brew == We are attempting to automate the process using the bin/padre-brew.pl [http://bit.ly/oiME1I available here]. If you want to build on your own you should note the environment settings and build parameters used on [http://wildperl.com/2011/07/padre-on-osx-dmg-now-on-leopard-snow-leopard-and-lion/ OSX Lion], or refer to the bin/padre-brew.pl source for other OSX levels. = Installing on top of the system Perl = //As stated above, this is not recommended. You are manipulating portions of the system OS which may be changed in the future by Apple and/or you may cause unintended side-effects in your OS.// Pre-Lion versions of OsX had varying levels of Perl, Wx and sometimes wxPerl installed. Sometimes with a minimum of effort, a functioning wxPerl and Padre could be made to work. (OS X 10.4 has wxPerl 0.22, 10.5 has a more recent version (0.6x for some x)) Generally, you do not use the system 'perl' executable, but build a 'wxPerl' executable (see this [http://www.nntp.perl.org/group/perl.wxperl.users/2008/07/msg5978.html thread regarding wxPerl invocation]). Reading up on installation using [wiki:DownloadNetBSD pkgsrc] may also help. === Checking what versions you currently have === If you have trouble you can check which version of wxWidgets you have: {{{#!perl $ perl -MWx -le'print "Wx Version: $Wx::VERSION " . Wx::wxVERSION_STRING()' }}} and on Mac: {{{#!perl $ wxPerl -MWx -le'print "Wx Version: $Wx::VERSION " . Wx::wxVERSION_STRING()' }}} We use Wx 0.87 and wxWidgets 2.8.8 so you probably should have those (or newer) too. == Installation from CPAN == The most straightforward method is to install everything from source. This will ignore any existing wxWidgets installation. 1. $ wxPerl -MCPAN -eshell 1. [cpan] $ install Alien::wxWidgets [choose install from source, which is NOT the default] 1. Go do something else while it compiles wxWidgets. 1. [cpan] $ install Wx 1. [cpan] $ install Padre Padre has a LOT of prerequisites. You're likely to run into some problems with tests failing. IPC::Run3 was a particular problem due to its prerequisites, but a later individual install worked fine. Just make your way through them all, and 'force notest install $module' as needed. Once you've got padre installed you start it by running /usr/local/bin/padre. === Notes on building wxWdigets from source === When installing Alien::wxWidgets it will ask if you want to compile wxWidgets. '''Do you want to fetch and build wxWidgets from sources?''' If you don't have any installed or if you have an old version (< 2.8.8) then you should answer yes. It will try to download the source code of wxWidgets which is big and the download often fails. To get around that you can download the file manually and put it in the extracted directory of Alien::wxWidgets. Something like this: {{{#!sh $ cd /tmp $ wget http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.8.tar.gz $ cpan cpan> look Alien::wxWidgets $ cp /tmp/wxWidgets-2.8.8.tar.gz . $ perl Makefile.PL $ make $ make test $ make install $ exit cpan>quit $ }}} == Variation 1 - Taking the lazy way == If you're lazy and enjoy taking risks... the easiest way to install on OSX may be (there will be some test failures - which you'll have to force install, including Padre itself, due to wxPerl issues): {{{#!sh cpan Alien::wxWidgets wxPerl -MCPAN -eshell $ install Padre }}} and then replace the /usr/local/bin/padre script with the updated version at http://padre.perlide.org/trac/browser/trunk/Padre/script/padre After installing Alien::wxWidget there are new versions of wx-config and wxrc somewhere in your Perl Library Path, (mine went under site_perl/darwin-thread-multi-2level/Alien/wxWidgets/mac_2_8_10_uni/bin), which need to be first in your PATH, otherwise Wx might build against the wrong Library. As an alternative you can set an environment variable WX_CONFIG which has to point to the new wx-config executable. See the Wx docs for more info. == Variation 2 - Using a package manager for the Wx portion == Aside from building from source, you can also install newer versions of Wx on OS X using a package manager: [http://www.finkproject.org/ Fink] {{{#!sh fink install wxmac28 }}} [http://www.macports.org/ Mac Ports] {{{#!sh port install wxWidgets }}} = Creating an App Icon for your command-line Padre = It is possible to create an Application icon to launch your command-line version of Padre. You can create an Applescript application to do this. Launch the Applescript Editor from the Utilities folder in the Applications folder. You will enter a line to launch padre which which uses the full path of your preferred perl and padre. For Mac ports: {{{#!sh do shell script "/opt/local/bin/perl /opt/local/bin/padre" }}} For Citrus Perl: (change `/Users/joe/dev/` to your path for Citrus Perl) {{{#!sh do shell script "/Users/joe/dev/CitrusPerl/i32/5-12/bin/perl /Users/joe/dev/CitrusPerl/i32/5-12/site/bin/padre" }}} Select "Save As" under the file menu. Select the format of "Application." Name it what you'd like and install it where you'd like it to be. (IE: the Applications folder) Clicking on this icon should now launch Padre. ---- = Links * http://www.perlmonks.org/?node_id=910271 Text-Trac-0.24/t/corpus/padre_download_ubuntu.trac0000644000175000017500000001323613401765156021640 0ustar manwarmanwar= Ubuntu Installation Instructions = Apparently Ubuntu 11.04 also comes with [https://bugs.launchpad.net/ubuntu/+source/padre/+bug/761782 broken wxWidgets or broken Wx]. [http://ubuntuforums.org/showthread.php?t=1745375 see here too] Please follow the instructions below to manually install (again) the wx related modules. Probably the best way is to use local::lib so your installation won't interfere with the system installation. === If you have upgraded to **natty**(11.04) from mavrick(10.10), * to install the wx library files you can {{{#!sh $sudo apt-get install libwxbase2.8-0 libwxgtk2.8-0 libwxbase2.8-dev libwxgtk2.8-dev libgtk2.0-dev }}} * Install {{{gtk2-engines-pixbuf}}} to get rid of the annoying warning on Ubuntu 11.10: {{{Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"}}} {{{ sudo apt-get install gtk2-engines-pixbuf }}} * you can check the library files are installed with {{{#!sh $ dpkg -l |grep -i libwx |awk '{ print $2 }' libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev $ dpkg -l |grep -i libgtk2.0-dev |awk '{ print $2 }' libgtk2.0-dev }}} * you will need to reinstall WX. {{{#!sh $sudo cpan .... cpan[1]> force install Wx Going to read '/root/.cpan/Metadata' Database was generated on Wed, 04 May 2011 04:32:25 GMT Running install for module 'Wx' Running make for M/MB/MBARBON/Wx-0.98.tar.gz Fetching with LWP: .... }}} == Installation using the Package Manager == Ubuntu 10.10 contains Padre 0.63, Ubuntu 10.04 contains Padre 0.50 {{{ sudo apt-get install padre }}} Because of a packaging error, [https://bugs.launchpad.net/ubuntu/+source/padre/+bug/485012 padre does not work out of the box on Ubuntu 10.10]. One possible workaround is to install wx-perl from CPAN: {{{ sudo cpan Alien::wxWidgets sudo cpan Wx }}} Use {{{apt-cache}}} to find out which plug-ins are available: {{{ apt-cache -n search padre }}} On Ubuntu 10.04, you can install the following plug-ins: {{{ sudo apt-get install libpadre-plugin-css-perl libpadre-plugin-html-perl libpadre-plugin-spellcheck-perl libpadre-plugin-xml-perl libpadre-plugin-autoformat-perl libpadre-plugin-vi-perl libpadre-plugin-nopaste-perl }}} == Installation from CPAN == This was checked for Ubuntu 9.04 and 10.10 but it should work for later versions as well. * Install required development packages {{{ sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev libwxbase2.8-dev libwxbase2.8-0 libgtk2.0-dev g++ }}} * download and setup local::lib ( http://search.cpan.org/dist/local-lib/ ) {{{ # in your $HOME cd $HOME perl -v # This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi # This is called system perl # Install local::lib into your $HOME wget http://search.cpan.org/CPAN/authors/id/G/GE/GETTY/local-lib-1.006007.tar.gz tar xfz local-lib-1.006007.tar.gz cd local-lib-1.006007/ perl Makefile.PL --bootstrap make test && make install cd $HOME # Add local::lib to your .bashrc echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc # Optional step if you do not want to close your terminal eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib) # Optional: remove local::lib folder rm -rf local-lib-1.006007 }}} * configure the cpan client setting the prerequisite_policy to 'follow' and to add a CPAN server in the urllist: * {{{cpan}}} * {{{conf prerequisites_policy follow}}} * {{{conf urllist http://cpan.yahoo.com/}}} * {{{conf save}}} * {{{cpan App::cpanminus}}} * {{{cpanm Alien::wxWidgets}}} * {{{cpanm Wx}}} * {{{cpanm Padre}}} There are certain places where CPAN.pm is still asking for confirmation "is just needed temporarily during building or testing. Do you want to install it permanently (y/n) [yes]". This can be eliminated by setting build_requires_install_policy to 'yes' in the CPAN client: * {{{conf build_requires_install_policy yes}}} * {{{conf save}}} === If you accidentally tried to install with wx-2.6 libs This can happen if you blindly try to install Padre using cpan without checking for library dependencies. In that case, the installation will die at some point during the Wx compilation phase. Alien::wxWidgets will think that you have v 2.6 (even after you install 2.8), so you must remove it before moving forward with the install. To check if Alien::wxWidgets is incorrect, run this at your command line: {{{#!sh perl -MAlien::wxWidgets -e 'print Alien::wxWidgets->version, "\n"' }}} If the output says 2.006### then Alien::wxWidgets needs to be fixed. If it says 2.008###, then this is not a problem. Before doing any of the following steps, ensure that you have the wx-2.8 dev libs installed via apt-get, as detailed above. The steps that I have tried to fix this problem, in increasing levels of severity, are as follows. After you try each one, you can test if Alien::wxWidgets is properly configured by running the one-liner shown above and checking that the output says 2.008###. * Force-install Alien::wxWidgets. (This didn't work for me for some reason.) * Install App::pmuninstall via CPAN and use it to remove Alien::wxWidgets. Then reinstall Alien::wxWidgets. * Remove the Alien::wxWidgets files by hand, then re-install Alien::wxWidgets from cpan. If you are using local::lib, you will find these in ~/perl5/lib/perl5/Alien and ~/perl5/lib/perl5/i686-linux-gnu-thread-multi/Alien. If you are installing these into your system perl, you will find these under similar folders at /usr/local/lib/perl5/..., I believe. == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_activeperl.trac0000644000175000017500000001146513401765156022456 0ustar manwarmanwar= Windows (Active Perl) Installation Instructions = [http://www.activestate.com/] Once you have installed Active Perl you need to configure an additional PPM repositor and then you can install Padre using the ppm packaging system. Let's see how to do it in the Command Shell: {{{ Start/Run/cmd ENTER ppm rep add wxperl http://www.wxperl.co.uk/repository ppm install Alien-wxWidgets ppm install Wx ppm install Padre }}} You might have to install Alien-wxWidgets-gcc. If this conflicts with Alien-wxWidgets - you can try use --force: {{{ ppm install Alien-wxWidgets-gcc --force }}} Once that's done you can start Padre by typing {{{ perl c:\perl\site\bin\padre }}} or {{{ wperl c:\perl\site\bin\padre }}} Replace "c:\perl" with the path, where Active Perl is installed. ==== Older Active Perl details ==== The manual installation is still a bit rough but we are working on improving it. 1) (A) Most of the modules - can be taken from the main ActiveState Package Repository. (B) For Active Perl there are prebuilt PPM versions of Alien::wxWidgets and Wx (aka. wxPerl) and can be installed from [http://wxperl.co.uk/]. So add the wxperl repository to the PPM: http://www.wxperl.co.uk/repository (for detailed instructions see http://wxperl.co.uk/ppm.html ) (and even more info here http://docs.activestate.com/activeperl/5.10/faq/ActivePerl-faq2.html ) Adding the repository to your PPM repository list: In PPM4 (ActivePerl 820+) this is most easily done via the GUI menu option: Edit -> Preferences. If you use PPM3 - or used to command line (==DOS , still usable for PPM4) - you can do: {{{ ppm rep add wxperl http://www.wxperl.co.uk/repository }}} 2) Install all the packages (except of course perl) listed as "requires" on http://svn.perlide.org/padre/trunk/Padre/Makefile.PL - by using ppm. Don't worry about the order of installation and report us any problem you encounter. You can do in by searching the "requires" packages listed in the above link - either by using the PPM4 GUI, or searching PPM command line (==DOS): {{{ ppm search App::Ack }}} The result may look like this: {{{ C:\Documents and Settings\orenm>ppm search App::Ack Downloading ActiveState Package Repository packlist...not modified 1: ack A grep-like program specifically for large source trees Version: 1.86 Released: 2008-07-09 Author: Andy Lester Provide: App::Ack version 1.86 Require: File::Basename Require: File::Next version 0.4 or better Require: Getopt::Long Require: Term::ANSIColor Require: Test::Harness version 2.5 or better Require: Test::More Repo: ActiveState Package Repository CPAN: http://search.cpan.org/dist/ack-1.86/ C:\Documents and Settings\orenm> }}} So now you shall do: {{{ ppm install ack }}} 3) then open the cpan client and install Padre: {{{ c:> perl -MCPAN -eshell cpan> install Padre }}} Oren Maurer reported that you might need to force it: {{{ cpan> force install Padre }}} at some point you might encounter an error like this: {{{ Running install for module 'Padre' Running make for S/SZ/SZABGAB/Padre-0.06.tar.gz CPAN: Digest::SHA loaded ok (v5.45) Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/S/SZ/SZABGAB/CHECKSUMS Alert: While trying to 'parse' YAML file 'D:\ActiveState\Perl\cpan\FTPstats.yml' with 'YAML::XS' the following error was encountered: Usage: YAML::XS::LibYAML::Load(yaml_str) at D:\ActiveState\Perl\lib/YAML/XS.pm line 70. }}} The reported solution was this: {{{ [reach the cpan shell:] C:\>cpan cpan> o conf yaml_module '' cpan> o conf commit commit: wrote 'C:\Perl\lib/CPAN/Config.pm' cpan> q }}} (See: [http://groups.google.com/group/de.comp.lang.perl.misc/browse_thread/thread/3a347d02a1ebf464] and [http://perl.org.il/pipermail/perl/2008-September/009779.html] ) Other things that to do and can help: 1. upgrading last version of Encode - using ppm , Note: For upgrading all PPM packages, do this (Windows command line, a.k.a Dos) {{{ ppm upgrade --install }}} 2. upgrade of Wx - also by using ppm , 3. installing Alien-wxWidgets (the same way... ppm), 4. And now - do (again with ppm): {{{ ppm install --force Alien-wxWidgets-dev }}} (See: [http://meorero.wordpress.com/2009/02/02/padre-on-ms-windows-with-activeperl-5100-build-1004/]) For more info about "ppm - Perl Package Manager, version 4" - see the ActivePerl 5.10 Documentation: http://docs.activestate.com/activeperl/5.10/bin/ppm.html == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_opensuse.trac0000644000175000017500000000152513401765156022155 0ustar manwarmanwar= openSUSE Installation Instructions = == Installation using the Package Manager == == Installation from CPAN == 1. [http://opensuse-community.org/Repositories/11.1 Add the packman repository.] 2. Install the package »wxWidgets-devel« and the schema »C/C++ Development«. [[Image(yast.png)]] 3. [wiki:DownloadCPAN Install Padre from CPAN.] Configure [http://search.cpan.org/perldoc?CPAN#Config_Variables make_install_make_command and mbuild_install_build_command] to enable {{{sudo}}} support in CPAN. == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_fedora.trac0000644000175000017500000000427513401765156021561 0ustar manwarmanwar= Fedora Installation Instructions = == Installation using the Package Manager == === Fedora 15 === Provided versions: perl-Padre-0.84-1.fc15 with wxGTK-2.8.11-4.fc15 and perl-Alien-wxWidgets-0.51-4.fc15 {{{ # yum install perl-Padre }}} === Fedora 14 === Provided versions: perl-Padre-0.64-1.fc14 with wxGTK-2.8.11-3.fc14 and perl-Alien-wxWidgets-0.51-2.fc14 {{{ # yum install perl-Padre }}} Apparently, after this padre will still complain {{{ libwx_gtk2u_stc-2.8.so cannot open shared object file }}} then also install {{{ # yum install wxGTK-devel }}} Related bug, which should be fixed in future versions: https://bugzilla.redhat.com/show_bug.cgi?id=656317 In older releases of Fedora is impossible to update because of Fedora update policy. In case you'd like to have latest Padre, you need update to the latest Fedora or use CPAN installation [wiki:DownloadCPAN install Padre from CPAN]. === Older releases === Older releases are not supported, but if you insist on using them install Padre and wxGTK-devel, which should workaround bugs. {{{ # yum install perl-Padre wxGTK-devel }}} Fedora-13 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11. Fedora-12 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11. Fedora-11 includes Padre-0.32 with Wx Version: 0.91. Fedora-10 includes Padre-0.20 with Wx Version: 0.89. Fedora-9 includes wxGTK-2.8.7 perl-Wx-0.81 perl-Alien-wxWidgets-0.32. Fedora-8 includes Wx Version: 0.74 perl-Alien-wxWidgets-0.31. === Manual rebuild === It is possible rebuild latest Padre source rpm on your computer, but you will need rebuild also _a lot_ of dependencies. It's not recommended and it might be better to use CPAN. If you still like to rebuild it, you can try: {{{ Download source rpm http://koji.fedoraproject.org/koji/packageinfo?packageID=6964 yum install rpm-build rpmbuild --rebuild perl-Padre-yourversion.src.rpm }}} == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_repository.trac0000644000175000017500000000173013401765156022531 0ustar manwarmanwar= Instructions for the Installation from the Repository = 1. Make sure your cpan works - make, gcc, etc. 1. Make sure you remove all traces of wxWidgets 2.6 from your system 1. Install [wiki:wxWidgets] 2.8 or later - {{{cpan Alien::wxWidgets}}} will download and compile and install it for you 1. install (or upgrade) Wx - {{{cpan Wx}}} 1. install Module::Install (if its not already there) 1. add the following settings to cpan: * {{{conf build_requires_install_policy yes}}} * {{{conf prerequisites_policy follow }}} * {{{ o conf commit}}} 1. {{{svn co http://svn.perlide.org/padre/trunk/Padre Padre}}} 1. {{{cd Padre}}} 1. {{{sudo cpan}}} 1. {{{perl dev}}} For a complete checkout including all Padre plugins, branches and supporting stuff, use {{{http://svn.perlide.org/padre/trunk}}} but be warned - this is a huge amount of source! If you're using git-svn , you can use the {{{--revision argument}}} to limit from where git-svn starts fetching revisions. Text-Trac-0.24/t/corpus/padre_features.trac0000644000175000017500000002461613401765156020251 0ustar manwarmanwar[[PageOutline(1-2)]] List of existing and planned features with links to description of each feature with relevant tickets and test cases to make sure the features are implemented correctly. = Features = * multi-platform: [wiki:DownloadWindows Microsoft Windows], [wiki:Download Linux], [wiki:DownloadFreeBSD FreeBSD], [wiki:DownloadMacOSX Mac OS X], [wiki:DownloadNetBSD NetBSD] * Free and Open Source Software under the Perl licensing terms: [http://svn.perlide.org/padre/trunk/Padre/COPYING GPL I] [http://svn.perlide.org/padre/trunk/Padre/Artistic Artistic I] * Written in Perl. There are parts that rely on libraries written in C or C++ but they are all wrapped in CPAN packages and have an API in Perl 5. * [wiki:Features/BasicEditorFeatures Basic Editor Features] * [wiki:Features/VisualEditorEffects Visual Editor Effects] * Line Numbers * Code Folding * Current Line * Right Margin * Newlines * Whitespaces * Indentation Guide * [wiki:Features/SyntaxHighlighting Syntax Highlighting] * [wiki:Features/Run Run a Script] * [wiki:Features/TitleAndStatusBarPersonalization Title and Status Bar Personalization] * [wiki:Features/CommandLineWindow Command Line Window] * [wiki:Features/OpenResource Open Resource] * [wiki:Features/QuickMenuAccess Quick Menu Access] * [wiki:Features/SingleInstance Single Instance] * [wiki:Features/AutoSave Automatic Save and Backup] * [wiki:Features/RemoteEditing Remote Editing via FTP, HTTP, SSH] * [wiki:Features/CooperativeEditing Cooperative Editing] (Swarm) * [wiki:Features/SearchAndReplace Search and Replace] * [wiki:Features/IncrementalSearch Incremental Search] * [wiki:Features/FindInFiles Find In Files] * [wiki:Features/TODOList TODO List] * [wiki:Features/EditPatch Patch] * [wiki:Features/AutoDiff Auto-Diff] * [wiki:Features/CodeSnippets Code Snippets] * [wiki:Features/CPANModuleInstaller CPAN Module Installer] * [wiki:Features/SessionManagement Session Management] * [wiki:Features/SplitView Split View] * [wiki:Features/Bookmarks Bookmarks] * [wiki:Features/RightClick Context Menu] * [wiki:Features/ProjectManagement Project Management] * [wiki:Features/ProjectSkeletonGeneration Project Skeleton Generation] * [wiki:Features/Autocomplete Autocomplete] * [wiki:Features/HelpViewer Help Viewer] * [wiki:Features/ContextSensitiveHelp Context Sensitive Help] * [wiki:Features/RectangularEditing Rectangular Selection and Editing] * [wiki:Features/Autoindent Autoindent] * [wiki:Features/Brackets Bracket Completition and Matching] * [wiki:Features/Outline Code Browser and Var tree called Outline] * [wiki:Features/Autocomplete Source code suggestions and Autocomplete] * [wiki:Features/PreferenceSystem Configuration and Preference System] * [wiki:Features/OpenSelection Open Selection] * Multi-document editing - as far as we understand this only means you can edit several files at the same time * Code-assist editor - What does this cover? * IME - [wiki:Features/MultilingualInputMethodEditor Multilingual Input Method Editor] * [wiki:Features/IntegratedWebServer Integrated Web Server] for web application development * Call tips * [wiki:Features/ToolsPrefernces Tools Prefernces draft] == Perl-specific features == * [wiki:Features/SyntaxChecking Real Time Syntax Checking For Perl 5 and 6] * [wiki:Features/Perl5Debugger Perl 5 Debugger] - perl debugging in Padre * [wiki:Features/RefactoringPerl5 Refactoring Perl 5 code] * [wiki:Features/AutomatedBuildAndTest Automated Build and Test] * [wiki:Features/Perl6 Perl 6 features] * [wiki:Features/RegexEditor Regex Editor] * [wiki:PluginAPI Extendable in Perl 5] via a Powerful [wiki:PluginAPI Plugin API] * [wiki:Features/PerlTidy] - automatic reformatting (tidying) of code * [wiki:Features/REPL REPL] * [wiki:Features/ProjectBrowser Project Browser] (Tree view of source files and resources) * [wiki:Features/IdentifyCommonErrors Identify Common Errors] * special features for beginners (we can create a page listing them) * advanced features (we can create a page listing them) * [wiki:Features/Extendable Extendable in Perl 6 and other languages] * [wiki:Features/HandleMultipleLanguages] == Plugins == * [wiki:Plugins] generic plugins related tickets * [wiki:Features/IntegratedVersionControl Integrated Version Control] * [wiki:Features/SuperGrep Super Grep] = Feature requests and ideas from other sources = In this section we have lists of features taken from verious articles and web sites comparing tools and even from other IDEs. For each feature we first link it to a related ticket but later on we will point to the description of our implementation of that feature. == From Perlmonks == Perlmonks has a table comparing features of IDEs and editors to be used for Perl development. The table can be found at [http://www.perlmonks.org/?node=Perl%20Development%20Tools Perl Development Tools] TODO: add links to the relevant Feature Pages || '''Feature''' || '''Status or link to ticket''' || || Perl Exclusive || Why is yes considered good here? || || Free || yes - Under the "perl" license. || || Perl Engine || Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl || || [wiki:Features/SyntaxChecking Syntax Checking] || yes || || [wiki:Features/SyntaxHighlighting Syntax colouring] || yes || || [wiki:Features/Autoindent Autoindent] || yes || || [wiki:Features/IncrementalSearch Incremental search] || yes || || [wiki:Features/Brackets Bracket Completition and Matching] || yes || || Folding || see under [wiki:Features/VisualEditorEffects Visual Editor Effects] || || Var tree || see in [wiki:Features/Outline Outline] || || Code browser || see in [wiki:Features/Outline Outline] || || Debugger || [wiki:Features/Perl5Debugger Perl 5 Debugger] || || Stepping || See Debugger || || Breakpoints || See Debugger || || Watches || See Debugger || || Var evaluation || See Debugger || || Stack module || See Debugger || || [wiki:Features/Bookmarks Bookmarks] || yes || || Suggest & complete || see #67 but add more || || [wiki:Features/IdentifyCommonErrors Identify errors] || also [wiki:Features/SyntaxChecking Syntax Checking] || || [wiki:Features/REPL Interactive shell] || || || [wiki:Features/CodeSnippets Code snippets] || yes || || [wiki:Features/ProjectManagement Project] || || || Control version || [wiki:Features/IntegratedVersionControl Integrated Version Control] || || Multi document || yes || || [wiki:Features/SplitView Split View] || || || IME || Multilingual Input Method Editor || || [wiki:Features/HelpViewer Docs & Help viewer] || yes || || [wiki:Features/CPANModuleInstaller Module installer] || || || WEB || [wiki:Features/IntegratedWebServer Integrated Web Server] || || FTP || #12 Read and write over ftp protocol (modify the program at remote server) || || HTML export || #112 To export the source of program with the syntax colouring. || || Linux || [wiki:Download] || || BSD || [wiki:DownloadFreeBSD] and [wiki:DownloadNetBSD] || || Mac OS X || [wiki:DownloadMacOSX] || || Solaris || || || Windows || [wiki:DownloadWindows] || == From Perl Needs Better Tools == [http://www.eigenstate.net/perl_tools/ Perl Needs Better Tools] by Matisse Enzer ||'''Feature''' || '''Status or link to ticket''' || ||[wiki:Features/SyntaxHighlighting Syntax coloring] || || ||[wiki:Features/SyntaxChecking Real Time Syntax Checking] || || ||[wiki:Features/IntegratedVersionControl Version control integration] || || ||Code-assist editor || || ||Excellent refactoring support || [wiki:Features/RefactoringPerl5 Refactoring Perl 5 code] || ||Tree view of source files and resources || || ||Support for creating and running unit tests || [wiki:Features/AutomatedBuildAndTest Automated Build and Test] || ||Language-specific help || [wiki:Features/ContextSensitiveHelp Context Sensitive Help] || ||Run your code under a debugger with real-time display of results || || ||Automatic reformatting of code. || || ||handling of multiple languages || || ||Automated build and test || || == From Enlightened Perl == Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/ to see how Padre can provide a GUI for their efforts. Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module and see how Padre can provide a GUI (via a plugin or in core Padre) for them. == From Competitors == See the [wiki:'Competitor Analysis'] == From Eclipse EPIC == [http://www.eclipse.org/cdt/ Eclipse CDT - C/C++ Development Tooling] [http://www.eclipse.org/jdt/ Eclipse Java development tools (JDT)] Some of these features are only relevant (or possible) for C/C++ or Java ||'''Feature''' || '''Status or link to ticket''' || ||Find all references || || ||Find definition/declaration/usage || || ||Type Hierarchy || || ||Call Hierarchy (or call graph) || || ||[wiki:Features/RefactoringPerl5 Refactoring] || || ||[wiki:Features/SourceNavigation Source navigation] || || ||[wiki:Features/SyntaxHighlighting Syntax highlighting] || || ||Code folding || under [wiki:Features/VisualEditorEffects Visual Editor Effects] || ||Hyperlink navigation || || ||Include browser || || ||Project creation || [wiki:Features/ProjectSkeletonGeneration Project Skeleton Generation] || ||Managed build for various toolchains || || ||Standard make build || Via Run menu || ||Macro definition browser || || ||Code generation || partly (File -> New...) || ||Visual debugging tools || || ||Memory, registers, and disassembly viewers || || Text-Trac-0.24/t/corpus/padre_wxformbuilder.trac0000644000175000017500000000252213401765156021314 0ustar manwarmanwar= Building GUI for Padre = Building GUI for Padre can be done either manually as we did earlier or using the wxFormBuilder. 1. a. For Windows download wxFormBuilder from http://sourceforge.net/projects/wxformbuilder/ b. For Ubuntu visit https://launchpad.net/ubuntu/+source/wxformbuilder or better yet https://launchpad.net/~rjmyst3/+ppa-packages 2. Use Padre::Plugin::FormBuilder. It is not released on CPAN so you need to install it from our repository. 3. Please follow this discussion http://irclog.perlgeek.de/padre/2010-12-10#i_3072846 The actual process is 1. Using wxFormBuilder open the appropriate file in the project fbp directory. 2. Install FormBuilder plugin from SVN (it's not good enough to release) 1. NOTE: you need to install the FormBuilder plugin (not just run it with 'dev -a') as it uses File::ShareDir, which only seems to work fro installed files. 3. Use the FormBuilder plugin to generate the code for the dialog. 4. Save the code over the top of the existing .pm module in the Padre::Wx::FBP namespace with no modifications. The ::FBP:: namespace is designed specifically for this purpose, to hold unmodified generated files. 5. Open the Padre::Wx::Dialog:: module, which inherits from the ::FBP:: module. Edit to apply any custom changes needed to match the generated code. = Building GUI application = TBD. Text-Trac-0.24/t/corpus/padre_download_mandriva.trac0000644000175000017500000000146713401765156022122 0ustar manwarmanwar= Madriva Installation Instructions = == Installation using the Package Manager == Mandriva 2009.0 comes with pre-packaged Padre 0.10. Mandriva 2009.1 will ship Padre 0.29. Mandriva cooker (development version) is following upstream quite closely. To install padre: {{{ # urpmi perl-Padre }}} == Installation from CPAN == === Mandriva 2008.1 === To install Padre enter the following commands: {{{ # urpmi perl-Alien-wxWidgets # urpmi perl-Wx $ cpan cpan> install Padre }}} == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. Text-Trac-0.24/t/corpus/padre_download_windows.trac0000644000175000017500000000474013401765156022010 0ustar manwarmanwar= Windows Installation Instructions = == Padre on Strawberry Perl == Now this is the featured installer on http://padre.perlide.org/download.html It is an executable installer that will also configure the PATH environment and configure Strawberry to be usable from any installation path. (You probably need to avoid spaces and non-ascii characters in the path) If you have other Perls installed you will also have to make sure the PATH always contains entries to the one you actually want to use. If you don't want to change your PATH ambient variable you can create a new Shortcut on your Desktop and specify "C:\Strawberry\perl\bin\perl.exe C:\strawberry\perl\site\bin\padre" as shortcut destination. Double-clicking on this, you will launch Padre using Strawberry interpreter. Release notes are in [http://svn.perlide.org/padre/trunk/tools/padre_on_strawberry_release_notes.txt the SVN repository.] == Binary Installation == The most convenient way to get Padre is via the Padre Standalone package. See the http://padre.perlide.org/download.html page for details. == Installation from CPAN == Depending on which version of Perl you use, there are different instructions: * [wiki:DownloadStrawberryPerl] * [wiki:DownloadActivePerl] On Windows, the installation of IPC::Run (0.82) hangs sometimes - install it using {{{ cpan> force install notest IPC::Run }}} == Still Not Working? == Following the instructions on this page did not lead to a successful installation? [http://padre.perlide.org/contact.html Contact us]. We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself. == Troubleshooting Padre on Strawberry Perl == A couple of ideas what to check if Padre does not launch: * Is this the only perl on the system? * Was it installed in a path that does not contain spaces (or non-ascii characters?) * What version of Windows do you run. * Is there any space or non-ascii character in the username? * Open a command window (Start/Run/cmd) and type padre there * in the command window type perl c:\strawberry\perl\site\bin\padre * perl c:\strawberry\perl\site\bin\padre --version * Is there some firewall or access control that might prevent the server to launch and padre does not survive it? * The configuration files should be in "C:\Documents and Settings\USERNAME\Local Settings\Application Data\Perl\Padre" maybe deleting them will allow Padre to launch Text-Trac-0.24/t/04-list.t0000644000175000017500000000462313401765156014447 0ustar manwarmanwaruse strict; use warnings; use t::TestTextTrac; run_tests; __DATA__ ### ul node another pattern 1 --- input * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 --- expected
  • 1
  • 2
    • 3
    • 4
      • 5
      • 6
  • 7
  • 8
### ul node another pattern 2 --- input * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 --- expected
  • 1
  • 2
    • 3
    • 4
      • 5
      • 6
  • 7
  • 8
### ol node another pattern 1 --- input a. 1 a. 2 a. 3 a. 4 a. 5 a. 6 a. 7 a. 8 --- expected
  1. 1
  2. 2
    1. 3
    2. 4
      1. 5
      2. 6
  3. 7
  4. 8
### ol node another pattern 2 --- input a. 1 a. 2 a. 3 a. 4 a. 5 a. 6 a. 7 a. 8 --- expected
  1. 1
  2. 2
    1. 3
    2. 4
      1. 5
      2. 6
  3. 7
  4. 8
### 2 set of ul nodes --- input * list 1-1 * list 1-2 * list 1-3 * list 2-1 * list 2-2 * list 2-3 --- expected
  • list 1-1
  • list 1-2
  • list 1-3
  • list 2-1
  • list 2-2
  • list 2-3
### 2 set of ol nodes --- input a. list 1-1 a. list 1-2 a. list 1-3 a. list 2-1 a. list 2-2 a. list 2-3 --- expected
  1. list 1-1
  2. list 1-2
  3. list 1-3
  1. list 2-1
  2. list 2-2
  3. list 2-3
### SVN::Notify set example set. --- input * Item 1 * Item 1.1 * Item 1.1.1 * Item 1.1.2 * Item 1.1.3 * Item 1.2 * Item 2 --- expected
  • Item 1
    • Item 1.1
      • Item 1.1.1
      • Item 1.1.2
      • Item 1.1.3
    • Item 1.2
  • Item 2
### SVN::Notify set example set.(ol) --- input a. Item 1 a. Item 1.1 a. Item 1.1.1 a. Item 1.1.2 a. Item 1.1.3 a. Item 1.2 a. Item 2 --- expected
  1. Item 1
    1. Item 1.1
      1. Item 1.1.1
      2. Item 1.1.2
      3. Item 1.1.3
    2. Item 1.2
  2. Item 2
### ol start with 2 --- input 2. Item 1 2. Item 2 --- expected
  1. Item 1
  2. Item 2
Text-Trac-0.24/t/05-disable_links.t0000644000175000017500000000106413401765156016274 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::Base; use Text::Trac; delimiters('###'); plan tests => 1 * blocks; my $p = Text::Trac->new( disable_links => [qw( log milestone )] ); sub parse { local $_ = shift; $p->parse($_); $p->html; } filters { input => 'parse', expected => 'chomp' }; run_is 'input' => 'expected'; __DATA__ ### log --- input r1:3 --- expected

r1:3

### milestone --- input milestone:1.0 --- expected

milestone:1.0

### ticket --- input ticket:1 --- expected

ticket:1

Text-Trac-0.24/t/03-trac-links.t0000644000175000017500000001736213401765156015546 0ustar manwarmanwaruse strict; use warnings; use t::TestTextTrac; run_tests; __DATA__ ### ticket link test 1 --- input #1 --- expected

#1

### ticket link test 2 --- input ticket:1 --- expected

ticket:1

### ticket link test 3 --- input !#1 --- expected

#1

### ticket link test 4 --- input !ticket:1 --- expected

ticket:1

### ticket link test 5 --- input [ticket:1] --- expected

1

### ticket link test 6 --- input [ticket:1 ticket 1] --- expected

ticket 1

### ticket link test 7 --- input ![ticket:1] --- expected

[ticket:1]

### report link test 1 --- input {1} --- expected

{1}

### report link test 2 --- input report:1 --- expected

report:1

### report link test 3 --- input !{1} --- expected

{1}

### report link test 4 --- input !report:1 --- expected

report:1

### report link test 5 --- input [report:1] --- expected

1

### report link test 6 --- input [report:1 report 1] --- expected

report 1

### report link test 7 --- input ![report:1] --- expected

[report:1]

### changeset link test 1 --- input [1] --- expected

[1]

### changeset link test 2 --- input changeset:1 --- expected

changeset:1

### changeset link test 3 --- input r1 --- expected

r1

### changeset link test 4 --- input [changeset:1] --- expected

1

### changeset link test 5 --- input [changeset:1 changeset 1] --- expected

changeset 1

### changeset link test 6 --- input ![1] --- expected

[1]

### changeset link test 7 --- input !changeset:1 --- expected

changeset:1

### changeset link test 8 --- input !r1 --- expected

r1

### changeset link test 9 --- input ![changeset:1] --- expected

[changeset:1]

### revision log link test 1 --- input r1:3 --- expected

r1:3

### revision log link test 2 --- input [1:3] --- expected

[1:3]

### revision log link test 3 --- input log:#1:3 --- expected

log:#1:3

### revision log link test 4 --- input [log:#1:3] --- expected

#1:3

### revision log link test 5 --- input [log:#1:3 log 1 - 3] --- expected

log 1 - 3

### wiki link test 1 --- input TracLinks --- expected

TracLinks

### wiki link test 2 --- input wiki:trac_links --- expected

wiki:trac_links

### wiki link test 3 --- input !TracLinks --- expected

TracLinks

### wiki link test 4 --- input !wiki:TracLinks --- expected

wiki:TracLinks

### wiki link test 5 --- input [wiki:TracLinks Trac Links] --- expected

Trac Links

### milestone link test 1 --- input milestone:1.0 --- expected

milestone:1.0

### milestone link test 2 --- input [milestone:1.0] --- expected

1.0

### milestone link test 3 --- input [milestone:1.0 milestone 1.0] --- expected

milestone 1.0

### milestone link test 4 --- input !milestone:1.0 --- expected

milestone:1.0

### milestone link test 5 --- input ![milestone:1.0] --- expected

[milestone:1.0]

### attahcment link test 1 --- input attachment:ticket:33:DSCF0001.jpg --- expected

attachment:ticket:33:DSCF0001.jpg

### attahcment link test 2 --- input attachment:wiki:TracLinks:DSCF0001.jpg --- expected

attachment:wiki:TracLinks:DSCF0001.jpg

### attahcment link test 3 --- input [attachment:ticket:33:DSCF0001.jpg] --- expected

ticket:33:DSCF0001.jpg

### attahcment link test 4 --- input [attachment:ticket:33:DSCF0001.jpg file] --- expected

file

### attahcment link test 5 --- input !attachment:ticket:33:DSCF0001.jpg --- expected

attachment:ticket:33:DSCF0001.jpg

### attahcment link test 6 --- input !attachment:wiki:TracLinks:DSCF0001.jpg --- expected

attachment:wiki:TracLinks:DSCF0001.jpg

### attahcment link test 7 --- input ![attachment:wiki:TracLinks:DSCF0001.jpg] --- expected

[attachment:wiki:TracLinks:DSCF0001.jpg]

### source link test 1 --- input source:trunk/COPYING --- expected

source:trunk/COPYING

### source link test 2 --- input source:trunk/COPYING#200 --- expected

source:trunk/COPYING#200

### source link test 3 --- input [source:trunk/COPYING] --- expected

trunk/COPYING

### source link test 4 --- input [source:trunk/COPYING COPYING] --- expected

COPYING

### source link test 5 --- input [source:trunk/COPYING#200] --- expected

trunk/COPYING#200

### source link test 6 --- input [source:trunk/COPYING#200 COPYING] --- expected

COPYING

### source link test 7 --- input !source:trunk/COPYING --- expected

source:trunk/COPYING

### source link test 8 --- input !source:trunk/COPYING#200 --- expected

source:trunk/COPYING#200

### source link test 9 --- input ![source:trunk/COPYING] --- expected

[source:trunk/COPYING]

### escaping links and wiki page names --- input == EscapingLinksand!WikiPageNames == --- expected

EscapingLinksandWikiPageNames

### comment link test 1 --- input comment:ticket:1:8 --- expected

comment:ticket:1:8

Text-Trac-0.24/t/07-custom_url.t0000644000175000017500000000336713401765156015677 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::Base; use Text::Trac; delimiters('###'); plan tests => 1 * blocks; my $p = Text::Trac->new( trac_attachment_url => 'http://mizzy.org/attachment', trac_changeset_url => 'http://mizzy.org/changeset', trac_log_url => 'http://mizzy.org/log', trac_milestone_url => 'http://mizzy.org/milestone', trac_report_url => 'http://mizzy.org/report', trac_source_url => 'http://mizzy.org/source', trac_ticket_url => 'http://mizzy.org/ticket', trac_wiki_url => 'http://mizzy.org/wiki', ); sub parse { local $_ = shift; $p->parse($_); $p->html; } filters { input => 'parse', expected => 'chomp' }; run_is 'input' => 'expected'; __DATA__ ### attachment --- input attachment:ticket:33:DSCF0001.jpg --- expected

attachment:ticket:33:DSCF0001.jpg

### changeset --- input [1] --- expected

[1]

### revision log --- input r1:3 --- expected

r1:3

### milestone --- input milestone:1.0 --- expected

milestone:1.0

### report --- input {1} --- expected

{1}

### source --- input source:trunk/COPYING --- expected

source:trunk/COPYING

### ticket --- input #1 --- expected

#1

### wiki --- input TracLinks --- expected

TracLinks

Text-Trac-0.24/t/10-script.t0000644000175000017500000000200113401765156014761 0ustar manwarmanwaruse strict; use warnings; use Test::More tests => 2; #use Test::Differences qw(eq_or_diff); use File::Temp qw(tempdir); use Path::Tiny qw(path); my $dir = tempdir( CLEANUP => 1 ); subtest usage => sub { plan tests => 1; my $out = qx{$^X script/trac2html}; like $out, qr{Usage: script/trac2html}; #diag $out; }; my @cases = qw( padre_download_debian padre_download_fedora padre_download_mandriva padre_download_opensuse padre_download_ubuntu padre_download_freebsd padre_download_netbsd padre_development padre_features ); # Ubuntu generates warnings subtest full_html => sub { plan tests => 2 * @cases; foreach my $case (@cases) { my $out = qx{$^X script/trac2html --infile t/corpus/$case.trac --outfile $dir/$case.html --class --id --span}; is $out, '', 'out'; my $html_generated = path("$dir/$case.html")->slurp_utf8; my $html_expected = path("t/expected/$case.html")->slurp_utf8; #eq_or_diff $html_generated, $html_expected, 'Mandriva'; is $html_generated, $html_expected, $case; } }; Text-Trac-0.24/t/13-script-noclass-noid-nospan.t0000644000175000017500000000235713401765156020665 0ustar manwarmanwaruse strict; use warnings; use Test::More tests => 2; #use Test::Differences qw(eq_or_diff); use File::Temp qw(tempdir); use Path::Tiny qw(path); my $dir = tempdir( CLEANUP => 1 ); subtest usage => sub { plan tests => 1; my $out = qx{$^X script/trac2html}; like $out, qr{Usage: script/trac2html}; #diag $out; }; my @cases = qw( padre_download_debian padre_download_fedora padre_download_opensuse padre_download_ubuntu padre_download_netbsd padre_development padre_download_mandriva padre_download_freebsd padre_features padre_download_osx padre_download_windows padre_download_activeperl padre_download_cpan padre_download_perlbrew padre_download_repository padre_faq padre_wxformbuilder padre_wxwidgets padre_translationstyle padre_wikistart ); # Ubuntu generates warnings subtest full_html => sub { plan tests => 2 * @cases; foreach my $case (@cases) { my $out = qx{$^X script/trac2html --infile t/corpus/$case.trac --outfile $dir/$case.html}; is $out, '', 'out'; my $html_generated = path("$dir/$case.html")->slurp_utf8; my $html_expected = path("t/expected/${case}_noclass_noid_nospan.html")->slurp_utf8; #eq_or_diff $html_generated, $html_expected, 'Mandriva'; is $html_generated, $html_expected, $case; } }; Text-Trac-0.24/t/06-enable_links.t0000644000175000017500000000116313401765156016120 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::Base; use Text::Trac; delimiters('###'); plan tests => 1 * blocks; my $p = Text::Trac->new( enable_links => [qw( log milestone )] ); sub parse { local $_ = shift; $p->parse($_); $p->html; } filters { input => 'parse', expected => 'chomp' }; run_is 'input' => 'expected'; __DATA__ ### log --- input r1:3 --- expected

r1:3

### milestone --- input milestone:1.0 --- expected

milestone:1.0

### ticket --- input ticket:1 --- expected

ticket:1

Text-Trac-0.24/t/expected/0000755000175000017500000000000013403124170014645 5ustar manwarmanwarText-Trac-0.24/t/expected/padre_download_opensuse.html0000644000175000017500000000233413401765156022455 0ustar manwarmanwar

openSUSE Installation Instructions

Installation using the Package Manager

Installation from CPAN

  1. Add the packman repository.
  2. Install the package »wxWidgets-devel« and the schema »C/C++ Development«.

[[Image(yast.png)]] 3. Install Padre from CPAN.

Configure make_install_make_command and mbuild_install_build_command to enable sudo support in CPAN.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_osx_noclass_noid_nospan.html0000644000175000017500000002704013401765156025537 0ustar manwarmanwar

[[PageOutline(1-5, Table of Contents, floated)]] = DMG Betas =

As a beta release, Padre is available as a packaged Application for OsX.

See this page for the latest DMG: http://wildperl.com/padreonosx/

This is a beta and we could really use your help. We need more OSX testers, and any help you can give us, even saying it runs fine for you, is important.

Open tickets can be found here: osxbugs, and hop on to IRC as the best way to report any issues and give feedback.

Installation from source

There are several methods of installing Padre from source. As such, they require some familiarity with command-line usage of OsX.

**System Perl vs User Perl:** Padre requires a 32bit version of Perl and wxWidgets 2.8.12. These are not the default on OsX. Additionally, the default "system" perl on OsX may be altered or changed in the course of software updates from Apple. Consequently, building Padre requires creating a self-contained perl, wxWidgets, and Padre.

**Xcode:** On OsX most of the common development utilities that are referenced by perl (gcc, make, etc) are provided by installing Xcode. The instruction sets below assume that you have installed these or reasonable substitutes on your system, that they are properly in your path, etc.

**Wx Tests:** There will be a point where you are compiling Wx. The tests for Wx involve generating many window primitives. These tests will fail if they are run inside of a gnu-screen or ssh session. (The error message might be a bit strange: stating issues creating the clipboard because of permissions.) Additionally, during the test cycle many of the tests will grab focus on the UI. This will make your system unusable for a short period of time. Let the tests run. If you try to quit out of them, you will cause the tests to fail and it will halt the compile.

Option 1 - Installation with Citrus Perl

Cirtus Perl is a portable distribution of perl that has pre-built Wx binaries and integration. A shortened form of installation instructions is below. Refer to the installation instructions on the download page below if you want full details.

- Download Citrus Perl from http://www.citrusperl.com/platform/macosx.html - Unpack Citrus Perl into your favorite dev location: #!sh

cd ~/dev tar xzvf ~/Downloads/citrusperl-standard-51402-20903-osx-i32-014.tar.gz

- This has created a "CitrusPerl" directory that has a fully isolated install of perl, including Wx. You can also use CPAN to add to this perl without polluting your system's install of perl with additional modules. (Also meaning that an apple update will not break your version of perl if you use this.) - Configure Cirtus Perl to work in its new location #!sh

./CitrusPerl/bin/relocateperl ./CitrusPerl/bin/citrusvars.sh

- At this point you can put Citrus Perl in your path. Set it ahead of other entries by putting the line below as the last line in your .bash_profile. That will make any command line invocation of perl or cpan use Citrus Perl and not your system perl. Substitute /Users/joe/dev below with your chosen installation directory. #!sh

export PATH=/Users/joe/dev/CitrusPerl/bin:$PATH

- Reload your .bash_profile to use the new path #!sh

source ~/.bash_profile

- To install Padre, use cpan and run the command install Padre. This will build all required dependencies along the way, so it will take some time. #!sh

cpan > install Padre > exit

- Padre should now be in your path and usable on the command line #!sh

padre

padre cpan source ~/.bash_profile export PATH=/Users/joe/dev/CitrusPerl/bin:$PATH ./CitrusPerl/bin/relocateperl

Option 2 - Installation with Mac Ports

Mac Ports is a project to provide many GNU and Open Source utilities to OsX. It packages and installs them in /opt/local.

- Mac Ports can be downloaded and installed as a package from http://www.macports.org/install.php and configured: #!sh

sudo port -f selfupdate

- Remember to follow the instructions to put Mac Ports first in your path so the Ports version of perl will execute when called on the command line: #!sh

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

- Install Perl and Wx (This will include many dependencies and take some time to compile and complete.) #!sh

sudo port install perl5 +threads sudo port install wxWidgets

- Install Padre via CPAN #!sh

sudo /opt/local/bin/cpan > install Padre

- Padre should now be in your path and usable on the command line #!sh

padre

padre sudo /opt/local/bin/cpan sudo port install perl5 +threads export PATH=/opt/local/bin:/opt/local/sbin:$PATH

Option 3 - Compiling a Perl with Perl Brew

We are attempting to automate the process using the bin/padre-brew.pl available here.

If you want to build on your own you should note the environment settings and build parameters used on OSX Lion, or refer to the bin/padre-brew.pl source for other OSX levels.

Installing on top of the system Perl

//As stated above, this is not recommended. You are manipulating portions of the system OS which may be changed in the future by Apple and/or you may cause unintended side-effects in your OS.//

Pre-Lion versions of OsX had varying levels of Perl, Wx and sometimes wxPerl installed. Sometimes with a minimum of effort, a functioning wxPerl and Padre could be made to work. (OS X 10.4 has wxPerl 0.22, 10.5 has a more recent version (0.6x for some x))

Generally, you do not use the system 'perl' executable, but build a 'wxPerl' executable (see this thread regarding wxPerl invocation).

Reading up on installation using pkgsrc may also help.

Checking what versions you currently have

If you have trouble you can check which version of wxWidgets you have: #!perl $ perl -MWx -le'print "Wx Version: $Wx::VERSION " . Wx::wxVERSION_STRING()' and on Mac: #!perl $ wxPerl -MWx -le'print "Wx Version: $Wx::VERSION " . Wx::wxVERSION_STRING()' We use Wx 0.87 and wxWidgets 2.8.8 so you probably should have those (or newer) too.

Installation from CPAN

The most straightforward method is to install everything from source. This will ignore any existing wxWidgets installation.

  1. $ wxPerl -MCPAN -eshell
  2. [cpan] $ install Alien::wxWidgets [choose install from source, which is NOT the default]
  3. Go do something else while it compiles wxWidgets.
  4. [cpan] $ install Wx
  5. [cpan] $ install Padre

Padre has a LOT of prerequisites. You're likely to run into some problems with tests failing. IPC::Run3 was a particular problem due to its prerequisites, but a later individual install worked fine. Just make your way through them all, and 'force notest install $module' as needed. Once you've got padre installed you start it by running /usr/local/bin/padre.

Notes on building wxWdigets from source

When installing Alien::wxWidgets it will ask if you want to compile wxWidgets. Do you want to fetch and build wxWidgets from sources? If you don't have any installed or if you have an old version (< 2.8.8) then you should answer yes. It will try to download the source code of wxWidgets which is big and the download often fails.

To get around that you can download the file manually and put it in the extracted directory of Alien::wxWidgets.

Something like this: #!sh

$ cd /tmp $ wget http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.8.tar.gz $ cpan cpan> look Alien::wxWidgets $ cp /tmp/wxWidgets-2.8.8.tar.gz . $ perl Makefile.PL $ make $ make test $ make install $ exit cpan>quit $

Variation 1 - Taking the lazy way

If you're lazy and enjoy taking risks... the easiest way to install on OSX may be (there will be some test failures - which you'll have to force install, including Padre itself, due to wxPerl issues):

#!sh cpan Alien::wxWidgets wxPerl -MCPAN -eshell

$ install Padre

and then replace the /usr/local/bin/padre script with the updated version at http://padre.perlide.org/trac/browser/trunk/Padre/script/padre

After installing Alien::wxWidget there are new versions of wx-config and wxrc somewhere in your Perl Library Path, (mine went under site_perl/darwin-thread-multi-2level/Alien/wxWidgets/mac_2_8_10_uni/bin), which need to be first in your PATH, otherwise Wx might build against the wrong Library. As an alternative you can set an environment variable WX_CONFIG which has to point to the new wx-config executable. See the Wx docs for more info.

Variation 2 - Using a package manager for the Wx portion

Aside from building from source, you can also install newer versions of Wx on OS X using a package manager:

Fink #!sh fink install wxmac28

Mac Ports #!sh port install wxWidgets

Creating an App Icon for your command-line Padre

It is possible to create an Application icon to launch your command-line version of Padre. You can create an Applescript application to do this.

Launch the Applescript Editor from the Utilities folder in the Applications folder.

You will enter a line to launch padre which which uses the full path of your preferred perl and padre.

For Mac ports: #!sh

do shell script "/opt/local/bin/perl /opt/local/bin/padre"

For Citrus Perl: (change /Users/joe/dev/ to your path for Citrus Perl) #!sh

do shell script "/Users/joe/dev/CitrusPerl/i32/5-12/bin/perl /Users/joe/dev/CitrusPerl/i32/5-12/site/bin/padre"

Select "Save As" under the file menu. Select the format of "Application." Name it what you'd like and install it where you'd like it to be. (IE: the Applications folder)

Clicking on this icon should now launch Padre.


= Links * http://www.perlmonks.org/?node_id=910271

Text-Trac-0.24/t/expected/padre_features_noclass.html0000644000175000017500000003507213401765156022272 0ustar manwarmanwar

[[PageOutline(1-2)]]

List of existing and planned features with links to description of each feature with relevant tickets and test cases to make sure the features are implemented correctly.

Features

* Tools Prefernces draft

Perl-specific features

Plugins

Feature requests and ideas from other sources

In this section we have lists of features taken from verious articles and web sites comparing tools and even from other IDEs.

For each feature we first link it to a related ticket but later on we will point to the description of our implementation of that feature.

From Perlmonks

Perlmonks has a table comparing features of IDEs and editors to be used for Perl development.

The table can be found at Perl Development Tools

TODO: add links to the relevant Feature Pages

Feature Status or link to ticket
Perl Exclusive Why is yes considered good here?
Free yes - Under the "perl" license.
Perl Engine Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl
Syntax Checking yes
Syntax colouring yes
Autoindent yes
Incremental search yes
Bracket Completition and Matching yes
Folding see under Visual Editor Effects
Var tree see in Outline
Code browser see in Outline
Debugger Perl 5 Debugger
Stepping See Debugger
Breakpoints See Debugger
Watches See Debugger
Var evaluation See Debugger
Stack module See Debugger
Bookmarks yes
Suggest & complete see #67 but add more
Identify errors also Syntax Checking
Interactive shell
Code snippets yes
Project
Control version Integrated Version Control
Multi document yes
Split View
IME Multilingual Input Method Editor
Docs & Help viewer yes
Module installer
WEB Integrated Web Server
FTP #12 Read and write over ftp protocol (modify the program at remote server)
HTML export #112 To export the source of program with the syntax colouring.
Linux Download
BSD DownloadFreeBSD and DownloadNetBSD
Mac OS X DownloadMacOSX
Solaris
Windows [wiki:DownloadWindows]

From Perl Needs Better Tools

Perl Needs Better Tools by Matisse Enzer

Feature Status or link to ticket
Syntax coloring
Real Time Syntax Checking
Version control integration
Code-assist editor
Excellent refactoring support Refactoring Perl 5 code
Tree view of source files and resources
Support for creating and running unit tests Automated Build and Test
Language-specific help Context Sensitive Help
Run your code under a debugger with real-time display of results
Automatic reformatting of code.
handling of multiple languages
Automated build and test

From Enlightened Perl

Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/ to see how Padre can provide a GUI for their efforts. Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module and see how Padre can provide a GUI (via a plugin or in core Padre) for them.

From Competitors

See the 'Competitor Analysis'

From Eclipse EPIC

Eclipse CDT - C/C++ Development Tooling Eclipse Java development tools (JDT)

Some of these features are only relevant (or possible) for C/C++ or Java

Feature Status or link to ticket
Find all references
Find definition/declaration/usage
Type Hierarchy
Call Hierarchy (or call graph)
Refactoring
Source navigation
Syntax highlighting
Code folding under Visual Editor Effects
Hyperlink navigation
Include browser
Project creation Project Skeleton Generation
Managed build for various toolchains
Standard make build Via Run menu
Macro definition browser
Code generation partly (File -> New...)
Visual debugging tools
Memory, registers, and disassembly viewers
Text-Trac-0.24/t/expected/padre_download_fedora_noclass.html0000644000175000017500000000530013401765156023572 0ustar manwarmanwar

Fedora Installation Instructions

Installation using the Package Manager

Fedora 15

Provided versions: perl-Padre-0.84-1.fc15 with wxGTK-2.8.11-4.fc15 and perl-Alien-wxWidgets-0.51-4.fc15 # yum install perl-Padre

Fedora 14

Provided versions: perl-Padre-0.64-1.fc14 with wxGTK-2.8.11-3.fc14 and perl-Alien-wxWidgets-0.51-2.fc14 # yum install perl-Padre Apparently, after this padre will still complain libwx_gtk2u_stc-2.8.so cannot open shared object file

then also install # yum install wxGTK-devel

Related bug, which should be fixed in future versions: https://bugzilla.redhat.com/show_bug.cgi?id=656317

In older releases of Fedora is impossible to update because of Fedora update policy. In case you'd like to have latest Padre, you need update to the latest Fedora or use CPAN installation install Padre from CPAN.

=== Older releases === Older releases are not supported, but if you insist on using them install Padre and wxGTK-devel, which should workaround bugs. # yum install perl-Padre wxGTK-devel

Fedora-13 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-12 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-11 includes Padre-0.32 with Wx Version: 0.91.

Fedora-10 includes Padre-0.20 with Wx Version: 0.89.

Fedora-9 includes wxGTK-2.8.7 perl-Wx-0.81 perl-Alien-wxWidgets-0.32.

Fedora-8 includes Wx Version: 0.74 perl-Alien-wxWidgets-0.31.

Manual rebuild

It is possible rebuild latest Padre source rpm on your computer, but you will need rebuild also _a lot_ of dependencies. It's not recommended and it might be better to use CPAN. If you still like to rebuild it, you can try: Download source rpm http://koji.fedoraproject.org/koji/packageinfo?packageID=6964 yum install rpm-build rpmbuild --rebuild perl-Padre-yourversion.src.rpm

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_perlbrew_noclass_noid_nospan.html0000644000175000017500000000376313401765156026556 0ustar manwarmanwar

The combination of perlbrew http://perlbrew.pl and cpanminus http://search.cpan.org/dist/App-cpanminus/lib/App/cpanminus.pm allows you to easily build your own Perl installation and add additional CPAN programs (including Padre) without bothering to setup a CPAN client.

perlbrew is a tool to manage multiple perl installations in your $HOME directory. They are completely isolated perl universes. This approach has many benefits: * No need to run sudo to install CPAN modules, any more. * Try the monthly released new perls. * Learn new language features. * Test production code. * Leave vendor perl (the one that comes with OS) alone

cpanminus is a script to get, unpack, build and install modules from CPAN and does nothing else. It's dependency free (can bootstrap itself), requires zero configuration, and stands alone. When running, it requires only 10MB of RAM.

The websites of both project explain how to install them. Once the perlbrew and cpanminus is setup, you can install Padre by simply typing "cpanm Padre" in a shell.

Additionall howtos (by a Padre developer), can be found below. The examples were taken from a Debian/Ubuntu and Solaris system, but it's applicable to other systems as well: - Get the latest Perl release with perlbrew http://nxadm.wordpress.com/2010/12/10/get-the-latest-perl-release-with-perlbrew/ - App::cpanminus: zero-conf CPAN client http://nxadm.wordpress.com/2010/12/10/appcpanminus-zero-conf-cpan-client/ - Build Padre svn easily with perlbrew and cpanm http://nxadm.wordpress.com/2010/12/10/build-padre-svn-easily-with-perlbrew-and-cpanm/

Text-Trac-0.24/t/expected/padre_download_ubuntu.html0000644000175000017500000001527213401765156022143 0ustar manwarmanwar

Ubuntu Installation Instructions

Apparently Ubuntu 11.04 also comes with broken wxWidgets or broken Wx. see here too

Please follow the instructions below to manually install (again) the wx related modules. Probably the best way is to use local::lib so your installation won't interfere with the system installation.

=== If you have upgraded to **natty**(11.04) from mavrick(10.10), * to install the wx library files you can #!sh $sudo apt-get install libwxbase2.8-0 libwxgtk2.8-0 libwxbase2.8-dev libwxgtk2.8-dev libgtk2.0-dev * Install gtk2-engines-pixbuf to get rid of the annoying warning on Ubuntu 11.10: Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"

sudo apt-get install gtk2-engines-pixbuf * you can check the library files are installed with #!sh $ dpkg -l |grep -i libwx |awk '{ print $2 }' libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev

$ dpkg -l |grep -i libgtk2.0-dev |awk '{ print $2 }' libgtk2.0-dev * you will need to reinstall WX. #!sh $sudo cpan .... cpan[1]> force install Wx Going to read '/root/.cpan/Metadata'

Database was generated on Wed, 04 May 2011 04:32:25 GMT

Running install for module 'Wx' Running make for M/MB/MBARBON/Wx-0.98.tar.gz Fetching with LWP: ....

Installation using the Package Manager

Ubuntu 10.10 contains Padre 0.63, Ubuntu 10.04 contains Padre 0.50

sudo apt-get install padre

Because of a packaging error, padre does not work out of the box on Ubuntu 10.10. One possible workaround is to install wx-perl from CPAN: sudo cpan Alien::wxWidgets sudo cpan Wx

Use apt-cache to find out which plug-ins are available: apt-cache -n search padre

On Ubuntu 10.04, you can install the following plug-ins: sudo apt-get install libpadre-plugin-css-perl libpadre-plugin-html-perl libpadre-plugin-spellcheck-perl libpadre-plugin-xml-perl libpadre-plugin-autoformat-perl libpadre-plugin-vi-perl libpadre-plugin-nopaste-perl

Installation from CPAN

This was checked for Ubuntu 9.04 and 10.10 but it should work for later versions as well.

  • Install required development packages
sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev libwxbase2.8-dev libwxbase2.8-0 libgtk2.0-dev g++
# in your $HOME
cd $HOME

perl -v
# This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi
# This is called system perl

# Install local::lib into your $HOME
wget http://search.cpan.org/CPAN/authors/id/G/GE/GETTY/local-lib-1.006007.tar.gz
tar xfz local-lib-1.006007.tar.gz
cd local-lib-1.006007/
perl Makefile.PL --bootstrap
make test && make install
cd $HOME

# Add local::lib to your .bashrc
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

# Optional step if you do not want to close your terminal
eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)

# Optional: remove local::lib folder
rm -rf local-lib-1.006007

  • configure the cpan client setting the prerequisite_policy to 'follow' and to add a CPAN server in the urllist:
  • cpan
  • conf prerequisites_policy follow
  • conf urllist http://cpan.yahoo.com/
  • conf save
  • cpan App::cpanminus
  • cpanm Alien::wxWidgets
  • cpanm Wx
  • cpanm Padre

There are certain places where CPAN.pm is still asking for confirmation "is just needed temporarily during building or testing. Do you want to install it permanently (y/n) [yes]".

This can be eliminated by setting build_requires_install_policy to 'yes' in the CPAN client: * conf build_requires_install_policy yes * conf save

=== If you accidentally tried to install with wx-2.6 libs This can happen if you blindly try to install Padre using cpan without checking for library dependencies. In that case, the installation will die at some point during the Wx compilation phase. Alien::wxWidgets will think that you have v 2.6 (even after you install 2.8), so you must remove it before moving forward with the install. To check if Alien::wxWidgets is incorrect, run this at your command line: #!sh perl -MAlien::wxWidgets -e 'print Alien::wxWidgets->version, "\n"' If the output says 2.006### then Alien::wxWidgets needs to be fixed. If it says 2.008###, then this is not a problem.

Before doing any of the following steps, ensure that you have the wx-2.8 dev libs installed via apt-get, as detailed above. The steps that I have tried to fix this problem, in increasing levels of severity, are as follows. After you try each one, you can test if Alien::wxWidgets is properly configured by running the one-liner shown above and checking that the output says 2.008###.

* Force-install Alien::wxWidgets. (This didn't work for me for some reason.) * Install App::pmuninstall via CPAN and use it to remove Alien::wxWidgets. Then reinstall Alien::wxWidgets. * Remove the Alien::wxWidgets files by hand, then re-install Alien::wxWidgets from cpan. If you are using local::lib, you will find these in ~/perl5/lib/perl5/Alien and ~/perl5/lib/perl5/i686-linux-gnu-thread-multi/Alien. If you are installing these into your system perl, you will find these under similar folders at /usr/local/lib/perl5/..., I believe.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_development_noclass_noid_nospan.html0000644000175000017500000001207513401765156025363 0ustar manwarmanwar

[[PageOutline(1-2)]]

Development in general

We are using Subversion for version control. The main development of Padre is in the trunk http://svn.perlide.org/padre/trunk/Padre but there are several additional projects and almost all the plugins of Padre also live in the same repository so the best if you check out the whole trunk http://svn.perlide.org/padre/trunk

$ svn co http://svn.perlide.org/padre/trunk padre

Then you can run the standard CPAN module process:

Make sure you have all of the needed prerequisites. See http://padre.perlide.org/trac/wiki/Download

$ cd padre/Padre
$ perl Makefile.PL      # which will tell about all the missing dependencies of Padre
                        # this may fail if you don't have Module::Install
                        # if so, start cpan and install it with all its prerequisites
$ make
$ make test

For a more detailed set of instructions on how to install the dependencies visit the Download

Once all the above works well you can launch Padre from the SVN tree by running $ perl dev

dev has some more parameters you can see by typing $ perl dev -h

The most important being $ perl dev -a that will include the path to all the plugins located in trunk/

Coding

See the http://search.cpan.org/dist/Padre/lib/Padre/Manual/Hacking.pod file for Core Padre development and http://search.cpan.org/dist/Padre/lib/Padre/Plugin.pm for Plugin development.

Translation

Translation is basically part of the development effort. For more details please take a look at this page: See [wiki:TranslationIntro]

Documentation

The documentation of Padre is standard POD embedded in the .pm files. If you'd like to improve those you should check out the source code of Padre as described above and send patches or ask for commit bit. The documentation is part of the regular development process.

QA/Testing

Unfortunately Padre has not enough automated test mostly due to the fact that we hardly know how to test GUI applications. The existing tests are located in the standard t/ directory. If you'd like to help in this and if you are on Windows you could take a look at the t/win32/ directory where we have a few tests written using Win32::GUItest. You would be very highly regarded if you improved the test coverage of Padre!!

Release Management

See separate page about Release

Development in a branch

Most of our development is done on the trunk but occasionally we prefer to make our private corner for experimental changes or changes that might not be stable for some time. Instructions on how to do that:

Create a branch and work on it:

Assuming you have already checked out http://svn.perlide.org/padre/trunk/ to /path/to/padre

$ svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/My-branch -m'some messages'
$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/branches/My-branch .

If you run svn st ..

You will see a letter S infront to the Padre directory as that one is switched.

Now you can edit, test and commit as usual. Your changes will be committed to the branch.

When done and you would like to merge your changes

1. Make sure everything is committed

$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/trunk/Padre
$ svn log --stop-on-copy http://svn.perlide.org/padre/branches/My-branch

This will show you the changes you made on the branch. Take the FIRST and LAST revision numbers in this log and use the following command to see the full change you made: svn diff -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch

use the following to merge it back to trunk svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch . svn commit -m'merged -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch ' svn rm http://svn.perlide.org/padre/branches/My-branch -m'My-branch is not needed any more'

If you decided it was a dead-end you can just switch back to trunk and remove the branch.

Tickets

[[TicketQuery(component=development,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

Text-Trac-0.24/t/expected/padre_wxwidgets_noclass_noid_nospan.html0000644000175000017500000001053113401765156025061 0ustar manwarmanwar

Learning wxPerl and wxWidgets

For those like me (Gabor) who lack imagination here is an explanation of the stack.

  • wxWidgets is the name of the C++ library that can be installed either by your operating systems package management tool ( aptitude install wx-common in case of Debian ) or by installing Alien::wxWidgets from CPAN
  • Scintilla is an editor component written in C++ and used in many editors. It has been included in wxWidgets ad the STC or wxStyledTextCtrl. Padre 0.92 and later will use Wx::Scintilla instead of old Wx::STC to provide the latest and greatest from Scintilla.
  • wxPerl is the name of the Perl binding to wxWidgets (or wrapper if you prefer that word) - It is packaged as the Wx distro on CPAN. Some of the recent Linux distros might also have.
  • Above all that comes our code (Padre in our case)

Home of wxPerl

downloadable version: http://prdownloads.sourceforge.net/wxperl/wxPerl-0.82-wx-2.8.7-docs-html.zip

Home of wxWidgets

tutorial of Mattia Barbon

tutorial by Jouke Visser

STC or StyledTextCtrl is Scintilla

Yellow Brain documentation of Wx::StyledTextCtrl

Ruby documentation of Wx::StyledTextCtrl

http://docs.wxwidgets.org/trunk/classwx_styled_text_ctrl.html

stock items in wx

a kind of WxPerl cheat sheet

Creating GUI code for Padre - A walk through a new feature

The latest versions of wxPerl, wxWidgets and Scintilla

  • Padre 0.90: Wx::Scintilla integration was added through feature_wx_scintilla
  • Padre 0.92: Wx::Scintilla replaced Wx::STC completely.
  • Wx::Scintilla 0.30 supports the Scintilla 2.29 (released on 16th September 2011)
  • Wx::Scintilla 0.36 supports Scintilla 3.0.2.

Various Items and suggestions

See Wx-Perl-DirTree on CPAN

Text-Trac-0.24/t/expected/padre_download_ubuntu_noclass_noid_nospan.html0000644000175000017500000001441213401765156026247 0ustar manwarmanwar

Ubuntu Installation Instructions

Apparently Ubuntu 11.04 also comes with broken wxWidgets or broken Wx. see here too

Please follow the instructions below to manually install (again) the wx related modules. Probably the best way is to use local::lib so your installation won't interfere with the system installation.

=== If you have upgraded to **natty**(11.04) from mavrick(10.10), * to install the wx library files you can #!sh $sudo apt-get install libwxbase2.8-0 libwxgtk2.8-0 libwxbase2.8-dev libwxgtk2.8-dev libgtk2.0-dev * Install gtk2-engines-pixbuf to get rid of the annoying warning on Ubuntu 11.10: Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"

sudo apt-get install gtk2-engines-pixbuf * you can check the library files are installed with #!sh $ dpkg -l |grep -i libwx |awk '{ print $2 }' libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev

$ dpkg -l |grep -i libgtk2.0-dev |awk '{ print $2 }' libgtk2.0-dev * you will need to reinstall WX. #!sh $sudo cpan .... cpan[1]> force install Wx Going to read '/root/.cpan/Metadata'

Database was generated on Wed, 04 May 2011 04:32:25 GMT

Running install for module 'Wx' Running make for M/MB/MBARBON/Wx-0.98.tar.gz Fetching with LWP: ....

Installation using the Package Manager

Ubuntu 10.10 contains Padre 0.63, Ubuntu 10.04 contains Padre 0.50

sudo apt-get install padre

Because of a packaging error, padre does not work out of the box on Ubuntu 10.10. One possible workaround is to install wx-perl from CPAN: sudo cpan Alien::wxWidgets sudo cpan Wx

Use apt-cache to find out which plug-ins are available: apt-cache -n search padre

On Ubuntu 10.04, you can install the following plug-ins: sudo apt-get install libpadre-plugin-css-perl libpadre-plugin-html-perl libpadre-plugin-spellcheck-perl libpadre-plugin-xml-perl libpadre-plugin-autoformat-perl libpadre-plugin-vi-perl libpadre-plugin-nopaste-perl

Installation from CPAN

This was checked for Ubuntu 9.04 and 10.10 but it should work for later versions as well.

  • Install required development packages
sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev libwxbase2.8-dev libwxbase2.8-0 libgtk2.0-dev g++
# in your $HOME
cd $HOME

perl -v
# This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi
# This is called system perl

# Install local::lib into your $HOME
wget http://search.cpan.org/CPAN/authors/id/G/GE/GETTY/local-lib-1.006007.tar.gz
tar xfz local-lib-1.006007.tar.gz
cd local-lib-1.006007/
perl Makefile.PL --bootstrap
make test && make install
cd $HOME

# Add local::lib to your .bashrc
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

# Optional step if you do not want to close your terminal
eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)

# Optional: remove local::lib folder
rm -rf local-lib-1.006007

  • configure the cpan client setting the prerequisite_policy to 'follow' and to add a CPAN server in the urllist:
  • cpan
  • conf prerequisites_policy follow
  • conf urllist http://cpan.yahoo.com/
  • conf save
  • cpan App::cpanminus
  • cpanm Alien::wxWidgets
  • cpanm Wx
  • cpanm Padre

There are certain places where CPAN.pm is still asking for confirmation "is just needed temporarily during building or testing. Do you want to install it permanently (y/n) [yes]".

This can be eliminated by setting build_requires_install_policy to 'yes' in the CPAN client: * conf build_requires_install_policy yes * conf save

=== If you accidentally tried to install with wx-2.6 libs This can happen if you blindly try to install Padre using cpan without checking for library dependencies. In that case, the installation will die at some point during the Wx compilation phase. Alien::wxWidgets will think that you have v 2.6 (even after you install 2.8), so you must remove it before moving forward with the install. To check if Alien::wxWidgets is incorrect, run this at your command line: #!sh perl -MAlien::wxWidgets -e 'print Alien::wxWidgets->version, "\n"' If the output says 2.006### then Alien::wxWidgets needs to be fixed. If it says 2.008###, then this is not a problem.

Before doing any of the following steps, ensure that you have the wx-2.8 dev libs installed via apt-get, as detailed above. The steps that I have tried to fix this problem, in increasing levels of severity, are as follows. After you try each one, you can test if Alien::wxWidgets is properly configured by running the one-liner shown above and checking that the output says 2.008###.

* Force-install Alien::wxWidgets. (This didn't work for me for some reason.) * Install App::pmuninstall via CPAN and use it to remove Alien::wxWidgets. Then reinstall Alien::wxWidgets. * Remove the Alien::wxWidgets files by hand, then re-install Alien::wxWidgets from cpan. If you are using local::lib, you will find these in ~/perl5/lib/perl5/Alien and ~/perl5/lib/perl5/i686-linux-gnu-thread-multi/Alien. If you are installing these into your system perl, you will find these under similar folders at /usr/local/lib/perl5/..., I believe.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_features_noclass_noid_nospan.html0000644000175000017500000003436313401765156024663 0ustar manwarmanwar

[[PageOutline(1-2)]]

List of existing and planned features with links to description of each feature with relevant tickets and test cases to make sure the features are implemented correctly.

Features

* Tools Prefernces draft

Perl-specific features

Plugins

Feature requests and ideas from other sources

In this section we have lists of features taken from verious articles and web sites comparing tools and even from other IDEs.

For each feature we first link it to a related ticket but later on we will point to the description of our implementation of that feature.

From Perlmonks

Perlmonks has a table comparing features of IDEs and editors to be used for Perl development.

The table can be found at Perl Development Tools

TODO: add links to the relevant Feature Pages

Feature Status or link to ticket
Perl Exclusive Why is yes considered good here?
Free yes - Under the "perl" license.
Perl Engine Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl
Syntax Checking yes
Syntax colouring yes
Autoindent yes
Incremental search yes
Bracket Completition and Matching yes
Folding see under Visual Editor Effects
Var tree see in Outline
Code browser see in Outline
Debugger Perl 5 Debugger
Stepping See Debugger
Breakpoints See Debugger
Watches See Debugger
Var evaluation See Debugger
Stack module See Debugger
Bookmarks yes
Suggest & complete see #67 but add more
Identify errors also Syntax Checking
Interactive shell
Code snippets yes
Project
Control version Integrated Version Control
Multi document yes
Split View
IME Multilingual Input Method Editor
Docs & Help viewer yes
Module installer
WEB Integrated Web Server
FTP #12 Read and write over ftp protocol (modify the program at remote server)
HTML export #112 To export the source of program with the syntax colouring.
Linux Download
BSD DownloadFreeBSD and DownloadNetBSD
Mac OS X DownloadMacOSX
Solaris
Windows [wiki:DownloadWindows]

From Perl Needs Better Tools

Perl Needs Better Tools by Matisse Enzer

Feature Status or link to ticket
Syntax coloring
Real Time Syntax Checking
Version control integration
Code-assist editor
Excellent refactoring support Refactoring Perl 5 code
Tree view of source files and resources
Support for creating and running unit tests Automated Build and Test
Language-specific help Context Sensitive Help
Run your code under a debugger with real-time display of results
Automatic reformatting of code.
handling of multiple languages
Automated build and test

From Enlightened Perl

Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/ to see how Padre can provide a GUI for their efforts. Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module and see how Padre can provide a GUI (via a plugin or in core Padre) for them.

From Competitors

See the 'Competitor Analysis'

From Eclipse EPIC

Eclipse CDT - C/C++ Development Tooling Eclipse Java development tools (JDT)

Some of these features are only relevant (or possible) for C/C++ or Java

Feature Status or link to ticket
Find all references
Find definition/declaration/usage
Type Hierarchy
Call Hierarchy (or call graph)
Refactoring
Source navigation
Syntax highlighting
Code folding under Visual Editor Effects
Hyperlink navigation
Include browser
Project creation Project Skeleton Generation
Managed build for various toolchains
Standard make build Via Run menu
Macro definition browser
Code generation partly (File -> New...)
Visual debugging tools
Memory, registers, and disassembly viewers
Text-Trac-0.24/t/expected/padre_features.html0000644000175000017500000003773413401765156020557 0ustar manwarmanwar

[[PageOutline(1-2)]]

List of existing and planned features with links to description of each feature with relevant tickets and test cases to make sure the features are implemented correctly.

Features

* Tools Prefernces draft

Perl-specific features

Plugins

Feature requests and ideas from other sources

In this section we have lists of features taken from verious articles and web sites comparing tools and even from other IDEs.

For each feature we first link it to a related ticket but later on we will point to the description of our implementation of that feature.

From Perlmonks

Perlmonks has a table comparing features of IDEs and editors to be used for Perl development.

The table can be found at Perl Development Tools

TODO: add links to the relevant Feature Pages

Feature Status or link to ticket
Perl Exclusive Why is yes considered good here?
Free yes - Under the "perl" license.
Perl Engine Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl
Syntax Checking yes
Syntax colouring yes
Autoindent yes
Incremental search yes
Bracket Completition and Matching yes
Folding see under Visual Editor Effects
Var tree see in Outline
Code browser see in Outline
Debugger Perl 5 Debugger
Stepping See Debugger
Breakpoints See Debugger
Watches See Debugger
Var evaluation See Debugger
Stack module See Debugger
Bookmarks yes
Suggest & complete see #67 but add more
Identify errors also Syntax Checking
Interactive shell
Code snippets yes
Project
Control version Integrated Version Control
Multi document yes
Split View
IME Multilingual Input Method Editor
Docs & Help viewer yes
Module installer
WEB Integrated Web Server
FTP #12 Read and write over ftp protocol (modify the program at remote server)
HTML export #112 To export the source of program with the syntax colouring.
Linux Download
BSD DownloadFreeBSD and DownloadNetBSD
Mac OS X DownloadMacOSX
Solaris
Windows [wiki:DownloadWindows]

From Perl Needs Better Tools

Perl Needs Better Tools by Matisse Enzer

Feature Status or link to ticket
Syntax coloring
Real Time Syntax Checking
Version control integration
Code-assist editor
Excellent refactoring support Refactoring Perl 5 code
Tree view of source files and resources
Support for creating and running unit tests Automated Build and Test
Language-specific help Context Sensitive Help
Run your code under a debugger with real-time display of results
Automatic reformatting of code.
handling of multiple languages
Automated build and test

From Enlightened Perl

Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/ to see how Padre can provide a GUI for their efforts. Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module and see how Padre can provide a GUI (via a plugin or in core Padre) for them.

From Competitors

See the 'Competitor Analysis'

From Eclipse EPIC

Eclipse CDT - C/C++ Development Tooling Eclipse Java development tools (JDT)

Some of these features are only relevant (or possible) for C/C++ or Java

Feature Status or link to ticket
Find all references
Find definition/declaration/usage
Type Hierarchy
Call Hierarchy (or call graph)
Refactoring
Source navigation
Syntax highlighting
Code folding under Visual Editor Effects
Hyperlink navigation
Include browser
Project creation Project Skeleton Generation
Managed build for various toolchains
Standard make build Via Run menu
Macro definition browser
Code generation partly (File -> New...)
Visual debugging tools
Memory, registers, and disassembly viewers
Text-Trac-0.24/t/expected/padre_translationstyle_noclass_noid_nospan.html0000644000175000017500000001646513401765156026467 0ustar manwarmanwar

Translation manual of style

These are all real shortcomings found around r6000 (July 2009).

Also see: * http://msdn.microsoft.com/en-us/library/aa511440.aspx * http://developer.kde.org/documentation/design/ui/ * http://developer.gnome.org/projects/gup/hig/ * http://wiki.openusability.org/guidelines/ * http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/


Bad:

We found several new plugins. In order to configure and enable them go to Plugins -> Plugin Manager

List of new plugins:

    • Avoid the words 'we' or 'I' in dialog. Do not attempt to speak on behalf of the program or computer. State the situation as a matter of fact.
    • Do not make the user remember a navigation path. Offer a direct shortcut to the referenced dialog.
    • Avoid primitive ASCII approximate representation of symbols. Use proper characters: →
    • Remove superfluous words. It is obvious to the user that this is a list.

Better:

New plugins were found. [Plugin B #] [Plugin C #] [Plugin D #] [Plugin E v] [Configure...]


Bad:

$plugin->errstr( Wx::gettext("Error when calling menu for plugin") . "'$name': $@" ); Plugin:%s - Not compatible with Padre::Plugin API. Need to be subclass of Padre::Plugin

    • Do not concatenate strings in code. Use sprintf-style gettext templates.
    • Do not write messages in newspaper headline style. Write full sentences in proper English.

Better:

"An error occured when calling the menu for the plugin %s: %s", $name, $@ The plugin %s is not compatible with the Padre::Plugin API. It needs to be a subclass of Padre::Plugin.


Bad:

GoTo Bookmark GoTo Element

    • EnglishIsNotWrittenLikeThat

Better:

Go to Bookmark Go to Element


Bad:

&Close\tCtrl+W Select all\tCtrl-A

    • Do not invent a different notation for key combinations. Use consistently the symbol + to join keys.

Better:

&Close\tCtrl+W Select all\tCtrl+A


Bad:

Could not locate project dir Cannot build regex for '%s' Chars without spaces: %s Convert EOL

    • Do not use abbreviations. Use consistently the formal wording.

Better:

Could not locate project directory Cannot build regular expression for '%s' Characters without spaces: %s Convert line endings


Bad:

The bookmark '%s' no longer exists %s occurences were replaced

    • Do not omit punctuation. Complete sentences with a full stop.

Better:

The bookmark '%s' no longer exists. %s occurences were replaced.


Bad:

No diagnostics available for this error!

    • Avoid excitement or shouting. Whereever possible, use mere statements of fact.

Better:

No diagnostics are available for this error.


Bad:

First character of selection does not seem to point at a token. Selection not part of a Perl statement? All braces appear to be matched %s apparantly created. Do you want to open it now?

    • Avoid vagueness. If the computer is not sure, the user certainly can't be, either. Whereever possible, use mere statements of fact. If you really cannot be sure, give the user more context or partial results so he can make an informed decision.

Better:

The first character of the selection does not point at a token. The selection is not part of a Perl statement. All braces are matched. %s was created. Do you want to open it now?


Bad:

No declaration could be found for the specified (lexical?) variable

    • Avoid overloading several circumstances into a single message. Split them off into several messages and match them according to the relevant situation.

Better:

No declaration could be found for the specified package variable. No declaration could be found for the specified lexical variable.


Bad:

File changed on disk since last saved. Do you want to overwrite it?

    • Avoid being overly specific in technical details. In this instance, there might not be a disk involved.

Better:

The file has changed since the last save. Do you want to overwrite it?


Bad:

Install Remote Distribution

    • Avoid using words that have multiple similar meanings. Clarify with more or different wording.

Better:

Install Distribution from the Web


Bad:

TAB display size (in spaces): Next File\tCtrl-TAB Encode document to utf-8

    • Use proper capitalisation. Be aware of what is an acronym and what is not.

Better:

Tabulator display size (in spaces): Next File\tCtrl+Tab Encode document to UTF-8


Bad:

&Open\tCtrl+O

    • Menu items and buttons that open a dialog or require further user action end in an ellipsis… Menu items and buttons that result in immediate action do not end in an ellipsis.

Better:

&Open…\tCtrl+O

Text-Trac-0.24/t/expected/padre_download_debian_noclass.html0000644000175000017500000000615213401765156023562 0ustar manwarmanwar

Debian Installation Instructions

Installation using the Package Manager

Padre 0.63 is available in Debian 6.0 ("squeeze"), as well as in the unstable (Pare 0.90) and testing (Padre 0.90) branches of Debian.

Install: # aptitude install padre

Older Stable Releases

If you run a stable release prior to Squeeze (6.0), you'd have to add an "unstable" or "testing" source to /etc/apt/sources.list, e.g. as follows: deb http://mirror.isoc.org.il/pub/debian/ unstable main deb-src http://mirror.isoc.org.il/pub/debian/ unstable main

Then update the package list # aptitude update

and perform the installation as described above.

Installation from CPAN or Subversion

Make sure that CPAN can work properly. Install the build-essential package if it is not yet installed.

aptitude install libppix-regexp-perl libalien-wxwidgets-perl libppix-editortools-perl libio-string-perl libdevel-dumpvar-perl libfile-spec-perl libwx-perl libprobe-perl-perl libwxbase2.8-dev libdevel-refactor-perl libnet-daemon-perl libclass-unload-perl libthreads-shared-perl libwxgtk2.8-0 libtext-diff-perl libfile-next-perl libdbi-perl libtext-glob-perl ack-grep libclass-inspector-perl libtext-findindent-perl libfile-remove-perl libplrpc-perl libmodule-manifest-perl libparse-exuberantctags-perl libtemplate-tiny-perl libparse-errorstring-perl-perl libpod-pom-perl  liborlite-migrate-perl libfile-pushd-perl libio-stringy-perl libwxbase2.8-0 libipc-run-perl libclass-adapter-perl libtask-weaken-perl  libpod2-base-perl liborlite-perl libfile-find-rule-perl libpod-abstract-perl libclass-xsaccessor-perl libio-pty-perl libclone-perl  libwx-perl-processstream-perl libipc-run3-perl libwxgtk2.8-dev libdbd-sqlite3-perl libfile-sharedir-perl libppi-perl wx2.8-headers  libfile-homedir-perl liblist-moreutils-perl libdebug-client-perl libnumber-compare-perl libyaml-tiny-perl libgtk2.0-dev

Then either install from CPAN (which will help you to resolve possible additional dependencies), or run perl Makefile.PL make make test make install in the Padre directory. Pay attention to the output of perl Makefile.PL, it may remind you of some missing CPAN modules that you need to install.

(last checked Sep. 22, 2011, on Debian testing)

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_wxformbuilder_noclass_noid_nospan.html0000644000175000017500000000354213401765156025731 0ustar manwarmanwar

Building GUI for Padre

Building GUI for Padre can be done either manually as we did earlier or using the wxFormBuilder.

1. a. For Windows download wxFormBuilder from http://sourceforge.net/projects/wxformbuilder/ b. For Ubuntu visit https://launchpad.net/ubuntu/+source/wxformbuilder or better yet https://launchpad.net/~rjmyst3/+ppa-packages 2. Use Padre::Plugin::FormBuilder. It is not released on CPAN so you need to install it from our repository. 3. Please follow this discussion http://irclog.perlgeek.de/padre/2010-12-10#i_3072846

The actual process is

  1. Using wxFormBuilder open the appropriate file in the project fbp directory.
  2. Install FormBuilder plugin from SVN (it's not good enough to release)
    1. NOTE: you need to install the FormBuilder plugin (not just run it with 'dev -a') as it uses File::ShareDir, which only seems to work fro installed files.
  3. Use the FormBuilder plugin to generate the code for the dialog.
  4. Save the code over the top of the existing .pm module in the Padre::Wx::FBP namespace with no modifications. The ::FBP:: namespace is designed specifically for this purpose, to hold unmodified generated files.
  5. Open the Padre::Wx::Dialog:: module, which inherits from the ::FBP:: module. Edit to apply any custom changes needed to match the generated code.

Building GUI application

TBD.

Text-Trac-0.24/t/expected/padre_download_windows_noclass_noid_nospan.html0000644000175000017500000000566313401765156026427 0ustar manwarmanwar

Windows Installation Instructions

Padre on Strawberry Perl

Now this is the featured installer on http://padre.perlide.org/download.html

It is an executable installer that will also configure the PATH environment and configure Strawberry to be usable from any installation path. (You probably need to avoid spaces and non-ascii characters in the path)

If you have other Perls installed you will also have to make sure the PATH always contains entries to the one you actually want to use. If you don't want to change your PATH ambient variable you can create a new Shortcut on your Desktop and specify "C:\Strawberry\perl\bin\perl.exe C:\strawberry\perl\site\bin\padre" as shortcut destination. Double-clicking on this, you will launch Padre using Strawberry interpreter.

Release notes are in the SVN repository.

Binary Installation

The most convenient way to get Padre is via the Padre Standalone package. See the http://padre.perlide.org/download.html page for details.

Installation from CPAN

Depending on which version of Perl you use, there are different instructions: * [wiki:DownloadStrawberryPerl] * [wiki:DownloadActivePerl]

On Windows, the installation of IPC::Run (0.82) hangs sometimes - install it using

cpan> force install notest IPC::Run

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Troubleshooting Padre on Strawberry Perl

A couple of ideas what to check if Padre does not launch:

  • Is this the only perl on the system?
  • Was it installed in a path that does not contain spaces (or non-ascii characters?)
  • What version of Windows do you run.
  • Is there any space or non-ascii character in the username?
  • Open a command window (Start/Run/cmd) and type padre there
  • in the command window type perl c:\strawberry\perl\site\bin\padre
  • perl c:\strawberry\perl\site\bin\padre --version
  • Is there some firewall or access control that might prevent the server to launch and padre does not survive it?
  • The configuration files should be in "C:\Documents and Settings\USERNAME\Local Settings\Application Data\Perl\Padre" maybe deleting them will allow Padre to launch
Text-Trac-0.24/t/expected/padre_faq_noclass_noid_nospan.html0000644000175000017500000001067213401765156023611 0ustar manwarmanwar

[[PageOutline(1-2)]]

Is Padre for Perl only?

While the main focus of Padre is to provide excellent support for both beginner and advanced Perl developers it is not restricted to Perl development only. It provides syntax highlighting to most of the languages out there and if you are missing something just ask on the mailing list or open a ticket. It is also planned to be integrated with Parrot that will allow writing plug-ins in any language running on Parrot.

Why not just reuse an existing Editor?

We hope that by writing it in Perl we will make it easy for any user of Padre to contribute back to the project and/or to add plug-ins.

  • vi and emacs -- while being excellent tools -- are not very beginner-friendly.
  • Komodo costs money and is not Free/Open Source software.
  • Eclipse is huge and you need to know Java to extend it.
  • Various editors such as Ultra-Edit, Notepad++ etc. are Windows-only

Why does Padre use wxWidgets and not ...?

wxWidgets uses the native windowing widgets of each operating system and in theory that should be the nicest and most "native looking" on all operating systems. So while it has it own problems and it is not the easiest to write in it, it might have the best potential.

Why using Subversion when Git is so much better?

We started to use SVN as Gabor did not know Git. We keep it as it works well for us and a lot more people know SVN than Git.

With that said if someone implements an awesome and simple-to-use plugin for Padre to integrate with Git that works well on both Windows and Linux then we can consider switching.

Why using ithreads when forks/coro is so much better?

Threads are the only Perl concurrency system that is portable and actually runs things in parallel and makes use of multiple cores. We needed something portable that does real concurrency (i.e. no cooperative multi-threading or event loop), so fork was out of the loop due to portability and POE/Coro due to cooperative multithreading.

I have trouble installing Padre. Where can I find help?

See Download and the pages linked there for installation instructions. If this does not bring you any further, contact us, we will see how we can help us.

I have found a bug. What do I do now?

Report it. Either by contacting us, or by creating a new ticket in Trac.

Padre lacks feature XY. What can I do about it?

Tell us. Either by contacting us, or by creating a new ticket in Trac.

Or even better: Implement it yourself. Hacking Padre isn't that hard if you know some Perl. And the developer community is very open and welcoming towards new developers. See Howto and Getting Involved for more information.

How do I checkout a trunk version of padre?

This is described on the Howto page.

My Perl script expects user input from STDIN, but I cannot enter anything when executing it inside Padre. What can I do?

There is a setting in the Preferences dialog, under "Run parameters" (or under "Language Perl 5", depending on your version of Perl, called "Use external window for execution".

If you activate that setting, you can make inputs to STDIN.

See also ticket #743.

I am not getting output console when I Run a script (press F5)

There is a setting in the Preferences dialog, under "Run parameters" (or under "Language Perl 5", depending on your version of Perl, called "Use external window for execution".

Try to check / uncheck that.

Can I edit remote files on an FTP server with Padre?

Yes, just use "File"->"Open ..."->"Open URL ..." and enter your file's URL. HTTP and HTTPS are also supported, by the way.

How can I add/modify keyboard shortcuts?

There is a keyboard shortcut editor in the menu under "Tools" -> "Key Bindings".

Text-Trac-0.24/t/expected/padre_download_mandriva.html0000644000175000017500000000213713401765156022416 0ustar manwarmanwar

Madriva Installation Instructions

Installation using the Package Manager

Mandriva 2009.0 comes with pre-packaged Padre 0.10. Mandriva 2009.1 will ship Padre 0.29. Mandriva cooker (development version) is following upstream quite closely.

To install padre:

# urpmi perl-Padre

Installation from CPAN

Mandriva 2008.1

To install Padre enter the following commands:

# urpmi perl-Alien-wxWidgets
# urpmi perl-Wx
$ cpan
cpan> install Padre

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_development.html0000644000175000017500000001332113401765156021245 0ustar manwarmanwar

[[PageOutline(1-2)]]

Development in general

We are using Subversion for version control. The main development of Padre is in the trunk http://svn.perlide.org/padre/trunk/Padre but there are several additional projects and almost all the plugins of Padre also live in the same repository so the best if you check out the whole trunk http://svn.perlide.org/padre/trunk

$ svn co http://svn.perlide.org/padre/trunk padre

Then you can run the standard CPAN module process:

Make sure you have all of the needed prerequisites. See http://padre.perlide.org/trac/wiki/Download

$ cd padre/Padre
$ perl Makefile.PL      # which will tell about all the missing dependencies of Padre
                        # this may fail if you don't have Module::Install
                        # if so, start cpan and install it with all its prerequisites
$ make
$ make test

For a more detailed set of instructions on how to install the dependencies visit the Download

Once all the above works well you can launch Padre from the SVN tree by running $ perl dev

dev has some more parameters you can see by typing $ perl dev -h

The most important being $ perl dev -a that will include the path to all the plugins located in trunk/

Coding

See the http://search.cpan.org/dist/Padre/lib/Padre/Manual/Hacking.pod file for Core Padre development and http://search.cpan.org/dist/Padre/lib/Padre/Plugin.pm for Plugin development.

Translation

Translation is basically part of the development effort. For more details please take a look at this page: See [wiki:TranslationIntro]

Documentation

The documentation of Padre is standard POD embedded in the .pm files. If you'd like to improve those you should check out the source code of Padre as described above and send patches or ask for commit bit. The documentation is part of the regular development process.

QA/Testing

Unfortunately Padre has not enough automated test mostly due to the fact that we hardly know how to test GUI applications. The existing tests are located in the standard t/ directory. If you'd like to help in this and if you are on Windows you could take a look at the t/win32/ directory where we have a few tests written using Win32::GUItest. You would be very highly regarded if you improved the test coverage of Padre!!

Release Management

See separate page about Release

Development in a branch

Most of our development is done on the trunk but occasionally we prefer to make our private corner for experimental changes or changes that might not be stable for some time. Instructions on how to do that:

Create a branch and work on it:

Assuming you have already checked out http://svn.perlide.org/padre/trunk/ to /path/to/padre

$ svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/My-branch -m'some messages'
$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/branches/My-branch .

If you run svn st ..

You will see a letter S infront to the Padre directory as that one is switched.

Now you can edit, test and commit as usual. Your changes will be committed to the branch.

When done and you would like to merge your changes

1. Make sure everything is committed

$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/trunk/Padre
$ svn log --stop-on-copy http://svn.perlide.org/padre/branches/My-branch

This will show you the changes you made on the branch. Take the FIRST and LAST revision numbers in this log and use the following command to see the full change you made: svn diff -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch

use the following to merge it back to trunk svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch . svn commit -m'merged -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch ' svn rm http://svn.perlide.org/padre/branches/My-branch -m'My-branch is not needed any more'

If you decided it was a dead-end you can just switch back to trunk and remove the branch.

Tickets

[[TicketQuery(component=development,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

Text-Trac-0.24/t/expected/padre_download_netbsd_noclass_noid_nospan.html0000644000175000017500000000421713401765156026206 0ustar manwarmanwar

NetBSD Installation Instructions

Installation using the Package Manager

For binary packages installation take a look at http://www.netbsd.org/docs/software/packages.html#binarydist. There are packages available for some platforms (including NetBSD and Darwin). The 2010Q1 release of pkgsrc will provide binary packages for Padre, too.

Packed by Sno|, contact pkgsrc-users@NetBSD.org in case of problems.

To install Padre on NetBSD or any other pkgsrc supported platform, simply $ cd /usr/pkgsrc/editors/p5-Padre $ make install clean clean-depends

If you want to add plugin's, too, check which ones are already available: $ cd /usr/pkgsrc $ echo */p5-Padre-Plugin-*

For each desired plugin, change the working directory to it's location and install as done above.

If you have trouble installing Padre using pkgsrc (and read the pkgsrc guide, mailing list archives and open PR's carefully), feel free to send your question to pkgsrc-p5-people or pkgsrc-users mailing list as found on http://www.netbsd.org/mailinglists/#descriptions-of-mailing-lists . Although the import and maintaining is mostly done by Jens Rehsack, your chance getting feedback is better asking the proper mailing list instead of the primary maintainer. You might get questions answered on irc://irc.freenode.net/ in the channel #pkgsrc .

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to NetBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_debian_noclass_noid_nospan.html0000644000175000017500000000562113401765156026151 0ustar manwarmanwar

Debian Installation Instructions

Installation using the Package Manager

Padre 0.63 is available in Debian 6.0 ("squeeze"), as well as in the unstable (Pare 0.90) and testing (Padre 0.90) branches of Debian.

Install: # aptitude install padre

Older Stable Releases

If you run a stable release prior to Squeeze (6.0), you'd have to add an "unstable" or "testing" source to /etc/apt/sources.list, e.g. as follows: deb http://mirror.isoc.org.il/pub/debian/ unstable main deb-src http://mirror.isoc.org.il/pub/debian/ unstable main

Then update the package list # aptitude update

and perform the installation as described above.

Installation from CPAN or Subversion

Make sure that CPAN can work properly. Install the build-essential package if it is not yet installed.

aptitude install libppix-regexp-perl libalien-wxwidgets-perl libppix-editortools-perl libio-string-perl libdevel-dumpvar-perl libfile-spec-perl libwx-perl libprobe-perl-perl libwxbase2.8-dev libdevel-refactor-perl libnet-daemon-perl libclass-unload-perl libthreads-shared-perl libwxgtk2.8-0 libtext-diff-perl libfile-next-perl libdbi-perl libtext-glob-perl ack-grep libclass-inspector-perl libtext-findindent-perl libfile-remove-perl libplrpc-perl libmodule-manifest-perl libparse-exuberantctags-perl libtemplate-tiny-perl libparse-errorstring-perl-perl libpod-pom-perl  liborlite-migrate-perl libfile-pushd-perl libio-stringy-perl libwxbase2.8-0 libipc-run-perl libclass-adapter-perl libtask-weaken-perl  libpod2-base-perl liborlite-perl libfile-find-rule-perl libpod-abstract-perl libclass-xsaccessor-perl libio-pty-perl libclone-perl  libwx-perl-processstream-perl libipc-run3-perl libwxgtk2.8-dev libdbd-sqlite3-perl libfile-sharedir-perl libppi-perl wx2.8-headers  libfile-homedir-perl liblist-moreutils-perl libdebug-client-perl libnumber-compare-perl libyaml-tiny-perl libgtk2.0-dev

Then either install from CPAN (which will help you to resolve possible additional dependencies), or run perl Makefile.PL make make test make install in the Padre directory. Pay attention to the output of perl Makefile.PL, it may remind you of some missing CPAN modules that you need to install.

(last checked Sep. 22, 2011, on Debian testing)

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_freebsd_noclass.html0000644000175000017500000000627513401765156023760 0ustar manwarmanwar

FreeBSD Installation Instructions

Installation using pkg_add

Because the FreeBSD Perl package comes without threads support no official Padre packages are available. The prefered method is to manually recompile Perl port to support threads and then build Padre and all it's dependencies from Ports (see below).

However there are highly experimental packages available for FreeBSD 6-STABLE and 7-STABLE.

First, make sure you have uninstalled the non-threaded Perl package or that you have threaded Perl already compiled. Please note, that after installing threaded Perl all Perl modules already installed have to be recompiled. All packages depend on Perl 5.8.9 (that's the current Perl version for 6 and 7 branches).

First set PACKAGESITE environment variable to point to http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ for 6-STABLE or http://therek.net/freebsd/tb/7-STABLE-i386/All/Latest/ for 7-STABLE. Then install packages as usual:

# setenv PACKAGESITE http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for C Shell
# export PACKAGESITE=http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for Bourne Shell
# pkg_add -r p5-Padre

Feedback is welcome.

Installation from Source

To run Padre on FreeBSD you have to recompile Perl to support threads. To verify whether your Perl installation has thread support turned on run following command. $ perl -V:usethreads usethreads='define';

If the result is define then you have already threaded Perl installed, otherwise execute: # cd /usr/ports/lang/perl5.8 && make WITH_THREADS=yes # make deinstall && make reinstall Optionally you can substitute make WITH_THREADS=yes with the following and choose THREADS in the menu. Then uninstall and reinstall Perl as above. This has an advantage over the previous method, because the preferred configuration options will be stored in your system's packing database. This way next time you'll be building Perl (i.e. updating) all stored options will be applied without the need to manually specify them. # make config # make

To install Padre and its dependencies just execute: # cd /usr/ports/editors/p5-Padre # make install clean

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to FreeBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_fedora_noclass_noid_nospan.html0000644000175000017500000000500513401765156026163 0ustar manwarmanwar

Fedora Installation Instructions

Installation using the Package Manager

Fedora 15

Provided versions: perl-Padre-0.84-1.fc15 with wxGTK-2.8.11-4.fc15 and perl-Alien-wxWidgets-0.51-4.fc15 # yum install perl-Padre

Fedora 14

Provided versions: perl-Padre-0.64-1.fc14 with wxGTK-2.8.11-3.fc14 and perl-Alien-wxWidgets-0.51-2.fc14 # yum install perl-Padre Apparently, after this padre will still complain libwx_gtk2u_stc-2.8.so cannot open shared object file

then also install # yum install wxGTK-devel

Related bug, which should be fixed in future versions: https://bugzilla.redhat.com/show_bug.cgi?id=656317

In older releases of Fedora is impossible to update because of Fedora update policy. In case you'd like to have latest Padre, you need update to the latest Fedora or use CPAN installation install Padre from CPAN.

=== Older releases === Older releases are not supported, but if you insist on using them install Padre and wxGTK-devel, which should workaround bugs. # yum install perl-Padre wxGTK-devel

Fedora-13 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-12 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-11 includes Padre-0.32 with Wx Version: 0.91.

Fedora-10 includes Padre-0.20 with Wx Version: 0.89.

Fedora-9 includes wxGTK-2.8.7 perl-Wx-0.81 perl-Alien-wxWidgets-0.32.

Fedora-8 includes Wx Version: 0.74 perl-Alien-wxWidgets-0.31.

Manual rebuild

It is possible rebuild latest Padre source rpm on your computer, but you will need rebuild also _a lot_ of dependencies. It's not recommended and it might be better to use CPAN. If you still like to rebuild it, you can try: Download source rpm http://koji.fedoraproject.org/koji/packageinfo?packageID=6964 yum install rpm-build rpmbuild --rebuild perl-Padre-yourversion.src.rpm

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_freebsd.html0000644000175000017500000000645713401765156022240 0ustar manwarmanwar

FreeBSD Installation Instructions

Installation using pkg_add

Because the FreeBSD Perl package comes without threads support no official Padre packages are available. The prefered method is to manually recompile Perl port to support threads and then build Padre and all it's dependencies from Ports (see below).

However there are highly experimental packages available for FreeBSD 6-STABLE and 7-STABLE.

First, make sure you have uninstalled the non-threaded Perl package or that you have threaded Perl already compiled. Please note, that after installing threaded Perl all Perl modules already installed have to be recompiled. All packages depend on Perl 5.8.9 (that's the current Perl version for 6 and 7 branches).

First set PACKAGESITE environment variable to point to http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ for 6-STABLE or http://therek.net/freebsd/tb/7-STABLE-i386/All/Latest/ for 7-STABLE. Then install packages as usual:

# setenv PACKAGESITE http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for C Shell
# export PACKAGESITE=http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for Bourne Shell
# pkg_add -r p5-Padre

Feedback is welcome.

Installation from Source

To run Padre on FreeBSD you have to recompile Perl to support threads. To verify whether your Perl installation has thread support turned on run following command. $ perl -V:usethreads usethreads='define';

If the result is define then you have already threaded Perl installed, otherwise execute: # cd /usr/ports/lang/perl5.8 && make WITH_THREADS=yes # make deinstall && make reinstall Optionally you can substitute make WITH_THREADS=yes with the following and choose THREADS in the menu. Then uninstall and reinstall Perl as above. This has an advantage over the previous method, because the preferred configuration options will be stored in your system's packing database. This way next time you'll be building Perl (i.e. updating) all stored options will be applied without the need to manually specify them. # make config # make

To install Padre and its dependencies just execute: # cd /usr/ports/editors/p5-Padre # make install clean

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to FreeBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_netbsd_noclass.html0000644000175000017500000000450313401765156023615 0ustar manwarmanwar

NetBSD Installation Instructions

Installation using the Package Manager

For binary packages installation take a look at http://www.netbsd.org/docs/software/packages.html#binarydist. There are packages available for some platforms (including NetBSD and Darwin). The 2010Q1 release of pkgsrc will provide binary packages for Padre, too.

Packed by Sno|, contact pkgsrc-users@NetBSD.org in case of problems.

To install Padre on NetBSD or any other pkgsrc supported platform, simply $ cd /usr/pkgsrc/editors/p5-Padre $ make install clean clean-depends

If you want to add plugin's, too, check which ones are already available: $ cd /usr/pkgsrc $ echo */p5-Padre-Plugin-*

For each desired plugin, change the working directory to it's location and install as done above.

If you have trouble installing Padre using pkgsrc (and read the pkgsrc guide, mailing list archives and open PR's carefully), feel free to send your question to pkgsrc-p5-people or pkgsrc-users mailing list as found on http://www.netbsd.org/mailinglists/#descriptions-of-mailing-lists . Although the import and maintaining is mostly done by Jens Rehsack, your chance getting feedback is better asking the proper mailing list instead of the primary maintainer. You might get questions answered on irc://irc.freenode.net/ in the channel #pkgsrc .

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to NetBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_mandriva_noclass.html0000644000175000017500000000205113401765156024133 0ustar manwarmanwar

Madriva Installation Instructions

Installation using the Package Manager

Mandriva 2009.0 comes with pre-packaged Padre 0.10. Mandriva 2009.1 will ship Padre 0.29. Mandriva cooker (development version) is following upstream quite closely.

To install padre:

# urpmi perl-Padre

Installation from CPAN

Mandriva 2008.1

To install Padre enter the following commands:

# urpmi perl-Alien-wxWidgets
# urpmi perl-Wx
$ cpan
cpan> install Padre

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_freebsd_noclass_noid_nospan.html0000644000175000017500000000600513401765156026336 0ustar manwarmanwar

FreeBSD Installation Instructions

Installation using pkg_add

Because the FreeBSD Perl package comes without threads support no official Padre packages are available. The prefered method is to manually recompile Perl port to support threads and then build Padre and all it's dependencies from Ports (see below).

However there are highly experimental packages available for FreeBSD 6-STABLE and 7-STABLE.

First, make sure you have uninstalled the non-threaded Perl package or that you have threaded Perl already compiled. Please note, that after installing threaded Perl all Perl modules already installed have to be recompiled. All packages depend on Perl 5.8.9 (that's the current Perl version for 6 and 7 branches).

First set PACKAGESITE environment variable to point to http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ for 6-STABLE or http://therek.net/freebsd/tb/7-STABLE-i386/All/Latest/ for 7-STABLE. Then install packages as usual:

# setenv PACKAGESITE http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for C Shell
# export PACKAGESITE=http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for Bourne Shell
# pkg_add -r p5-Padre

Feedback is welcome.

Installation from Source

To run Padre on FreeBSD you have to recompile Perl to support threads. To verify whether your Perl installation has thread support turned on run following command. $ perl -V:usethreads usethreads='define';

If the result is define then you have already threaded Perl installed, otherwise execute: # cd /usr/ports/lang/perl5.8 && make WITH_THREADS=yes # make deinstall && make reinstall Optionally you can substitute make WITH_THREADS=yes with the following and choose THREADS in the menu. Then uninstall and reinstall Perl as above. This has an advantage over the previous method, because the preferred configuration options will be stored in your system's packing database. This way next time you'll be building Perl (i.e. updating) all stored options will be applied without the need to manually specify them. # make config # make

To install Padre and its dependencies just execute: # cd /usr/ports/editors/p5-Padre # make install clean

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to FreeBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_ubuntu_noclass.html0000644000175000017500000001473213401765156023665 0ustar manwarmanwar

Ubuntu Installation Instructions

Apparently Ubuntu 11.04 also comes with broken wxWidgets or broken Wx. see here too

Please follow the instructions below to manually install (again) the wx related modules. Probably the best way is to use local::lib so your installation won't interfere with the system installation.

=== If you have upgraded to **natty**(11.04) from mavrick(10.10), * to install the wx library files you can #!sh $sudo apt-get install libwxbase2.8-0 libwxgtk2.8-0 libwxbase2.8-dev libwxgtk2.8-dev libgtk2.0-dev * Install gtk2-engines-pixbuf to get rid of the annoying warning on Ubuntu 11.10: Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap"

sudo apt-get install gtk2-engines-pixbuf * you can check the library files are installed with #!sh $ dpkg -l |grep -i libwx |awk '{ print $2 }' libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev

$ dpkg -l |grep -i libgtk2.0-dev |awk '{ print $2 }' libgtk2.0-dev * you will need to reinstall WX. #!sh $sudo cpan .... cpan[1]> force install Wx Going to read '/root/.cpan/Metadata'

Database was generated on Wed, 04 May 2011 04:32:25 GMT

Running install for module 'Wx' Running make for M/MB/MBARBON/Wx-0.98.tar.gz Fetching with LWP: ....

Installation using the Package Manager

Ubuntu 10.10 contains Padre 0.63, Ubuntu 10.04 contains Padre 0.50

sudo apt-get install padre

Because of a packaging error, padre does not work out of the box on Ubuntu 10.10. One possible workaround is to install wx-perl from CPAN: sudo cpan Alien::wxWidgets sudo cpan Wx

Use apt-cache to find out which plug-ins are available: apt-cache -n search padre

On Ubuntu 10.04, you can install the following plug-ins: sudo apt-get install libpadre-plugin-css-perl libpadre-plugin-html-perl libpadre-plugin-spellcheck-perl libpadre-plugin-xml-perl libpadre-plugin-autoformat-perl libpadre-plugin-vi-perl libpadre-plugin-nopaste-perl

Installation from CPAN

This was checked for Ubuntu 9.04 and 10.10 but it should work for later versions as well.

  • Install required development packages
sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-dev libwxbase2.8-dev libwxbase2.8-0 libgtk2.0-dev g++
# in your $HOME
cd $HOME

perl -v
# This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi
# This is called system perl

# Install local::lib into your $HOME
wget http://search.cpan.org/CPAN/authors/id/G/GE/GETTY/local-lib-1.006007.tar.gz
tar xfz local-lib-1.006007.tar.gz
cd local-lib-1.006007/
perl Makefile.PL --bootstrap
make test && make install
cd $HOME

# Add local::lib to your .bashrc
echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc

# Optional step if you do not want to close your terminal
eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)

# Optional: remove local::lib folder
rm -rf local-lib-1.006007

  • configure the cpan client setting the prerequisite_policy to 'follow' and to add a CPAN server in the urllist:
  • cpan
  • conf prerequisites_policy follow
  • conf urllist http://cpan.yahoo.com/
  • conf save
  • cpan App::cpanminus
  • cpanm Alien::wxWidgets
  • cpanm Wx
  • cpanm Padre

There are certain places where CPAN.pm is still asking for confirmation "is just needed temporarily during building or testing. Do you want to install it permanently (y/n) [yes]".

This can be eliminated by setting build_requires_install_policy to 'yes' in the CPAN client: * conf build_requires_install_policy yes * conf save

=== If you accidentally tried to install with wx-2.6 libs This can happen if you blindly try to install Padre using cpan without checking for library dependencies. In that case, the installation will die at some point during the Wx compilation phase. Alien::wxWidgets will think that you have v 2.6 (even after you install 2.8), so you must remove it before moving forward with the install. To check if Alien::wxWidgets is incorrect, run this at your command line: #!sh perl -MAlien::wxWidgets -e 'print Alien::wxWidgets->version, "\n"' If the output says 2.006### then Alien::wxWidgets needs to be fixed. If it says 2.008###, then this is not a problem.

Before doing any of the following steps, ensure that you have the wx-2.8 dev libs installed via apt-get, as detailed above. The steps that I have tried to fix this problem, in increasing levels of severity, are as follows. After you try each one, you can test if Alien::wxWidgets is properly configured by running the one-liner shown above and checking that the output says 2.008###.

* Force-install Alien::wxWidgets. (This didn't work for me for some reason.) * Install App::pmuninstall via CPAN and use it to remove Alien::wxWidgets. Then reinstall Alien::wxWidgets. * Remove the Alien::wxWidgets files by hand, then re-install Alien::wxWidgets from cpan. If you are using local::lib, you will find these in ~/perl5/lib/perl5/Alien and ~/perl5/lib/perl5/i686-linux-gnu-thread-multi/Alien. If you are installing these into your system perl, you will find these under similar folders at /usr/local/lib/perl5/..., I believe.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_freebsd_noclass_noid.html0000644000175000017500000000605713401765156024767 0ustar manwarmanwar

FreeBSD Installation Instructions

Installation using pkg_add

Because the FreeBSD Perl package comes without threads support no official Padre packages are available. The prefered method is to manually recompile Perl port to support threads and then build Padre and all it's dependencies from Ports (see below).

However there are highly experimental packages available for FreeBSD 6-STABLE and 7-STABLE.

First, make sure you have uninstalled the non-threaded Perl package or that you have threaded Perl already compiled. Please note, that after installing threaded Perl all Perl modules already installed have to be recompiled. All packages depend on Perl 5.8.9 (that's the current Perl version for 6 and 7 branches).

First set PACKAGESITE environment variable to point to http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ for 6-STABLE or http://therek.net/freebsd/tb/7-STABLE-i386/All/Latest/ for 7-STABLE. Then install packages as usual:

# setenv PACKAGESITE http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for C Shell
# export PACKAGESITE=http://therek.net/freebsd/tb/6-STABLE-i386/All/Latest/ # for Bourne Shell
# pkg_add -r p5-Padre

Feedback is welcome.

Installation from Source

To run Padre on FreeBSD you have to recompile Perl to support threads. To verify whether your Perl installation has thread support turned on run following command. $ perl -V:usethreads usethreads='define';

If the result is define then you have already threaded Perl installed, otherwise execute: # cd /usr/ports/lang/perl5.8 && make WITH_THREADS=yes # make deinstall && make reinstall Optionally you can substitute make WITH_THREADS=yes with the following and choose THREADS in the menu. Then uninstall and reinstall Perl as above. This has an advantage over the previous method, because the preferred configuration options will be stored in your system's packing database. This way next time you'll be building Perl (i.e. updating) all stored options will be applied without the need to manually specify them. # make config # make

To install Padre and its dependencies just execute: # cd /usr/ports/editors/p5-Padre # make install clean

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to FreeBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_opensuse_noclass_noid_nospan.html0000644000175000017500000000172413401765156026570 0ustar manwarmanwar

openSUSE Installation Instructions

Installation using the Package Manager

Installation from CPAN

  1. Add the packman repository.
  2. Install the package »wxWidgets-devel« and the schema »C/C++ Development«.

[[Image(yast.png)]] 3. Install Padre from CPAN.

Configure make_install_make_command and mbuild_install_build_command to enable sudo support in CPAN.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_mandriva_noclass_noid_nospan.html0000644000175000017500000000161213401765156026524 0ustar manwarmanwar

Madriva Installation Instructions

Installation using the Package Manager

Mandriva 2009.0 comes with pre-packaged Padre 0.10. Mandriva 2009.1 will ship Padre 0.29. Mandriva cooker (development version) is following upstream quite closely.

To install padre:

# urpmi perl-Padre

Installation from CPAN

Mandriva 2008.1

To install Padre enter the following commands:

# urpmi perl-Alien-wxWidgets
# urpmi perl-Wx
$ cpan
cpan> install Padre

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_repository_noclass_noid_nospan.html0000644000175000017500000000235513401765156027147 0ustar manwarmanwar

Instructions for the Installation from the Repository

  1. Make sure your cpan works - make, gcc, etc.
  2. Make sure you remove all traces of wxWidgets 2.6 from your system
  3. Install wxWidgets 2.8 or later - cpan Alien::wxWidgets will download and compile and install it for you
  4. install (or upgrade) Wx - cpan Wx
  5. install Module::Install (if its not already there)
  6. add the following settings to cpan:
    • conf build_requires_install_policy yes
    • conf prerequisites_policy follow
    • o conf commit
  1. svn co http://svn.perlide.org/padre/trunk/Padre Padre
  2. cd Padre
  3. sudo cpan
  4. perl dev

For a complete checkout including all Padre plugins, branches and supporting stuff, use http://svn.perlide.org/padre/trunk but be warned - this is a huge amount of source! If you're using git-svn , you can use the --revision argument to limit from where git-svn starts fetching revisions.

Text-Trac-0.24/t/expected/padre_download_activeperl_noclass_noid_nospan.html0000644000175000017500000001533013401765156027063 0ustar manwarmanwar

Windows (Active Perl) Installation Instructions

http://www.activestate.com/

Once you have installed Active Perl you need to configure an additional PPM repositor and then you can install Padre using the ppm packaging system. Let's see how to do it in the Command Shell:

Start/Run/cmd ENTER
ppm rep add wxperl http://www.wxperl.co.uk/repository  

ppm install Alien-wxWidgets
ppm install Wx
ppm install Padre

You might have to install Alien-wxWidgets-gcc. If this conflicts with Alien-wxWidgets - you can try use --force: ppm install Alien-wxWidgets-gcc --force

Once that's done you can start Padre by typing perl c:\perl\site\bin\padre or wperl c:\perl\site\bin\padre

Replace "c:\perl" with the path, where Active Perl is installed.

Older Active Perl details

The manual installation is still a bit rough but we are working on improving it.

1) (A) Most of the modules - can be taken from the main ActiveState Package Repository.

(B) For Active Perl there are prebuilt PPM versions of Alien::wxWidgets and Wx (aka. wxPerl) and can be installed from http://wxperl.co.uk/.

So add the wxperl repository to the PPM: http://www.wxperl.co.uk/repository (for detailed instructions see http://wxperl.co.uk/ppm.html ) (and even more info here http://docs.activestate.com/activeperl/5.10/faq/ActivePerl-faq2.html )

Adding the repository to your PPM repository list: In PPM4 (ActivePerl 820+) this is most easily done via the GUI menu option: Edit -> Preferences.

If you use PPM3 - or used to command line (==DOS , still usable for PPM4) - you can do:

ppm rep add wxperl http://www.wxperl.co.uk/repository

}}}

2) Install all the packages (except of course perl) listed as "requires" on http://svn.perlide.org/padre/trunk/Padre/Makefile.PL - by using ppm. Don't worry about the order of installation and report us any problem you encounter.

You can do in by searching the "requires" packages listed in the above link - either by using the PPM4 GUI, or searching PPM command line (==DOS):

ppm search App::Ack

The result may look like this:

C:\Documents and Settings\orenm>ppm search App::Ack Downloading ActiveState Package Repository packlist...not modified 1: ack

A grep-like program specifically for large source trees Version: 1.86 Released: 2008-07-09 Author: Andy Lester <andy@petdance.com> Provide: App::Ack version 1.86 Require: File::Basename Require: File::Next version 0.4 or better Require: Getopt::Long Require: Term::ANSIColor Require: Test::Harness version 2.5 or better Require: Test::More Repo: ActiveState Package Repository CPAN: http://search.cpan.org/dist/ack-1.86/

A grep-like program specifically for large source trees }}}

C:\Documents and Settings\orenm>

So now you shall do:

ppm install ack

}}}

3) then open the cpan client and install Padre:

  c:> perl -MCPAN -eshell
  cpan> install Padre

Oren Maurer reported that you might need to force it:

cpan> force install Padre

at some point you might encounter an error like this:

 Running install for module 'Padre'
 Running make for S/SZ/SZABGAB/Padre-0.06.tar.gz
 CPAN: Digest::SHA loaded ok (v5.45)
 Fetching with LWP:
  http://ppm.activestate.com/CPAN/authors/id/S/SZ/SZABGAB/CHECKSUMS
 Alert: While trying to 'parse' YAML file
  'D:\ActiveState\Perl\cpan\FTPstats.yml'
 with 'YAML::XS' the following error was encountered:
  Usage: YAML::XS::LibYAML::Load(yaml_str) at
 D:\ActiveState\Perl\lib/YAML/XS.pm
  line 70.

The reported solution was this:

[reach the cpan shell:] C:\>cpan cpan> o conf yaml_module cpan> o conf commit commit: wrote 'C:\Perl\lib/CPAN/Config.pm' cpan> q

(See: http://groups.google.com/group/de.comp.lang.perl.misc/browse_thread/thread/3a347d02a1ebf464 and http://perl.org.il/pipermail/perl/2008-September/009779.html )

Other things that to do and can help:

    1. upgrading last version of Encode - using ppm ,

Note: For upgrading all PPM packages, do this (Windows command line, a.k.a Dos)

    ppm upgrade --install 
    1. upgrade of Wx - also by using ppm ,
    2. installing Alien-wxWidgets (the same way... ppm),
    3. And now - do (again with ppm):
    ppm install  --force Alien-wxWidgets-dev

(See: http://meorero.wordpress.com/2009/02/02/padre-on-ms-windows-with-activeperl-5100-build-1004/)

For more info about "ppm - Perl Package Manager, version 4" - see the ActivePerl 5.10 Documentation: http://docs.activestate.com/activeperl/5.10/bin/ppm.html

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_features_noclass_noid.html0000644000175000017500000003454313401765156023305 0ustar manwarmanwar

[[PageOutline(1-2)]]

List of existing and planned features with links to description of each feature with relevant tickets and test cases to make sure the features are implemented correctly.

Features

* Tools Prefernces draft

Perl-specific features

Plugins

Feature requests and ideas from other sources

In this section we have lists of features taken from verious articles and web sites comparing tools and even from other IDEs.

For each feature we first link it to a related ticket but later on we will point to the description of our implementation of that feature.

From Perlmonks

Perlmonks has a table comparing features of IDEs and editors to be used for Perl development.

The table can be found at Perl Development Tools

TODO: add links to the relevant Feature Pages

Feature Status or link to ticket
Perl Exclusive Why is yes considered good here?
Free yes - Under the "perl" license.
Perl Engine Any - Padre itself runs on 5.8.7 or higher but your code can run on any version of perl
Syntax Checking yes
Syntax colouring yes
Autoindent yes
Incremental search yes
Bracket Completition and Matching yes
Folding see under Visual Editor Effects
Var tree see in Outline
Code browser see in Outline
Debugger Perl 5 Debugger
Stepping See Debugger
Breakpoints See Debugger
Watches See Debugger
Var evaluation See Debugger
Stack module See Debugger
Bookmarks yes
Suggest & complete see #67 but add more
Identify errors also Syntax Checking
Interactive shell
Code snippets yes
Project
Control version Integrated Version Control
Multi document yes
Split View
IME Multilingual Input Method Editor
Docs & Help viewer yes
Module installer
WEB Integrated Web Server
FTP #12 Read and write over ftp protocol (modify the program at remote server)
HTML export #112 To export the source of program with the syntax colouring.
Linux Download
BSD DownloadFreeBSD and DownloadNetBSD
Mac OS X DownloadMacOSX
Solaris
Windows [wiki:DownloadWindows]

From Perl Needs Better Tools

Perl Needs Better Tools by Matisse Enzer

Feature Status or link to ticket
Syntax coloring
Real Time Syntax Checking
Version control integration
Code-assist editor
Excellent refactoring support Refactoring Perl 5 code
Tree view of source files and resources
Support for creating and running unit tests Automated Build and Test
Language-specific help Context Sensitive Help
Run your code under a debugger with real-time display of results
Automatic reformatting of code.
handling of multiple languages
Automated build and test

From Enlightened Perl

Work together with the folks at Enlightened Perl http://www.enlightenedperl.org/ to see how Padre can provide a GUI for their efforts. Look at Kensho, http://search.cpan.org/dist/Task-Kensho/ a list of recommended module and see how Padre can provide a GUI (via a plugin or in core Padre) for them.

From Competitors

See the 'Competitor Analysis'

From Eclipse EPIC

Eclipse CDT - C/C++ Development Tooling Eclipse Java development tools (JDT)

Some of these features are only relevant (or possible) for C/C++ or Java

Feature Status or link to ticket
Find all references
Find definition/declaration/usage
Type Hierarchy
Call Hierarchy (or call graph)
Refactoring
Source navigation
Syntax highlighting
Code folding under Visual Editor Effects
Hyperlink navigation
Include browser
Project creation Project Skeleton Generation
Managed build for various toolchains
Standard make build Via Run menu
Macro definition browser
Code generation partly (File -> New...)
Visual debugging tools
Memory, registers, and disassembly viewers
Text-Trac-0.24/t/expected/padre_download_netbsd.html0000644000175000017500000000466313401765156022102 0ustar manwarmanwar

NetBSD Installation Instructions

Installation using the Package Manager

For binary packages installation take a look at http://www.netbsd.org/docs/software/packages.html#binarydist. There are packages available for some platforms (including NetBSD and Darwin). The 2010Q1 release of pkgsrc will provide binary packages for Padre, too.

Packed by Sno|, contact pkgsrc-users@NetBSD.org in case of problems.

To install Padre on NetBSD or any other pkgsrc supported platform, simply $ cd /usr/pkgsrc/editors/p5-Padre $ make install clean clean-depends

If you want to add plugin's, too, check which ones are already available: $ cd /usr/pkgsrc $ echo */p5-Padre-Plugin-*

For each desired plugin, change the working directory to it's location and install as done above.

If you have trouble installing Padre using pkgsrc (and read the pkgsrc guide, mailing list archives and open PR's carefully), feel free to send your question to pkgsrc-p5-people or pkgsrc-users mailing list as found on http://www.netbsd.org/mailinglists/#descriptions-of-mailing-lists . Although the import and maintaining is mostly done by Jens Rehsack, your chance getting feedback is better asking the proper mailing list instead of the primary maintainer. You might get questions answered on irc://irc.freenode.net/ in the channel #pkgsrc .

Installation from CPAN

Currently, there are no Padre CPAN installation instructions specific to NetBSD. Feel free to add comments and hints.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_fedora.html0000644000175000017500000000544013401765156022055 0ustar manwarmanwar

Fedora Installation Instructions

Installation using the Package Manager

Fedora 15

Provided versions: perl-Padre-0.84-1.fc15 with wxGTK-2.8.11-4.fc15 and perl-Alien-wxWidgets-0.51-4.fc15 # yum install perl-Padre

Fedora 14

Provided versions: perl-Padre-0.64-1.fc14 with wxGTK-2.8.11-3.fc14 and perl-Alien-wxWidgets-0.51-2.fc14 # yum install perl-Padre Apparently, after this padre will still complain libwx_gtk2u_stc-2.8.so cannot open shared object file

then also install # yum install wxGTK-devel

Related bug, which should be fixed in future versions: https://bugzilla.redhat.com/show_bug.cgi?id=656317

In older releases of Fedora is impossible to update because of Fedora update policy. In case you'd like to have latest Padre, you need update to the latest Fedora or use CPAN installation install Padre from CPAN.

=== Older releases === Older releases are not supported, but if you insist on using them install Padre and wxGTK-devel, which should workaround bugs. # yum install perl-Padre wxGTK-devel

Fedora-13 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-12 includes Padre-0.64 with Wx Version: 0.92 wxWidgets 2.8.11.

Fedora-11 includes Padre-0.32 with Wx Version: 0.91.

Fedora-10 includes Padre-0.20 with Wx Version: 0.89.

Fedora-9 includes wxGTK-2.8.7 perl-Wx-0.81 perl-Alien-wxWidgets-0.32.

Fedora-8 includes Wx Version: 0.74 perl-Alien-wxWidgets-0.31.

Manual rebuild

It is possible rebuild latest Padre source rpm on your computer, but you will need rebuild also _a lot_ of dependencies. It's not recommended and it might be better to use CPAN. If you still like to rebuild it, you can try: Download source rpm http://koji.fedoraproject.org/koji/packageinfo?packageID=6964 yum install rpm-build rpmbuild --rebuild perl-Padre-yourversion.src.rpm

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_development_noclass.html0000644000175000017500000001254113401765156022772 0ustar manwarmanwar

[[PageOutline(1-2)]]

Development in general

We are using Subversion for version control. The main development of Padre is in the trunk http://svn.perlide.org/padre/trunk/Padre but there are several additional projects and almost all the plugins of Padre also live in the same repository so the best if you check out the whole trunk http://svn.perlide.org/padre/trunk

$ svn co http://svn.perlide.org/padre/trunk padre

Then you can run the standard CPAN module process:

Make sure you have all of the needed prerequisites. See http://padre.perlide.org/trac/wiki/Download

$ cd padre/Padre
$ perl Makefile.PL      # which will tell about all the missing dependencies of Padre
                        # this may fail if you don't have Module::Install
                        # if so, start cpan and install it with all its prerequisites
$ make
$ make test

For a more detailed set of instructions on how to install the dependencies visit the Download

Once all the above works well you can launch Padre from the SVN tree by running $ perl dev

dev has some more parameters you can see by typing $ perl dev -h

The most important being $ perl dev -a that will include the path to all the plugins located in trunk/

Coding

See the http://search.cpan.org/dist/Padre/lib/Padre/Manual/Hacking.pod file for Core Padre development and http://search.cpan.org/dist/Padre/lib/Padre/Plugin.pm for Plugin development.

Translation

Translation is basically part of the development effort. For more details please take a look at this page: See [wiki:TranslationIntro]

Documentation

The documentation of Padre is standard POD embedded in the .pm files. If you'd like to improve those you should check out the source code of Padre as described above and send patches or ask for commit bit. The documentation is part of the regular development process.

QA/Testing

Unfortunately Padre has not enough automated test mostly due to the fact that we hardly know how to test GUI applications. The existing tests are located in the standard t/ directory. If you'd like to help in this and if you are on Windows you could take a look at the t/win32/ directory where we have a few tests written using Win32::GUItest. You would be very highly regarded if you improved the test coverage of Padre!!

Release Management

See separate page about Release

Development in a branch

Most of our development is done on the trunk but occasionally we prefer to make our private corner for experimental changes or changes that might not be stable for some time. Instructions on how to do that:

Create a branch and work on it:

Assuming you have already checked out http://svn.perlide.org/padre/trunk/ to /path/to/padre

$ svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/My-branch -m'some messages'
$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/branches/My-branch .

If you run svn st ..

You will see a letter S infront to the Padre directory as that one is switched.

Now you can edit, test and commit as usual. Your changes will be committed to the branch.

When done and you would like to merge your changes

1. Make sure everything is committed

$ cd /path/to/padre/Padre
$ svn switch http://svn.perlide.org/padre/trunk/Padre
$ svn log --stop-on-copy http://svn.perlide.org/padre/branches/My-branch

This will show you the changes you made on the branch. Take the FIRST and LAST revision numbers in this log and use the following command to see the full change you made: svn diff -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch

use the following to merge it back to trunk svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch . svn commit -m'merged -rFIRST:LAST http://svn.perlide.org/padre/branches/My-branch ' svn rm http://svn.perlide.org/padre/branches/My-branch -m'My-branch is not needed any more'

If you decided it was a dead-end you can just switch back to trunk and remove the branch.

Tickets

[[TicketQuery(component=development,order=id,desc=1,format=table,col=resolution|summary|owner|reporter)]]

Text-Trac-0.24/t/expected/padre_download_cpan_noclass_noid_nospan.html0000644000175000017500000000623713401765156025654 0ustar manwarmanwar

CPAN Installation Instructions

Padre is released as a CPAN package. You can download and install it using cpan, cpanm or CPANPLUS. The released versions can be seen here http://search.cpan.org/dist/Padre/ here http://kobesearch.cpan.org/dist/Padre and here https://metacpan.org/release/Padre depending on your preferences.

As Padre has many dependencies probably the easiest is to install the binary distribution where available from the vendor (Mandriva, Fedora, Debian, FreeBSD) and then use cpanm to upgrade.

If this is not possible read on.

Install from CPAN

Strawberry Perl on Windows

On Strawberry Perl you should be able to install/upgrade Padre by just opening the "cmd" and typing

c:> cpan Padre

Active Perl in Windows

Probably the same as for Strawberry Perl but you might first need to install the C compiler they supply.

Linux

On Linux you should probably start by installing from the binary repository of your distribution (see below) and then upgrading from CPAN using local::lib.

That part starts by installing local::lib using the Bootstrapping technique and once that's done type

$ cpan Padre

Common Problems

Corporate Proxy

People behind a (corporate) proxy will not be able to access the CPAN servers directly. First they need to tell the CPAN client which proxy to use. For this, launch the cpan client by typing cpan on the command line. You should get a cpan> prompt and in there type the following: (obviously replace the address of the proxy server with the one you have in your company).

cpan> o conf http_proxy http://proxy.corporate.com:8080
cpan> o conf commit
cpan> q

Once you did this the cpan command should work.

WxWidgets and WxPerl

The difficult part is sometimes to install some of the prerequisites:

  • Installing wxWidgets (that Alien::wxWidgets tries to solve)
  • Installing wxPerl (the Wx distro) from CPAN.

Mattia Barbon did a great job with them but they still may be difficult to install in some cases.

Platform-specific Instructions

Text-Trac-0.24/t/expected/padre_download_opensuse_noclass.html0000644000175000017500000000217413401765156024201 0ustar manwarmanwar

openSUSE Installation Instructions

Installation using the Package Manager

Installation from CPAN

  1. Add the packman repository.
  2. Install the package »wxWidgets-devel« and the schema »C/C++ Development«.

[[Image(yast.png)]] 3. Install Padre from CPAN.

Configure make_install_make_command and mbuild_install_build_command to enable sudo support in CPAN.

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_download_debian.html0000644000175000017500000000634713401765156022046 0ustar manwarmanwar

Debian Installation Instructions

Installation using the Package Manager

Padre 0.63 is available in Debian 6.0 ("squeeze"), as well as in the unstable (Pare 0.90) and testing (Padre 0.90) branches of Debian.

Install: # aptitude install padre

Older Stable Releases

If you run a stable release prior to Squeeze (6.0), you'd have to add an "unstable" or "testing" source to /etc/apt/sources.list, e.g. as follows: deb http://mirror.isoc.org.il/pub/debian/ unstable main deb-src http://mirror.isoc.org.il/pub/debian/ unstable main

Then update the package list # aptitude update

and perform the installation as described above.

Installation from CPAN or Subversion

Make sure that CPAN can work properly. Install the build-essential package if it is not yet installed.

aptitude install libppix-regexp-perl libalien-wxwidgets-perl libppix-editortools-perl libio-string-perl libdevel-dumpvar-perl libfile-spec-perl libwx-perl libprobe-perl-perl libwxbase2.8-dev libdevel-refactor-perl libnet-daemon-perl libclass-unload-perl libthreads-shared-perl libwxgtk2.8-0 libtext-diff-perl libfile-next-perl libdbi-perl libtext-glob-perl ack-grep libclass-inspector-perl libtext-findindent-perl libfile-remove-perl libplrpc-perl libmodule-manifest-perl libparse-exuberantctags-perl libtemplate-tiny-perl libparse-errorstring-perl-perl libpod-pom-perl  liborlite-migrate-perl libfile-pushd-perl libio-stringy-perl libwxbase2.8-0 libipc-run-perl libclass-adapter-perl libtask-weaken-perl  libpod2-base-perl liborlite-perl libfile-find-rule-perl libpod-abstract-perl libclass-xsaccessor-perl libio-pty-perl libclone-perl  libwx-perl-processstream-perl libipc-run3-perl libwxgtk2.8-dev libdbd-sqlite3-perl libfile-sharedir-perl libppi-perl wx2.8-headers  libfile-homedir-perl liblist-moreutils-perl libdebug-client-perl libnumber-compare-perl libyaml-tiny-perl libgtk2.0-dev

Then either install from CPAN (which will help you to resolve possible additional dependencies), or run perl Makefile.PL make make test make install in the Padre directory. Pay attention to the output of perl Makefile.PL, it may remind you of some missing CPAN modules that you need to install.

(last checked Sep. 22, 2011, on Debian testing)

Still Not Working?

Following the instructions on this page did not lead to a successful installation?

Contact us.

We will do our best to help you. By letting us know that something does not work you will help us, too. When we know about it, we can improve this documentation and Padre itself.

Text-Trac-0.24/t/expected/padre_wikistart_noclass_noid_nospan.html0000644000175000017500000001115713401765156025062 0ustar manwarmanwar

Padre - Perl Application Development and Refactoring Environment

Take a look at the current state of Padre on our Screenshots page.

Features

Tickets To create a New Ticket for Padre, you will need to Login (if you are new here, please Register first).

Project Objectives

Some of the objectives of the project:

  • Make it very easy to start using it, especially for Perl development.
  • Easy installation on Windows, Linux and other operating systems
  • By default work like notepad, hide most of the options.
  • Make it very Perl beginner friendly
  • Out of the box allow running Perl scripts, have Perl documentation.
  • Provide a variety of assistance options to help with learning Perl.
  • Auto-detect as much as possible, to provide a Do What I Mean working style.
  • Support for development of large cross language applications
  • Project-specific editor configuration.
  • Boilerplate creation for CPAN modules, Catalyst applications, and more.
  • Extend Padre with plugins to add new interfaces and functionality.
  • Support for languages that are often used with Perl (SQL, Javascript, HTML, XML)
  • Support for other programming languages (Python, PHP, Ruby etc.)
  • Support for Parrot and Perl 6
  • Support for Moose, Mouse and MooseX::Declare

How do I try it?

See Download for installation instructions. And be sure to check out the Documentation for additional info.

Getting involved - How can I participate?

See also http://padre.perlide.org/getting_involved.html

Setting up a development environment

See Howto * SvnMimeTypes * Guide to setting mime types to enable pygments to display formatted code in trac. * Padre::Plugin::Cookbook * Series of Cookbooks to aid in Gui Plug-in development

Mailing lists

IRC

Padre's IRC channel is very active, and the best first point of call for questions or assistance.

We hang out on #padre on irc.perl.org

It is being logged here: http://irclog.perlgeek.de/padre/today

You can also use the web-based IRC client on Mibbit from our IRC page

Support

You can try our mailing list or IRC, but I am sure the PerlMonks will be glad to help you as well.

History

Before 7 August 2008 the source code was kept in a different SVN repository under various names. There was no easy way to transfer it so I started this repository from scratch. That pre-history can be found here:

http://svn1.hostlocal.com/szabgab/trunk/Wx-Tutorial -r 941

http://svn1.hostlocal.com/szabgab/trunk/App-Editor -r 1080

The About page has links to related blog posts from before Padre was released.

Release History

Padre is written in Perl 5 using wxWidgets

Text-Trac-0.24/lib/0000755000175000017500000000000013403124170013347 5ustar manwarmanwarText-Trac-0.24/lib/Text/0000755000175000017500000000000013403124170014273 5ustar manwarmanwarText-Trac-0.24/lib/Text/Trac/0000755000175000017500000000000013403124170015164 5ustar manwarmanwarText-Trac-0.24/lib/Text/Trac/Ol.pm0000755000175000017500000000276613403122736016120 0ustar manwarmanwarpackage Text::Trac::Ol; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/(\s+) ([\daiAI])\. \s+ (.*)$/xms); return $self; } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; $l =~ $pattern or return $l; my $type = $2; my $space = length($1); my $level = $c->ol->{level} || 0; $c->ol->{space} ||= 0; my $start_tag; if ( $type =~ /(\d)/ ) { $start_tag = $type == 1 ? '
    ' : qq{
      }; } elsif ( $type eq 'a' ) { $start_tag = q{
        }; } elsif ( $type eq 'A' ) { $start_tag = q{
          }; } elsif ( $type eq 'i' ) { $start_tag = q{
            }; } elsif ( $type eq 'I' ) { $start_tag = q{
              }; } if ( $space > $c->ol->{space} ) { for ( 1 .. ( $space + 1 ) / 2 - $level ) { $l = $start_tag . $l; $level++; } } elsif ( $space < $c->ol->{space} ) { for ( 1 .. ( $c->ol->{space} - $space ) / 2 ) { $l = '
            ' . $l; $level--; } $l =~ s!(?<=)(?= )!!; } else { $l = "$l"; } $c->ol( { level => $level, space => $space } ); # parse inline nodes $l =~ s{ $pattern }{'
          1. ' . $self->replace($3)}xmsge; if ( $c->hasnext and $c->nextline =~ $pattern ) { $self->parse($l); } else { for ( 1 .. $c->ol->{level} ) { $l .= '
          '; } $c->ol->{level} = 0; $c->ol->{space} = 0; } $c->htmllines($l); return; } 1; Text-Trac-0.24/lib/Text/Trac/Ul.pm0000755000175000017500000000213113403122736016110 0ustar manwarmanwarpackage Text::Trac::Ul; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/(\s+) \* \s+ (.*)$/xms); } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; $l =~ $pattern or return $l; my $space = length($1); my $level = $c->ul->{level} || 0; $c->ul->{space} ||= 0; if ( $space > $c->ul->{space} ) { for ( 1 .. ( $space + 1 ) / 2 - $level ) { $l = '
            ' . $l; $level++; } } elsif ( $space < $c->ul->{space} ) { for ( 1 .. ( $c->ul->{space} - $space ) / 2 ) { $l = '
          ' . $l; $level--; } $l =~ s!(?<=)(?= )!!; } else { $l = "$l"; } $c->ul( { level => $level, space => $space } ); # parse inline nodes $l =~ s{ $pattern }{"
        1. " . $self->replace($2)}xmsge; if ( $c->hasnext and $c->nextline =~ /$pattern/ ) { $self->parse($l); } else { for ( 1 .. $c->ul->{level} ) { $l .= '
        2. '; } $c->ul->{level} = 0; $c->ul->{space} = 0; } # parse inline nodes $c->htmllines($l); return; } 1; Text-Trac-0.24/lib/Text/Trac/InlineNode.pm0000644000175000017500000001727713403122736017572 0ustar manwarmanwarpackage Text::Trac::InlineNode; use strict; use warnings; use Tie::IxHash; use Text::Trac::Macro; use UNIVERSAL::require; use Text::Trac::LinkResolver; use HTML::Entities qw(); our $VERSION = '0.24'; tie my %token_table, 'Tie::IxHash'; #my $handler = $token_table{'!?\\[\\d+\\]|(?:\\b|!)r\\d+\\b(?!:\\d)'}; #$handler->format_link('test'); my $link_scheme = '[\w.+-]+'; my $quoted_string = q{'[^']+'|"[^"]+"}; my $shref_target_first = '[\w/?!#@]'; my $shref_target_middle = '(?:\|(?=[^|\s])|[^|<>\s])'; my $shref_target_last = '[a-zA-Z0-9/=]'; my $shref = "!?$link_scheme: (?: $quoted_string |$shref_target_first(?:$shref_target_middle*$shref_target_last)? ) "; my $macro = '\[\[[\w/+-]+(?:\(.*\))?\]\]'; my $lhref_relative_target = '[/.][^\s[\]]*'; my $lhref = "!?\\[ (?: $link_scheme: (?:$quoted_string|[^\\[\\]\\s]*) |(?:$lhref_relative_target|[^\\[\\]\\s]) ) (?: \\s+ $quoted_string |[^\\]]+ )? \\] "; my $rules = join '|', ( map {"($_)"} ( keys %token_table ) ); $rules = qr/$rules/x; s/^\!\?// for values %token_table; s/^\\// for values %token_table; sub new { my ( $class, $c ) = @_; # external link resolvers my %external_handler; for (@Text::Trac::LinkResolver::handlers) { my $class = 'Text::Trac::LinkResolver::' . ucfirst($_); $class->require; my $handler = $class->new($c); $token_table{ $handler->{pattern} } = $handler if defined $handler->{pattern}; $external_handler{$_} = $handler; } %token_table = ( q{'''''} => 'bolditalic', q{'''} => 'bold', q{''} => 'italic', '!?__' => 'underline', '!?~~' => 'strike', '!?,,' => 'subscript', '!?\^' => 'superscript', '`|\{\{\{|\}\}\}' => 'inline', $macro => 'macro', %token_table, $lhref => 'lhref', $shref => 'shref', ); my $rules = join '|', ( map {"($_)"} ( keys %token_table ) ); $rules = qr/$rules/x; s/^\!\?// for values %token_table; s/^\\// for values %token_table; my $self = { context => $c, open_tags => [], rules => $rules, external_handler => \%external_handler, }; bless $self, $class; return $self; } sub parse { my ( $self, $rest ) = @_; my $html = ''; while ( $rest =~ /$self->{rules}/xms ) { $html .= $self->escape($`) . $self->_replace( $&, $`, $' ); $rest = $'; } return $html . $self->escape($rest); } sub escape { my ( $self, $s ) = @_; return HTML::Entities::encode( $s, '<>&"' ); } sub _replace { my ( $self, $match, $pre_match, $post_match ) = @_; if ( $match =~ s/^!// ) { return $match; } else { TOKEN: for my $token ( keys %token_table ) { if ( $match =~ /$token/x ) { my $formatter = $token_table{$token}; if ( ref $formatter ) { for (qw/ log source attachment http /) { next TOKEN if $match =~ /^\[?$_/; } return $formatter->format_link($match); } else { my $method = "_${formatter}_formatter"; return $self->$method( $match, $pre_match, $post_match ); } } } } } sub _simple_tag_handler { my ( $self, $open_tag, $close_tag ) = @_; if ( $self->_is_open($open_tag) ) { $self->_close_tag($open_tag); return $close_tag; } else { $self->_open_tag($open_tag); return $open_tag; } } sub _is_open { my ( $self, $tag ) = @_; return grep { $tag eq $_ } @{ $self->{open_tags} }; } sub _open_tag { my ( $self, $tag ) = @_; push @{ $self->{open_tags} }, $tag; } sub _close_tag { my ( $self, $tag ) = @_; my $index = 0; for ( @{ $self->{open_tags} } ) { last if $tag eq $_; $index++; } splice @{ $self->{open_tags} }, $index; } sub _bolditalic_formatter { my $self = shift; my $is_open = $self->_is_open(''); my $tmp; if ($is_open) { $tmp .= ''; $self->_close_tag(''); } $tmp .= $self->_bold_formatter; unless ($is_open) { $tmp .= ''; $self->_open_tag(''); } return $tmp; } sub _bold_formatter { my $self = shift; return $self->_simple_tag_handler( '', '' ); } sub _italic_formatter { my $self = shift; return $self->_simple_tag_handler( '', '' ); } sub _underline_formatter { my ( $self, $match, $pre_match, $post_match ) = @_; my $class_underline = $self->{context}->{class} ? q{class="underline"} : ''; return $self->_simple_tag_handler( qq{}, '' ); } sub _strike_formatter { my ( $self, $match, $pre_match, $post_match ) = @_; return $self->_simple_tag_handler( '', '' ); } sub _superscript_formatter { my ( $self, $match, $pre_match, $post_match ) = @_; return $self->_simple_tag_handler( '', '' ); } sub _subscript_formatter { my ( $self, $match, $pre_match, $post_match ) = @_; return $self->_simple_tag_handler( '', '' ); } sub _inline_formatter { my ( $self, $match, $pre_match, $post_match ) = @_; return $self->_simple_tag_handler( '', '' ); } sub _shref_formatter { my ( $self, $match ) = @_; my ( $ns, $target ) = ( $match =~ m/($link_scheme): ( $quoted_string |$shref_target_first (?: $shref_target_middle* $shref_target_last )? ) /x ); return $self->_make_link( $ns, $target, $match, $match ); } sub _lhref_formatter { my ( $self, $match ) = @_; my ( $ns, $target, $label ) = ( $match =~ m/\[ ($link_scheme): ( (?:$quoted_string|[^\]\s]*) |(?:$lhref_relative_target|[^\]\s]) ) (?: \s+ ($quoted_string|[^\]]+) )? \] /x ); if ( !$label ) { # e.g. `[http://target]` or `[wiki:target]` if ($target) { if ( $target =~ m!^//! ) { $label = $ns . ':' . $target; } else { $label = $target; } } else { # e.g. `[search:]` $label = $ns; } } return $self->_make_link( $ns, $target, $match, $label ); } sub _make_link { my ( $self, $ns, $target, $match, $label ) = @_; if ( defined $target && ( $target =~ m!^//! or $target eq 'mailto' ) ) { return $self->_make_ext_link( $ns . ':' . $target, $label ); } else { my $handler; if ( defined $ns ) { $handler = $self->{external_handler}->{$ns}; } return $handler ? $handler->format_link( $match, $target, $label ) : $match; } } sub _make_ext_link { my ( $self, $url, $text, $title ) = @_; my $title_attr = $title ? qq{title="$title"} : ''; $title ||= $text; my $local = $self->{context}->{local} || ''; my $class_link = $self->{context}->{class} ? q{class="ext-link"} : ''; my $class_icon = $self->{context}->{class} ? q{class="icon"} : ''; my $span = $self->{context}{span} ? qq{} : ''; if ( $url !~ /^$local/ or !$local ) { return qq{$span$text}; } } sub _macro_formatter { my ( $self, $match ) = @_; my ( $name, $args ) = ( $match =~ m!\[\[ ([\w/+-]+) (?:\( (.*) \))? \]\]!x ); if ( $name =~ /br/i ) { return '
          '; } else { return Text::Trac::Macro->new->parse( $name, $args, $match ); } } package Text::Trac::InlineNode::Initializer; 1; Text-Trac-0.24/lib/Text/Trac/Macro.pm0000755000175000017500000000123113403122736016571 0ustar manwarmanwarpackage Text::Trac::Macro; use strict; use warnings; use base qw(Text::Trac::InlineNode Class::Accessor::Fast); use UNIVERSAL::require; use Text::ParseWords qw(quotewords); our $VERSION = '0.24'; __PACKAGE__->mk_accessors('pattern'); sub new { my $class = shift; my $self = {}; bless $self, $class; return $self; } sub parse { my ( $self, $name, $args, $match ) = @_; my $c = $self->{context}; my @args = $args ? quotewords( ',\s*', 0, $args ) : (); s/^\s+|\s+$//g for @args; foreach my $class ( "Text::Trac::Macro::$name", $name ) { if ( $class->require ) { $match = $class->process( $c, @args ) || ''; last; } } return $match; } 1; Text-Trac-0.24/lib/Text/Trac/BlockNode.pm0000755000175000017500000000455713403122736017406 0ustar manwarmanwarpackage Text::Trac::BlockNode; use strict; use warnings; use base qw( Class::Accessor::Fast Class::Data::Inheritable ); use UNIVERSAL::require; use Text::Trac::InlineNode; our $VERSION = '0.24'; __PACKAGE__->mk_classdata( block_nodes => [qw( heading hr p ul ol blockquote pre table dl )] ); #__PACKAGE__->mk_classdata( # inline_nodes => [ qw( bold_italic bold italic underline monospace strike sup sub br # auto_link_http macro trac_links ) ] #); __PACKAGE__->mk_classdata( block_parsers => [] ); __PACKAGE__->mk_classdata( inline_parsers => [] ); __PACKAGE__->mk_accessors(qw( context pattern inline_parser )); sub new { my ( $class, $params ) = @_; my $self = { %$params, }; bless $self, $class; $self->init; $self->inline_parser( Text::Trac::InlineNode->new( $self->context ) ); return $self; } sub init { my $self = shift; return $self; } sub parse { my $self = shift; my $c = $self->context; $self->block_parsers( $self->_get_parsers('block') ); #$self->inline_parsers( $self->_get_parsers('inline') ); while ( defined( my $l = $c->shiftline ) ) { next if $l =~ /^$/; for my $parser ( @{ $self->_get_matched_parsers( 'block', $l ) } ) { $parser->parse($l); } } } sub escape { my ( $self, $l ) = @_; return $self->inline_parser->escape($l); } sub replace { my ( $self, $l ) = @_; return $self->inline_parser->parse($l); } sub _get_parsers { my ( $self, $type ) = @_; $type .= '_nodes'; my @parsers; for ( @{ $self->$type } ) { my $class = 'Text::Trac::' . $self->_camelize($_); $class->require; push @parsers, $class->new( { context => $self->context } ); } return \@parsers; } sub _get_matched_parsers { my ( $self, $type, $l ) = @_; my $c = $self->context; $type .= '_parsers'; my @matched_parsers; for my $parser ( @{ $self->$type } ) { next if ( grep { ref($parser) eq 'Text::Trac::' . $self->_camelize($_) } @{ $c->in_block_of } and $type =~ /^block/ ); my $pattern = $parser->pattern or next; if ( $l =~ /$pattern/ ) { push @matched_parsers, $parser; } } push @matched_parsers, Text::Trac::P->new( { context => $self->context } ) if ( !@matched_parsers and $type =~ /^block/ ); return \@matched_parsers; } sub _camelize { my ( $self, $word ) = @_; my $camelized_word; for ( split '_', $word ) { chomp($_); $camelized_word .= ucfirst($_); } return $camelized_word; } 1; Text-Trac-0.24/lib/Text/Trac/Text.pm0000755000175000017500000000054213403122736016460 0ustar manwarmanwarpackage Text::Trac::Text; use strict; use warnings; our $VERSION = '0.24'; sub new { my $class = shift; my %args = @_; my $self = { context => $args{context}, html => '', }; bless $self, $class; } sub parse { my $self = shift; $self->{html} = ''; my $text = shift or return; $self->{html} = $text; } sub html { $_[0]->{html}; } 1; Text-Trac-0.24/lib/Text/Trac/Node.pm0000755000175000017500000000054013403122736016417 0ustar manwarmanwarpackage Text::Trac::Node; use strict; use warnings; use base qw( Class::Accessor::Fast ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = ''; } sub parse { die; } sub html { $_[0]->{html}; } sub pattern { $_[0]->{pattern}; } sub context { my $self = shift; $self->{context} = $_[0] if $_[0]; $self->{context}; } 1; Text-Trac-0.24/lib/Text/Trac/Blockquote.pm0000755000175000017500000000334413403122736017647 0ustar manwarmanwarpackage Text::Trac::Blockquote; use strict; use warnings; use base qw( Text::Trac::BlockNode ); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^(?:>|\s+(?![*\s]|[\daiAI]\.\ +).+$)/); $self->block_nodes( [qw( heading p ul ol )] ); } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; return if $l =~ /::$/; if ( $l =~ /^(>+).+/ ) { my $depth = length $1; my $blockquote_depth = 0; for ( @{ $c->in_block_of } ) { $blockquote_depth++ if $_ eq 'blockquote'; } my $class = $c->{class} ? q{class="citation"} : ''; if ( $depth > $blockquote_depth ) { for ( 1 .. $depth ) { $c->htmllines(qq{
          }); push @{ $c->in_block_of }, 'blockquote'; } } } else { $c->htmllines('
          '); push @{ $c->in_block_of }, 'blockquote'; } $c->unshiftline; while ( $c->hasnext ) { last if ( $c->nextline =~ /^\s*$/ ); my $l = $c->shiftline; if ( $l =~ /^(>+).+/ ) { my $depth = length $1; my $blockquote_depth = 0; for ( @{ $c->in_block_of } ) { $blockquote_depth++ if $_ eq 'blockquote'; } if ( $depth < $blockquote_depth ) { $c->unshiftline; last; } } # parse other block nodes my $block_parsers = $self->_get_matched_parsers( 'block', $l ); for my $parser ( @{$block_parsers} ) { $l = $parser->parse($l); } # parse inline nodes my $inline_parsers = $l ? $self->_get_matched_parsers( 'inline', $l ) : undef; for my $parser ( @{$inline_parsers} ) { $l = $parser->parse($l); } $c->htmllines($l); } if ( @{ $c->in_block_of } and $c->in_block_of->[-1] eq 'blockquote' ) { pop @{ $c->in_block_of }; $c->htmllines('
          '); } return $l; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/0000755000175000017500000000000013403124170017603 5ustar manwarmanwarText-Trac-0.24/lib/Text/Trac/LinkResolver/Log.pm0000644000175000017500000000115413403122736020671 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Log; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?\[\d+:\d+\]|(?:\b|!)r\d+:\d+\b'; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ( $from, $to ) = ( $match =~ m/(\d+):(\d+)/ ); my $url = $c->{trac_log_url} || $c->trac_url . 'log/'; return sprintf '%s', ( $c->{class} ? q{class="source"} : '' ), $url, $to, $from, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Attachment.pm0000755000175000017500000000115313403122736022242 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Attachment; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ( $type, $name, $file ) = ( $match =~ m/attachment:([^:]+):([^:]+):([^:\]\s]+)/ ); my $url = $c->{trac_attachment_url} || $c->trac_url . 'attachment/'; $url .= "$type/$name/$file"; return sprintf '%s', ( $c->{class} ? q{class="attachment"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Milestone.pm0000755000175000017500000000106713403122736022115 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Milestone; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ( $from, $to ) = ( $match =~ m/(\d+):(\d+)/ ); my $url = $c->{trac_milestone_url} || $c->trac_url . 'milestone/'; $url .= $target; return sprintf '%s', ( $c->{class} ? q{class="milestone"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Ticket.pm0000755000175000017500000000107613403122736021401 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Ticket; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?(?_is_disabled; my $c = $self->{context}; $label ||= $match; my ($rev) = ( $match =~ m/(\d+)/ ); my $url = $c->{trac_ticket_url} || $c->trac_url . 'ticket/'; $url .= $rev; return sprintf '%s', ( $c->{class} ? q{class="ticket"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Source.pm0000644000175000017500000000112113403122736021402 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Source; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ( $file, $rev ) = ( $target =~ m/([^#]+)(?:#(\d+))?/ ); my $url = $c->{trac_source_url} || $c->trac_url . 'browser/'; $url .= $file; $url .= "?rev=$rev" if $rev; return sprintf '%s', ( $c->{class} ? q{class="source"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Report.pm0000755000175000017500000000107213403122736021425 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Report; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?\{\d+\}'; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ($rev) = ( $match =~ m/(\d+)/ ); my $url = $c->{trac_report_url} || $c->trac_url . 'report/'; $url .= $rev; return sprintf '%s', ( $c->{class} ? q{class="report"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Wiki.pm0000755000175000017500000000132713403122736021060 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Wiki; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?(?_is_disabled; my $c = $self->{context}; $label ||= $match; $target ||= $match; if ( $label =~ /\[wiki:(\S+)\s+(.+)\]/ ) { $target = $1; $label = $2; } my $url = $c->{trac_wiki_url} || $c->trac_url . 'wiki/'; $url .= $target; return sprintf '%s', ( $c->{class} ? q{class="wiki"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Changeset.pm0000755000175000017500000000113413403122736022052 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Changeset; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?\[\d+\]|(?:\b|!)r\d+\b(?!:\d)'; } sub format_link { my ( $self, $match, $target, $label ) = @_; return $match if $self->_is_disabled; my $c = $self->{context}; $label ||= $match; my ($rev) = ( $match =~ m/(\d+)/ ); my $url = $c->{trac_changeset_url} || $c->trac_url . 'changeset/'; $url .= $rev; return sprintf '%s', ( $c->{class} ? q{class="changeset"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver/Comment.pm0000644000175000017500000000120413403122736021546 0ustar manwarmanwarpackage Text::Trac::LinkResolver::Comment; use strict; use warnings; use base qw( Text::Trac::LinkResolver ); our $VERSION = '0.24'; sub init { my $self = shift; $self->{pattern} = '!?(?_is_disabled; my $c = $self->{context}; $label ||= $match; my ( $rev, $commentId ) = ( $match =~ m/(\d+):(\d+)/ ); my $url = $c->{trac_ticket_url} || $c->trac_url . 'ticket/'; $url .= $rev; $url .= "#comment:$commentId"; return sprintf '%s', ( $c->{class} ? q{class="ticket"} : '' ), $url, $label; } 1; Text-Trac-0.24/lib/Text/Trac/Context.pm0000755000175000017500000000256413403122736017166 0ustar manwarmanwarpackage Text::Trac::Context; use strict; use warnings; use base qw (Class::Accessor::Fast); our $VERSION = '0.24'; __PACKAGE__->mk_accessors(qw( ul ol min_heading_level permalink in_block_of trac_url )); my %Defaults = ( text => '', html => '', htmllines => [], ul => {}, ol => {}, shift_count => 0, in_block_of => [], disable_links => [], enable_links => [], ); sub new { my ( $class, $args ) = @_; my $self = { %Defaults, %$args, }; bless $self, $class; $self->init; return $self; } sub init { my $self = shift; $self->{text} =~ s/\r//g; @{ $self->{lines} } = split( '\n', $self->{text} ); $self->{index} = -1; $self->{htmllines} = []; } sub hasnext { my $self = shift; defined( $self->{lines}->[ $self->{index} + 1 ] ); } sub nextline { my $self = shift; $self->{lines}->[ $self->{index} + 1 ]; } sub shiftline { my $self = shift; $self->{lines}->[ ++$self->{index} ]; } sub unshiftline { my $self = shift; $self->{lines}->[ --$self->{index} ]; } sub currentline { my $self = shift; $self->{lines}->[ $self->{index} ]; } sub html { my $self = shift; join( "\n", @{ $self->{htmllines} } ); } sub htmllines { my $self = shift; push @{ $self->{htmllines} }, $_[0] if defined $_[0]; $self->{htmllines}; } sub lasthtmlline { $_[0]->{htmllines}->[-1]; } sub list_level { my $self = shift; } 1; Text-Trac-0.24/lib/Text/Trac/Macro/0000755000175000017500000000000013403124170016225 5ustar manwarmanwarText-Trac-0.24/lib/Text/Trac/Macro/HelloWorld.pm0000755000175000017500000000030213403122736020642 0ustar manwarmanwarpackage Text::Trac::Macro::HelloWorld; use strict; use warnings; our $VERSION = '0.24'; sub process { my ( $class, $c, @args ) = @_; return 'Hello World, args = ' . join ', ', @args; } 1; Text-Trac-0.24/lib/Text/Trac/Macro/Timestamp.pm0000755000175000017500000000025413403122736020540 0ustar manwarmanwarpackage Text::Trac::Macro::Timestamp; use strict; use warnings; our $VERSION = '0.24'; sub process { my $class = shift; return '' . localtime(time) . ''; } 1; Text-Trac-0.24/lib/Text/Trac/P.pm0000755000175000017500000000345413403122736015740 0ustar manwarmanwarpackage Text::Trac::P; use strict; use warnings; use base qw(Text::Trac::BlockNode); use Text::Trac::Text; our $VERSION = '0.24'; sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; if ( !@{ $c->in_block_of } or $c->in_block_of->[-1] ne 'p' ) { $c->htmllines('

          '); push @{ $c->in_block_of }, 'p'; } # define block parsers called. $self->block_nodes( [qw( blockquote hr )] ); $self->block_parsers( $self->_get_parsers('block') ); my $cite_depth = 0; $c->unshiftline; while ( $c->hasnext ) { last if $c->nextline =~ /^$/; $l = $c->shiftline; last if $l =~ /^\s+$/; my $blockquote_depth = 0; for ( @{ $c->in_block_of } ) { $blockquote_depth++ if $_ eq 'blockquote'; } if ( $l =~ /^(>+)/ ) { $cite_depth = length $1; if ( $blockquote_depth != $cite_depth ) { $c->unshiftline; last; } else { $l =~ s/^>+//; } } elsif ( $l !~ /^(?:>|\s+)/ and $blockquote_depth ) { $c->htmllines('

          '); pop @{ $c->in_block_of }; for ( 1 .. $blockquote_depth ) { $c->htmllines('
          '); pop @{ $c->in_block_of }; } $c->unshiftline; last; } # parse other block nodes my $parsers = $self->_get_matched_parsers( 'block', $l ); if ( grep { ref($_) ne 'Text::Trac::P' } @{$parsers} ) { $c->htmllines('

          '); pop @{ $c->in_block_of }; $c->unshiftline; last; } # parse inline nodes $l = $self->replace($l); $c->htmllines($l); } if ( @{ $c->in_block_of } and $c->in_block_of->[-1] eq 'p' ) { $c->htmllines('

          '); pop @{ $c->in_block_of }; my $blockquote_depth = 0; for ( @{ $c->in_block_of } ) { $blockquote_depth++ if $_ eq 'blockquote'; } if ($cite_depth) { for ( $blockquote_depth .. length $1 ) { $c->htmllines(''); pop @{ $c->in_block_of }; } } } return; } 1; Text-Trac-0.24/lib/Text/Trac/Table.pm0000755000175000017500000000133613403122736016565 0ustar manwarmanwarpackage Text::Trac::Table; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^\|\|([^\|]*\|\|(?:[^\|]*\|\|)+)$/xms); return $self; } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; $l =~ $pattern or return $l; $c->htmllines(''); $c->unshiftline; while ( $c->hasnext and ( $c->nextline =~ $pattern ) ) { my $l = $c->shiftline; $l =~ s{ $self->{pattern} }{$1}xmsg; $l = ''; $c->htmllines($l); } $c->htmllines('
          ' . join( '', map { $self->replace($_) # parse inline nodes } split( /\|\|/, $l ) ) . '
          '); return; } 1; Text-Trac-0.24/lib/Text/Trac/Dl.pm0000755000175000017500000000200113403122736016063 0ustar manwarmanwarpackage Text::Trac::Dl; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^\s+(.*)::$/xms); } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; if ( !@{ $c->in_block_of } or $c->in_block_of->[-1] ne 'dl' ) { $c->htmllines('
          '); push @{ $c->in_block_of }, 'dl'; } $c->unshiftline; while ( $c->hasnext ) { last if ( $c->nextline =~ /^$/ ); my $l = $c->shiftline; if ( $l =~ /$pattern/ ) { if ( $c->in_block_of->[-1] eq 'dd' ) { $l = "\n
          $1
          "; pop @{ $c->in_block_of }; } else { $l = "
          $1
          "; } } else { $l =~ s/^\s+//g; if ( $c->in_block_of->[-1] ne 'dd' ) { $l = "
          \n$l"; push @{ $c->in_block_of }, 'dd'; } } $c->htmllines($l); } if ( $c->in_block_of->[-1] eq 'dd' ) { $c->htmllines('
          '); pop @{ $c->in_block_of }; } pop @{ $c->in_block_of }; $c->htmllines('
          '); return; } 1; Text-Trac-0.24/lib/Text/Trac/Pre.pm0000755000175000017500000000121213403122736016255 0ustar manwarmanwarpackage Text::Trac::Pre; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^\{\{\{$/xms); return $self; } sub parse { my ( $self, $l ) = @_; my $c = $self->{context}; my $pattern = $self->pattern; $l =~ /$pattern/ or return $l; my $match = $1; my $class = $c->{class} ? q{ class="wiki"} : ''; if ( $l =~ /^\{\{\{$/ ) { $c->htmllines(qq{}); } while ( $c->hasnext ) { my $l = $c->shiftline; if ( $l =~ /^\}\}\}$/ ) { $c->htmllines(''); last; } else { $c->htmllines( $self->escape($l) ); } } return; } 1; Text-Trac-0.24/lib/Text/Trac/LinkResolver.pm0000755000175000017500000000120513403122736020150 0ustar manwarmanwarpackage Text::Trac::LinkResolver; use strict; use warnings; use List::MoreUtils qw( any ); our $VERSION = '0.24'; our @handlers = qw( changeset wiki report log ticket milestone source attachment comment ); sub new { my $class = shift; my $self = { context => shift }; bless $self, $class; $self->init; return $self; } sub _is_disabled { my ( $self, $resolver ) = @_; ( my $formatter = ref $self ) =~ s/.*:://; if ( @{ $self->{context}->{enable_links} } ) { return !any { lcfirst($formatter) eq $_ } @{ $self->{context}->{enable_links} }; } return any { lcfirst($formatter) eq $_ } @{ $self->{context}->{disable_links} }; } 1; Text-Trac-0.24/lib/Text/Trac/Heading.pm0000755000175000017500000000112313403122736017067 0ustar manwarmanwarpackage Text::Trac::Heading; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^(=+) \s (.*) \s (=+)$/xms); } sub parse { my ( $self, $l ) = @_; my $c = $self->context; $l =~ $self->pattern or return; my $level = length($1) + $c->min_heading_level - 1; my $id = $self->_strip($2); my $attr = $c->{id} ? qq{ id="$id"} : ''; $l = qq() . $self->replace($2) . qq(); $c->htmllines($l); } sub _strip { my ( $self, $word ) = @_; $word =~ s/[\s,_`'{}!]//g; return $word; } 1; Text-Trac-0.24/lib/Text/Trac/Hr.pm0000755000175000017500000000057313403122736016111 0ustar manwarmanwarpackage Text::Trac::Hr; use strict; use warnings; use base qw(Text::Trac::BlockNode); our $VERSION = '0.24'; sub init { my $self = shift; $self->pattern(qr/^----$/xms); return $self; } sub parse { my ( $self, $l ) = @_; my $c = $self->context; my $pattern = $self->pattern; $l =~ $pattern or return; $l =~ s{ $pattern }{
          }xmsg; $c->htmllines($l); } 1; Text-Trac-0.24/lib/Text/Trac.pm0000755000175000017500000000704113403122736015535 0ustar manwarmanwarpackage Text::Trac; use strict; use warnings; use 5.006; use Text::Trac::Context; use Text::Trac::BlockNode; our $VERSION = '0.24'; my %Defaults = ( html => '', permalink => '', min_heading_level => 1, class => 1, id => 1, span => 1, ); sub new { my ( $class, %args ) = @_; my $self = { %Defaults, %args, }; bless $self, $class; } sub parse { my $self = shift; my $text = shift or return; $self->{trac_url} = '/' unless defined $self->{trac_url}; for ( keys %$self ) { if ( $_ =~ /^trac.+url$/ ) { $self->{$_} .= '/' if $self->{$_} !~ m!/$!; } } my $c = Text::Trac::Context->new( { %$self, text => $text, } ); my $node = Text::Trac::BlockNode->new( { context => $c, } ); $node->parse; $self->{html} = $c->html; } sub html { $_[0]->{html}; } *process = \&parse; 1; __END__ =head1 NAME Text::Trac - Perl extension for formatting text with Trac Wiki Style. =head1 SYNOPSIS use Text::Trac; my $parser = Text::Trac->new( trac_url => 'http://trac.mizzy.org/public/', disable_links => [ qw( changeset ticket ) ], ); $parser->parse($text); print $parser->html; =head1 DESCRIPTION Text::Trac parses text with Trac WikiFormatting and convert it to html format. =head1 METHODS =head2 new Constructs Text::Trac object. Available arguments are: =head3 trac_url Base URL for TracLinks.Default is /. You can specify each type of URL individually. Available URLs are: =over =item trac_attachment_url =item trac_changeset_url =item trac_log_url =item trac_milestone_url =item trac_report_url =item trac_source_url =item trac_ticket_url =item trac_wiki_url =back =head3 disable_links Specify TracLink types you want to disable. All types are enabled if you don't specify this option. my $parser = Text::Trac->new( disable_links => [ qw( changeset ticket ) ], ); =head3 enable_links Specify TracLink types you want to enable.Other types are disabled. You cannot use both disable_links and enable_links at once. my $parser = Text::Trac->new( enable_links => [ qw( changeset ticket ) ], ); =head2 parse Parses text and converts it to html format. =head2 process An alias of parse method. =head2 html Return converted html string. =head1 SEE ALSO =over 3 =item L =item L =item L =back =head1 AUTHORS Gosuke Miyashita, C<< >> Hideaki Tanaka, C<< >> =head1 BUGS Please report any bugs or feature requests to C, or through the web interface at L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Text::Trac You can also look for information at: =over 4 =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * RT: CPAN's request tracker L =item * Search CPAN L =back =head1 COPYRIGHT & LICENSE Copyright 2006 Gosuke Miyashita, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut Text-Trac-0.24/Makefile.PL0000644000175000017500000000256613402504242014565 0ustar manwarmanwar#!/usr/bin/perl use 5.006; use strict; use warnings FATAL => 'all'; use ExtUtils::MakeMaker; WriteMakefile( NAME => 'Text::Trac', AUTHOR => q{Gosuke Miyashita, }, VERSION_FROM => 'lib/Text/Trac.pm', ABSTRACT_FROM => 'lib/Text/Trac.pm', LICENSE => 'perl', EXE_FILES => [ 'script/trac2html' ], MIN_PERL_VERSION => 5.006, CONFIGURE_REQUIRES => { 'ExtUtils::MakeMaker' => 0, }, BUILD_REQUIRES => { 'Test::More' => '1.001014', 'Test::Base' => 0, }, PREREQ_PM => { 'UNIVERSAL::require' => 0, 'Class::Accessor::Fast' => 0, 'Class::Data::Inheritable' => 0, 'Tie::IxHash' => 0, 'List::MoreUtils' => 0, 'HTML::Entities' => 0, 'Path::Tiny' => 0, }, dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'Text-Trac-*' }, (eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (META_MERGE => { 'meta-spec' => { version => 2 }, resources => { repository => { type => 'git', url => 'https://github.com/manwar/Text-Trac.git', web => 'https://github.com/manwar/Text-Trac', }, }}) : () ), ); Text-Trac-0.24/.shipit0000644000175000017500000000026713401765156014124 0ustar manwarmanwarsteps = CommitMessageWrap, FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist, UploadCPAN svk.tagpattern = rel-%v commit_message.format = lang/perl/Punc: %msgText-Trac-0.24/.perltidyrc0000644000175000017500000000015313401767602014775 0ustar manwarmanwar-pbp -nst -et=4 --maximum-line-length=120 # Break a line after opening/before closing token. -vt=0 -vtc=0 Text-Trac-0.24/META.json0000664000175000017500000000266713403124170014237 0ustar manwarmanwar{ "abstract" : "Perl extension for formatting text with Trac Wiki Style.", "author" : [ "Gosuke Miyashita, " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "Text-Trac", "no_index" : { "directory" : [ "t", "inc" ] }, "prereqs" : { "build" : { "requires" : { "Test::Base" : "0", "Test::More" : "1.001014" } }, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "requires" : { "Class::Accessor::Fast" : "0", "Class::Data::Inheritable" : "0", "HTML::Entities" : "0", "List::MoreUtils" : "0", "Path::Tiny" : "0", "Tie::IxHash" : "0", "UNIVERSAL::require" : "0", "perl" : "5.006" } } }, "release_status" : "stable", "resources" : { "repository" : { "type" : "git", "url" : "https://github.com/manwar/Text-Trac.git", "web" : "https://github.com/manwar/Text-Trac" } }, "version" : "0.24", "x_serialization_backend" : "JSON::PP version 2.27400" } Text-Trac-0.24/README.md0000644000175000017500000000106513401765156014077 0ustar manwarmanwar###Status [![Build Status](https://travis-ci.org/szabgab/Text-Trac.png)](https://travis-ci.org/szabgab/Text-Trac) Text-Trac INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Text::Trac COPYRIGHT AND LICENCE Copyright (C) 2006 Gosuke Miyashita This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Text-Trac-0.24/.perlcriticrc0000644000175000017500000000153313401765156015306 0ustar manwarmanwar# please alpha sort config items as you add them severity = 5 verbose = 11 theme = core [TestingAndDebugging::RequireUseStrict] equivalent_modules = Moo Dancer Dancer2 [TestingAndDebugging::RequireUseWarnings] severity = 5 equivalent_modules = Moo Dancer Dancer2 #[-ControlStructures::ProhibitPostfixControls] #[-Documentation::RequirePodLinksIncludeText] #[-Documentation::RequirePodSections] #[-Modules::RequireVersionVar] #[-RegularExpressions::RequireDotMatchAnything] #[-RegularExpressions::RequireExtendedFormatting] #[-RegularExpressions::RequireLineBoundaryMatching] #[-Variables::ProhibitPunctuationVars] # [CodeLayout::RequireTrailingCommas] severity = 5 #[ValuesAndExpressions::ProhibitEmptyQuotes] #severity = 5 [ValuesAndExpressions::ProhibitInterpolationOfLiterals] severity = 5 #[ValuesAndExpressions::ProhibitNoisyQuotes] #severity = 5 Text-Trac-0.24/MANIFEST0000644000175000017500000001005413403124170013732 0ustar manwarmanwar.perlcriticrc .perltidyrc .shipit .tidyallrc .travis.yml Changes lib/Text/Trac.pm lib/Text/Trac/BlockNode.pm lib/Text/Trac/Blockquote.pm lib/Text/Trac/Context.pm lib/Text/Trac/Dl.pm lib/Text/Trac/Heading.pm lib/Text/Trac/Hr.pm lib/Text/Trac/InlineNode.pm lib/Text/Trac/LinkResolver.pm lib/Text/Trac/LinkResolver/Attachment.pm lib/Text/Trac/LinkResolver/Changeset.pm lib/Text/Trac/LinkResolver/Comment.pm lib/Text/Trac/LinkResolver/Log.pm lib/Text/Trac/LinkResolver/Milestone.pm lib/Text/Trac/LinkResolver/Report.pm lib/Text/Trac/LinkResolver/Source.pm lib/Text/Trac/LinkResolver/Ticket.pm lib/Text/Trac/LinkResolver/Wiki.pm lib/Text/Trac/Macro.pm lib/Text/Trac/Macro/HelloWorld.pm lib/Text/Trac/Macro/Timestamp.pm lib/Text/Trac/Node.pm lib/Text/Trac/Ol.pm lib/Text/Trac/P.pm lib/Text/Trac/Pre.pm lib/Text/Trac/Table.pm lib/Text/Trac/Text.pm lib/Text/Trac/Ul.pm Makefile.PL MANIFEST This list of files MANIFEST.SKIP README.md script/trac2html t/00-load.t t/01-text-trac.t t/02-macros.t t/03-trac-links.t t/04-list.t t/05-disable_links.t t/06-enable_links.t t/07-custom_url.t t/08-regression.t t/10-script.t t/11-script-noclass.t t/12-script-noclass-noid.t t/13-script-noclass-noid-nospan.t t/corpus/padre_development.trac t/corpus/padre_download_activeperl.trac t/corpus/padre_download_cpan.trac t/corpus/padre_download_debian.trac t/corpus/padre_download_fedora.trac t/corpus/padre_download_freebsd.trac t/corpus/padre_download_mandriva.trac t/corpus/padre_download_netbsd.trac t/corpus/padre_download_opensuse.trac t/corpus/padre_download_osx.trac t/corpus/padre_download_perlbrew.trac t/corpus/padre_download_repository.trac t/corpus/padre_download_ubuntu.trac t/corpus/padre_download_windows.trac t/corpus/padre_faq.trac t/corpus/padre_features.trac t/corpus/padre_translationstyle.trac t/corpus/padre_wikistart.trac t/corpus/padre_wxformbuilder.trac t/corpus/padre_wxwidgets.trac t/expected/padre_development.html t/expected/padre_development_noclass.html t/expected/padre_development_noclass_noid_nospan.html t/expected/padre_download_activeperl_noclass_noid_nospan.html t/expected/padre_download_cpan_noclass_noid_nospan.html t/expected/padre_download_debian.html t/expected/padre_download_debian_noclass.html t/expected/padre_download_debian_noclass_noid_nospan.html t/expected/padre_download_fedora.html t/expected/padre_download_fedora_noclass.html t/expected/padre_download_fedora_noclass_noid_nospan.html t/expected/padre_download_freebsd.html t/expected/padre_download_freebsd_noclass.html t/expected/padre_download_freebsd_noclass_noid.html t/expected/padre_download_freebsd_noclass_noid_nospan.html t/expected/padre_download_mandriva.html t/expected/padre_download_mandriva_noclass.html t/expected/padre_download_mandriva_noclass_noid_nospan.html t/expected/padre_download_netbsd.html t/expected/padre_download_netbsd_noclass.html t/expected/padre_download_netbsd_noclass_noid_nospan.html t/expected/padre_download_opensuse.html t/expected/padre_download_opensuse_noclass.html t/expected/padre_download_opensuse_noclass_noid_nospan.html t/expected/padre_download_osx_noclass_noid_nospan.html t/expected/padre_download_perlbrew_noclass_noid_nospan.html t/expected/padre_download_repository_noclass_noid_nospan.html t/expected/padre_download_ubuntu.html t/expected/padre_download_ubuntu_noclass.html t/expected/padre_download_ubuntu_noclass_noid_nospan.html t/expected/padre_download_windows_noclass_noid_nospan.html t/expected/padre_faq_noclass_noid_nospan.html t/expected/padre_features.html t/expected/padre_features_noclass.html t/expected/padre_features_noclass_noid.html t/expected/padre_features_noclass_noid_nospan.html t/expected/padre_translationstyle_noclass_noid_nospan.html t/expected/padre_wikistart_noclass_noid_nospan.html t/expected/padre_wxformbuilder_noclass_noid_nospan.html t/expected/padre_wxwidgets_noclass_noid_nospan.html t/TestTextTrac.pm xt/95-tidyall.t xt/96-perl-critic.t xt/boilerplate.t xt/pod-coverage.t xt/pod.t xt/version.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) Text-Trac-0.24/META.yml0000664000175000017500000000151113403124170014052 0ustar manwarmanwar--- abstract: 'Perl extension for formatting text with Trac Wiki Style.' author: - 'Gosuke Miyashita, ' build_requires: Test::Base: '0' Test::More: '1.001014' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Text-Trac no_index: directory: - t - inc requires: Class::Accessor::Fast: '0' Class::Data::Inheritable: '0' HTML::Entities: '0' List::MoreUtils: '0' Path::Tiny: '0' Tie::IxHash: '0' UNIVERSAL::require: '0' perl: '5.006' resources: repository: https://github.com/manwar/Text-Trac.git version: '0.24' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' Text-Trac-0.24/MANIFEST.SKIP0000644000175000017500000000113613402460002014474 0ustar manwarmanwar# Avoid version control files. \bRCS\b \bCVS\b ,v$ \B\.svn\b \B\.git\b \B\.cvsignore$ # Avoid Makemaker generated and utility files. \bMakefile$ \bblib \bMakeMaker-\d \bpm_to_blib$ \bblibdirs$ # Avoid Module::Build generated and utility files. \bBuild$ \bBuild.bat$ \b_build # Avoid Devel::Cover generated files \bcover_db # Avoid temp and backup files. ~$ \.tmp$ \.old$ \.bak$ \#$ \.# \.rej$ # Avoid OS-specific files/dirs # Mac OSX metadata \B\.DS_Store # Mac OSX SMB mount metadata files \B\._ # Avoid archives of this distribution \bText-Trac-[\d\.\_]+ .gitignore .*\.swp MYMETA.* .tidyall.d Text-Trac-0.24/Changes0000644000175000017500000000562013403123572014104 0ustar manwarmanwarRevision history for Text::Trac 0.24 2018.12.09 MANWAR Removed +x from unit test scripts. 0.23 2018.12.08 MANWAR Now using ExtUtils::MakeMaker for packaging. 0.22 2018.12.07 MANWAR Moved author unit tests to subfolder xt/. 0.21 2018.12.06 MANWAR Fixed warning 'Use of uninitialized value $target ..' as reported by CPANTESTERS. https://www.cpantesters.org/cpan/report/f8fc5086-f8e1-11e8-b905-8feee4406f56 0.20 2018.12.05 MANWAR Added minimum perl version. 0.19 2018.10.20 MANWAR Fixed SEE ALSO broken links Tidied up Changes file Updated link to GitHub repo. Add --span flag Add --id flag to include ids in the html files. Default to noid. Add --force flag to the command line script to overwrite exisiting file. Default of script/trac2html is to exclude class="" 0.18 2015.04.05 Remove auto_include from Makefile.PL to limit inc/ to the Module::Install code. 0.17 2015.04.05 Add lots of full html tests. Add command line script script/trac2html Enable excluding class="" from the HTML run Perl::Tidy run Perl::Critic Escape { in regex RT #100712 0.16 2014.09.13 New maintainer. Link to Github. License in META files. 0.15 Sun Mar 8 Fix for RT#43894.Updated Module::Install in this module. Thanks for ANDK! 0.14 Mon Feb 23 Fix for RT#43337.Image URLs are not converted into embedded images anymore.Thanks for cmcosse! 0.13 Tue Jul 29 Revert inline_parsers in Text::Trac::BlockNode. Thanks for yappo! 0.12 Tue Apr 15 Support comment link. See http://rt.cpan.org/Ticket/Display.html?id=34805. Thanks for CLSUNG! 0.11 Thu Mar 6 Fix for http://rt.cpan.org/Ticket/Display.html?id=33670#txn-430322 Thanks for David Wheeler! 0.10 Fri Feb 29 Fix for http://rt.cpan.org/Ticket/Display.html?id=33670 Thanks for David Wheeler! 0.09 Thu Feb 28 Fix for http://rt.cpan.org/Ticket/Display.html?id=33575 and http://rt.cpan.org/Ticket/Display.html?id=33576. Thanks for David Wheeler! 0.08 Tue Nov 20 Apply a patch of https://rt.cpan.org/Ticket/Display.html?id=30816. Thanks to Kazuyoshi KATO! 0.07 Sun Mar 25 Tiny fix for Ul.pm and Ol.pm 0.06 Wed Nov 9 Fix list handling(Ul.pm and Ol.pm). Refactor inline node parsers wholly. Add supports for TracLinks and WikiMacros. 0.05 Fri Oct 27 Using Test::Base instead of Test::More in 01-text-trac.t. Fix the bug reported on rt.cpan.org ticket #21431. http://rt.cpan.org/Ticket/Display.html?id=21431 Thanks to Andrew Sterling Hanenkamp and Graham TerMarsch. 0.04 Wed Jul 19 Fix autolink handling, again. 0.03 Wed Jul 19 Fix autolink handling. 0.02 Tue Jun 20 Fix the link pattern of AutoLinkHttp.pm. 0.01 Tue Jun 20 First version, released on an unsuspecting world. Text-Trac-0.24/.tidyallrc0000644000175000017500000000026413401765156014610 0ustar manwarmanwar[PerlTidy] select = {bin,lib,t}/**/*.{pl,pm,t,psgi} select = etc/munin/* select = app.psgi select = Makefile.PL argv = --profile=$ROOT/.perltidyrc [SortLines] select = .gitignore Text-Trac-0.24/script/0000755000175000017500000000000013403124170014105 5ustar manwarmanwarText-Trac-0.24/script/trac2html0000644000175000017500000000243213401765156015746 0ustar manwarmanwar#!/usr/bin/env perl use strict; use warnings; use Text::Trac (); use Getopt::Long qw(GetOptions); use Path::Tiny qw(path); my ($infile, $outfile); my $url = ''; my $class; my $span; my $id; my $force; GetOptions( 'infile=s' => \$infile, 'outfile=s' => \$outfile, 'url=s' => \$url, 'class' => \$class, 'span' => \$span, 'id' => \$id, 'force' => \$force, ) or usage(); usage() if not $infile or not $outfile; die "Infile '$infile' does not exist.\n" if not -e $infile; die "Outfile '$outfile' already exists.\n" if -e $outfile and not $force; main(); exit; sub main { my $parser = Text::Trac->new( trac_url => $url, class => $class, span => $span, id => $id, # disable_links => [ qw( changeset ticket ) ], ); $parser->parse( path($infile)->slurp_utf8 ); path($outfile)->spew_utf8( $parser->html ); } sub usage { print <<"END_USAGE"; Usage: $0 --infile filename (File in Trac wiki format) --outfile filename (The html file to generate) --url http://... () --class Include class="" in the HTML tags. --span Include --id Include id="" in the HTML tags. --force Overwrite exisiting html file. END_USAGE exit; } Text-Trac-0.24/xt/0000755000175000017500000000000013403124170013234 5ustar manwarmanwarText-Trac-0.24/xt/96-perl-critic.t0000644000175000017500000000116213401765156016107 0ustar manwarmanwaruse strict; use warnings; use Test::More; ## no critic #use Perl::Critic; eval 'use Test::Perl::Critic 1.02'; plan skip_all => 'Test::Perl::Critic 1.02 required' if $@; # NOTE: New files will be tested automatically. # FIXME: Things should be removed (not added) to this list. # Temporarily skip any files that existed before adding the tests. # Eventually these should all be removed (once the files are cleaned up). my %skip = map { ( $_ => 1 ) } qw( ); my @files = grep { !$skip{$_} } ( Perl::Critic::Utils::all_perl_files(qw( bin lib t )) ); foreach my $file (@files) { critic_ok( $file, $file ); } done_testing(); Text-Trac-0.24/xt/pod-coverage.t0000644000175000017500000000037713401765156016020 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::More; ## no critic eval 'use Test::Pod::Coverage 1.04 tests=>1'; plan skip_all => 'Test::Pod::Coverage 1.04 required for testing POD coverage' if $@; pod_coverage_ok( 'Text::Trac', 'Text::Trac is covered' ); Text-Trac-0.24/xt/boilerplate.t0000644000175000017500000000171213401765156015741 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::More tests => 2; sub not_in_file_ok { my ( $filename, %regex ) = @_; open my $fh, '<', $filename or die "couldn't open $filename for reading: $!"; my %violated; while ( my $line = <$fh> ) { while ( my ( $desc, $regex ) = each %regex ) { if ( $line =~ $regex ) { push @{ $violated{$desc} ||= [] }, $.; } } } if (%violated) { fail("$filename contains boilerplate text"); diag "$_ appears on lines @{$violated{$_}}" for keys %violated; } else { pass("$filename contains no boilerplate text"); } } not_in_file_ok( Changes => 'placeholder date/time' => qr(Date/time) ); sub module_boilerplate_ok { my ($module) = @_; not_in_file_ok( $module => 'the great new $MODULENAME' => qr/ - The great new /, 'boilerplate description' => qr/Quick summary of what the module/, 'stub function definition' => qr/function[12]/, ); } module_boilerplate_ok('lib/Text/Trac.pm'); Text-Trac-0.24/xt/95-tidyall.t0000644000175000017500000000031013401765156015325 0ustar manwarmanwaruse strict; use warnings; use Test::More; ## no critic eval 'use Test::Code::TidyAll 0.20'; plan skip_all => "Test::Code::TidyAll 0.20 required to check if the code is clean." if $@; tidyall_ok(); Text-Trac-0.24/xt/version.t0000644000175000017500000000047313401765156015127 0ustar manwarmanwaruse strict; use warnings; use Test::More; ## no critic eval q{use Test::Version 1.003001 qw( version_all_ok ), { is_strict => 0, has_version => 1, }; }; plan skip_all => 'Test::Version 1.003001 required for testing version numbers' if $@; version_all_ok(); done_testing; Text-Trac-0.24/xt/pod.t0000644000175000017500000000026313401765156014221 0ustar manwarmanwar#!perl -T use strict; use warnings; use Test::More; ## no critic eval 'use Test::Pod 1.14'; plan skip_all => 'Test::Pod 1.14 required for testing POD' if $@; all_pod_files_ok();