[Padre-dev] [Padre-commit] rev 786 - in trunk/lib/Padre/Plugin: . Development
Fayland Lam
fayland at gmail.com
Fri Nov 7 00:59:47 PST 2008
you are doing something I did before. :)
http://search.cpan.org/src/FAYLAND/Padre-Plugin-PluginHelper-0.05/lib/Padre/Plugin/PluginHelper.pm
svn at perlide.org wrote:
> Author: szabgab
> Date: 2008-11-07 00:53:30 -0800 (Fri, 07 Nov 2008)
> New Revision: 786
>
> Added:
> trunk/lib/Padre/Plugin/Development/
> trunk/lib/Padre/Plugin/Development/Tools.pm
> Log:
> add Development::Tools plugin
>
>
> Added: trunk/lib/Padre/Plugin/Development/Tools.pm
> ===================================================================
> --- trunk/lib/Padre/Plugin/Development/Tools.pm (rev 0)
> +++ trunk/lib/Padre/Plugin/Development/Tools.pm 2008-11-07 08:53:30 UTC (rev 786)
> @@ -0,0 +1,100 @@
> +package Padre::Plugin::Development::Tools;
> +use strict;
> +use warnings;
> +
> +
> +our $VERSION = '0.15';
> +
> +use Padre::Wx ();
> +
> +use Data::Dumper ();
> +
> +=head1 NAME
> +
> +Padre::Plugin::Development::Tools - tools used by the Padre developers
> +
> +=cut
> +
> +# TODO fix this
> +# we need to create anonymous subs in order to makes
> +# sure reloading the module changes the call as well
> +# A better to replace the whole Plugins/ menu when we
> +# reload plugins.
> +my @menu = (
> + ['About', sub {about(@_)} ],
> + ['Doc stats', sub {doc_stats(@_)} ],
> + ['Show %INC', sub {show_inc(@_)} ],
> + ['Reload plugins', sub {reload_plugins(@_)} ],
> +);
> +sub menu {
> + my ($self) = @_;
> + return @menu;
> +}
> +
> +sub about {
> + my ($main) = @_;
> +
> + my $about = Wx::AboutDialogInfo->new;
> + $about->SetName("Padre::Plugin::Development::Tools");
> + $about->SetDescription(
> + "A set of unrelated tools used by the Padre developers\n" .
> + "Some of these might end up in core Padre or in oter plugins"
> + );
> + #$about->SetVersion($Padre::VERSION);
> + Wx::AboutBox( $about );
> + return;
> +}
> +
> +sub show_inc {
> + my ($main) = @_;
> +
> + Wx::MessageBox( Data::Dumper::Dumper(\%INC), '%INC', Wx::wxOK|Wx::wxCENTRE, $main );
> +
> +}
> +
> +sub doc_stats {
> + my ($main) = @_;
> +
> + my $doc = Padre::Documents->current;
> +
> + if (not $doc) {
> + Wx::MessageBox( "No file is open", "Stats", Wx::wxOK|Wx::wxCENTRE, $main );
> + }
> + my $text = $doc->text_get;
> + my $str = sprintf("Number of characters in the current file: %s\n", length($text));
> + my $spaces = () = $text =~ /( )/g;
> + $str .= sprintf("Number of spaces: %s\n", $spaces);
> +
> + if (defined $doc->filename) {
> + $str .= sprintf("Filename: '%s'\n", $doc->filename);
> + } else {
> + $str .= "No filename\n";
> + }
> +
> + Wx::MessageBox( $str, "Stats", Wx::wxOK|Wx::wxCENTRE, $main );
> + return;
> +}
> +
> +sub reload_plugins {
> + my ($main) = @_;
> +
> + my $manager = Padre->ide->plugin_manager;
> + my $plugins = $manager->plugins;
> + %$plugins = ();
> +# foreach my $k (keys %INC) {
> +# if ($k =~ m{^Padre/Plugin/}) {
> +# print "$k\n";
> +# delete $INC{$k};
> +# }
> +# }
> + delete $INC{'Padre/Plugin/Development/Tools.pm'};
> + $manager->load_plugins;
> +
> + Wx::MessageBox( "done", "done", Wx::wxOK|Wx::wxCENTRE, $main );
> +
> + return;
> +}
> +
> +
> +
> +1;
>
> _______________________________________________
> Padre-commit mailing list
> Padre-commit at perlide.org
> http://mail.perlide.org/mailman/listinfo/padre-commit
>
>
--
Fayland Lam // http://www.fayland.org/
Foorum based on Catalyst // http://www.foorumbbs.com/
More information about the Padre-dev
mailing list