Padre
view release on metacpan or search on metacpan
context menu key or Shift+F10 as alternatives (DOLMEN)
- Removed the comment basis for Padre::Document subclassing (ADAMK)
- Renaming of all methods involved in setting up an editor object (ADAMK)
- Removed the experimental Padre wizard API (AZAWAWI)
0.90 2011.08.16
- Return task instance from Padre::Role::Task::tast_request (BRAMBLE)
- Add 'Solarized Dark' theme contributed by Anton Ukolov ('sugar' on irc)
(BRAMBLE)
- Improved fast find text entry colours #1290 (BRAMBLE)
- Improved preferences colours for 'dark' themed desktops #1290 (BRAMBLE)
- Added feature_devel_endstats (disabled by default) which makes Padre
run scripts with -MDevel::EndStats=<feature_devel_endstats_options>
to show various statistics when your program terminates (AZAWAWI)
- Fixed "Open in File Browser" under Windows 7 (AZAWAWI)
- The functions and syntax check windows needs to be cleared when the
document does not provide any functions or syntax checker tasks (AZAWAWI)
- The syntax checker is now more accurate when typing faster (AZAWAWI)
- Added a change dwell mechanism to the editor panels, which gives any tools
based on editor content an opportunity to auto-refresh (ADAMK)
- Added dwell-refresh to the function list, so new functions are added as
- File Reload All/Some was not working as expected (AZAWAWI)
- Add a xt test for open blocker tickets (SEWI)
- Underline the syntax warning/error line with an orange or red squiggle
indicator (AZAWAWI)
- TRACE() calls now use epoch microsecond timestamps instead of localtime
to make subsecond temporal relationships more obvious (ADAMK)
- When the syntax checker is rescanning after a document change, clear the
window but do not change the margin (ADAMK)
- Add _ shortcuts in menus. Still to do. Sorry to translators (DOLMEN)
- Add ... to menus leading to dialogs. Sorry to translators (DOLMEN)
- Fix blurry app icon on Ubuntu with Unity desktop (DOLMEN)
- Fixed failing thread test (SEWI)
- Added feature_devel_traceuse (disabled by default) which makes Padre
run scripts with -d:TraceUse=<feature_devel_traceuse_options>
to show the modules that your program loads recursively (AZAWAWI)
- Checked menu actions may be called form other events but the menu
event (SEWI)
- Stop ignoring syntax checking errors without an actual type (AZAWAWI)
- The editor change dwell time (the time between when you stop typing and
when tools like function list and syntax update) is now configurable as
editor_dwell in Advanced Preferences (ADAMK)
- Added an option for traceing Padre subroutine calls to the
developer plugin (SEWI)
- Uses correct make from Config.pm for the run menu item -> Build and
run tests (KTHAKORE)
- Speedup and less false-shows for autocomplete (SEWI)
- Speedup while changing tabs (use the correct project dir) (SEWI)
- Simple refocus on document after command run (KTHAKORE)
- Fixed ticket #822: main window could be off screen on start (BLAKEW)
- padre-client allows you to use Padre for commit messages and other
synchronous edit events (CORION)
- WIN32, Converted the --desktop registry code to Win32::TieRegistry
and removed hardcoded strawberry paths (AZAWAWI)
- WIN32, padre.exe will run with the same UAC privileges as same as
the invoker (AZAWAWI)
- Disable debugger menu items when there is no document (AZAWAWI)
- Fixed a Padre debugger crash when unsaved document is debugged (AZAWAWI)
- Fixed Padre no-document crash with Find Next/Find Previous functionality
(AZAWAWI)
- Make sure that windows context key shows the refactor menu
items in the right-click pop-up menu (AZAWAWI)
- Used Module::CoreList::is_deprecated to display deprecated CORE modules
user's configuration.
- Tuned lock-release refresh execution to remove low-level refresh
methods that are also contained in higher level refresh methods.
- Removed a superfluous AUI Update from the refresh method (ADAMK)
- Delay loading some additional GUI classes and objects until they
definitely needed (ADAMK)
- Suppress warnings that occur during plugin loading (ADAMK)
- 'Simple' possible fix for #331 to update the tabs when 'save all' is
run in Padre. (PLAVEN)
- Fixed #819: Don't crash on missing project dir (SEWI)
- Upgrading --desktop option from VBScript to a new Win32::Shortcut-based
Padre::Desktop. Desktop link creation works on Vista and newer
operating systems again (ADAMK)
- Tuned menubar refresh to only fire if we change document mimetype,
which saves a ton of CPU and seems to reduce flicker (ADAMK)
0.54 2010.01.07
- Added experimental support for clickable filenames in Output panel.
Currently only matches: <error> at <file> line 5. (PDONELAN)
- If all files are closed, the function list would ->Hide itself
permanently and never come back. Resolved (ADAMK)
- Smart highlighting works now in realtime as you select text (AZAWAWI)
- Fixed ticket #611: File | Open does not support UNC path (AZAWAWI)
- Save session now suggest the name of the last opened session for saving (SEWI)
- Fixed ticket #627: Suggestion: Make it possible to copy 'Syntax Check'
messages (AZAWAWI)
- Require version 0.20 of Wx::Perl::ProcessStream to fix #628 (AZAWAWI, SZABGAB)
- Fixed ticket #493: splash image license not suitable for Debian (AZAWAWI)
- Fixed t/86-service.t to work again on win32 (AZAWAWI)
- Fixed ticket #314: Padre broken on MS Vista when starting with no file
to be opened (AZAWAWI)
- Added a 'padre --desktop' option that improves Padre-Windows integration.
This creates a desktop shortcut and an "Edit with Padre" in the shell
context menu (AZAWAWI)
- Made beginner error checks report the line where an error was located (SEWI)
- Fixed: Syntax checker now only shows errors from current file (SEWI)
- padre --version displays a MessageBox under wperl.exe (AZAWAWI)
- Option to continue on beginner errors (SEWI)
- Made title bar configurable (SEWI)
- Autocomplete on every char (enable it in the preferences) (SEWI)
- Add logfile so the developer debugger of padre will print there
and not on STDERR. (SZABGAB)
- Show file size on disk in statistics (SEWI)
- Under Linux and BSD, 'padre --desktop' adds a Padre.desktop inside
/usr/share/applications (AZAWAWI)
- When saving a module for the first time, Padre will attempt to guess the
name of the file so you don't need to type it (ADAMK)
- Added "Dump Expression" to Developer Plugin to evaluate and dump a single
expression within the Padre context (ADAMK)
- Perl interpreter for running scripts is now configurable (SEWI)
- Added MIME type count to PopularityContest, but it's still not sending
anything (SEWI)
- Added a runnable-flag to Padre::File and it's current modules (SEWI)
- Syntax check now doesn't slow down typing (SEWI)
share/locale/nl-nl.po
share/locale/no.po
share/locale/pl.po
share/locale/pt-br.po
share/locale/ru.po
share/locale/tr.po
share/locale/zh-cn.po
share/locale/zh-tw.po
share/padre-splash-ccnc.png
share/padre-splash.png
share/padre.desktop
share/padre.desktop.README
share/ppm/README.txt
share/README.txt
share/templates/perl5/01_compile_t.tt
share/templates/perl5/module_install_dsl_pl.tt
share/templates/perl5/module_install_pl.tt
share/templates/perl5/module_pm.tt
share/templates/perl5/script_pl.tt
share/templates/perl5/test_t.tt
share/templates/perl6/script_p6.tt
share/themes/default.txt
lib/Padre/Desktop.pm view on Meta::CPAN
package Padre::Desktop;
=pod
=head1 NAME
Padre::Desktop - Support library for Padre desktop integration
=head1 DESCRIPTION
This module provides a collection of functionality related to operating
system integration. It is intended to serve as a repository for code
relating to file extensions, desktop shortcuts, and so on.
This module is intended to be loadable without having to load the
main Padre code tree.
The workings of this module are currently undocumented.
=cut
use 5.008005;
use strict;
lib/Padre/Desktop.pm view on Meta::CPAN
#exit if we could not find Padre's executable in PATH
if ($padre_executable) {
require File::Basename;
my $padre_exe_dir = File::Basename::dirname($padre_executable);
return ( $padre_executable, $padre_exe_dir );
} else {
return;
}
}
sub desktop {
if (Padre::Constant::WIN32) {
#TODO Support Vista/Win7 UAC (User Account Control)
# Find Padre's executable
my ( $padre_exe, $padre_exe_dir ) = find_padre_location();
return 0 unless $padre_exe;
# Write to the registry to get the "Edit with Padre" in the
# right-click-shell-context menu
lib/Padre/Desktop.pm view on Meta::CPAN
TiedRef => \$Registry, Delimiter => '/', ArrayValues => 1,
);
$Registry->Delimiter('/');
$Registry->{'HKEY_CLASSES_ROOT/*/shell/'} = {
'Edit with Padre/' => {
'Command/' => { '' => 'c:\\strawberry\\perl\\bin\\padre.exe "%1"' },
}
}
or return 0;
# create Padre's desktop shortcut
require File::HomeDir;
my $padre_lnk = File::Spec->catfile(
File::HomeDir->my_desktop,
'Padre.lnk',
);
return 1 if -f $padre_lnk;
# NOTE: Use Padre::Perl to make this distribution agnostic
require Win32::Shortcut;
my $link = Win32::Shortcut->new;
$link->{Description} = 'Padre - The Perl IDE';
$link->{Path} = $padre_exe;
$link->{WorkingDirectory} = $padre_exe_dir;
$link->Save($padre_lnk);
$link->Close;
return 1;
}
if (Padre::Constant::UNIX) {
# create Padre's desktop shortcut
require File::HomeDir;
my $padre_desktop = File::Spec->catfile(
File::HomeDir->my_desktop,
'padre.desktop',
);
return 1 if -f $padre_desktop;
require Padre::Util;
my $icon_file = Padre::Util::sharedir('/icons/padre/64x64/logo.png');
open my $FH, '>', $padre_desktop or die "Could not open $padre_desktop for writing\n";
print $FH <<END;
[Desktop Entry]
Encoding=UTF-8
Name=Padre
Comment=The Perl IDE
Exec=padre
Icon=$icon_file
Categories=Application;Development;Perl;IDE
Version=1.0
Type=Application
Terminal=0
END
close $FH;
chmod 0755, $padre_desktop; # make executable
return 1;
}
return 0;
}
sub quicklaunch {
if (Padre::Constant::WIN32) {
lib/Padre/Project.pm view on Meta::CPAN
return 0;
}
# Windows thumbnailing, instead of having sensibly
# centralised storage of thumbnails, likes to put a
# file in every single directory.
if ( $_->{name} eq 'Thumbs.db' ) {
return 0;
}
# Likewise, desktop.ini files are stupid files used
# by windows to make a folder behave weirdly.
# Ignore them too.
if ( $_->{name} eq 'desktop.ini' ) {
return 0;
}
}
return 1;
};
}
# Alternate form
sub ignore_skip {
lib/Padre/Project.pm view on Meta::CPAN
# with a dollar sign as "hidden". This is mainly relevant if
# we are opening some project across a UNC path on more recent
# versions of Windows.
push @$rule, "(?:^|\\/)\\\$";
push @$rule, "\\\$\$";
# Windows thumbnailing, instead of having sensibly centralised
# storage of thumbnails, likes to put a file in every single directory.
push @$rule, "(?:^|\\/)Thumbs.db\$";
# Likewise, desktop.ini files are stupid files used by windows
# to make a folder behave weirdly. Ignore them too.
push @$rule, "(?:^|\\/)desktop.ini\$";
}
return $rule;
}
sub name {
my $self = shift;
my $name = ( reverse( File::Spec->splitdir( $self->root ) ) )[0];
if ( !defined $name or $name eq '' ) { # Fallback
lib/Padre/Util/FileBrowser.pm view on Meta::CPAN
my ( $self, $filename ) = @_;
my $error;
if ( defined $ENV{KDE_FULL_SESSION} ) {
# In KDE, execute: kfmclient exec $filename
$error = $self->_execute( 'kfmclient', "exec", $filename );
} elsif ( defined $ENV{GNOME_DESKTOP_SESSION_ID} ) {
# In Gnome, execute: nautilus --nodesktop --browser $filename
$error = $self->_execute( 'nautilus', "--no-desktop", "--browser", $filename );
} else {
$error = Wx::gettext("Could not find KDE or GNOME");
}
return $error;
}
1;
__END__
lib/Padre/Wx/Icon.pm view on Meta::CPAN
package Padre::Wx::Icon;
# It turns out that icon management needs to be more complex than just
# a few utility functions in Padre::Wx, and that it needs an entire
# library of its own.
# This library attempts to integrate padre with the freedesktop.org
# icon specifications using a highly limited and mostly
# wrong implementation of the algorithms they describe.
# http://standards.freedesktop.org/icon-naming-spec
# http://standards.freedesktop.org/icon-theme-spec
# Initially we only support the use of icons in directories bundled
# with Padre. Later, we'll probably be forced by distro-packagers and
# users to support integration with system icon themes.
use 5.008;
use strict;
use warnings;
use File::Spec ();
use Params::Util ();
script/padre view on Meta::CPAN
# Avoid loading Getopt::Long entirely if we can,
# sneakily saving a meg or so of RAM.
require Getopt::Long;
Getopt::Long::GetOptions(
'help|usage' => \$USAGE,
'version' => \$SHOWVERSION,
'home=s' => \$HOME,
'reset' => \$RESET,
'session=s' => \$SESSION,
'desktop' => \$DESKTOP,
'actionqueue=s' => \$ACTIONS,
'locale=s' => \$LOCALE,
# Keep this sekrit for now --ADAMK
'preload' => \$PRELOAD,
) or $USAGE = 1;
}
script/padre view on Meta::CPAN
# Padre command line usage
if ($USAGE) {
print <<"END_USAGE";
Usage: $0 [FILENAMES]
--help Shows this help message
--home=dir Forces Padre "home" directory to a specific location
--reset Flush entire local config directory and reset to defaults
--session=name Open given session during Padre startup
--version Prints Padre version and quits
--desktop Integrate Padre with your desktop
--actionqueue=list Run a list of comma-separated actions after Padre startup
--locale=name Locale name to use
END_USAGE
exit(1);
}
# Lock in the home and constants, which are needed for everything else
local $ENV{PADRE_HOME} = defined($HOME) ? $HOME : $ENV{PADRE_HOME};
require Padre::Constant;
script/padre view on Meta::CPAN
# Destroy and reinitialise our config directory
if ($RESET) {
require File::Remove;
File::Remove::remove( \1, Padre::Constant::CONFIG_DIR() );
Padre::Constant::init();
}
if ($DESKTOP) {
require Padre::Desktop;
unless ( Padre::Desktop::desktop() ) {
error("--desktop not implemented for $^O");
}
exit(1);
}
# local $ENV{PADRE_PAR_PATH} = $ENV{PAR_TEMP} || '';
# If we have an action queue then we are running for automation reasons.
# Avoid the startup logic and continue to the main startup.
unless ( defined $ACTIONS ) {
share/padre.desktop.README view on Meta::CPAN
Change the hardcoded paths in padre.desktop to your corresponding installation. This will be automated later.
( run in 1.198 second using v1.01-cache-2.11-cpan-299005ec8e3 )