Changes for version 0.88
- Thread Slave Mastering now works for Task 2.0. This removes thread spawn foreground blocking, reducing per-thread costs by at least 10meg, and can reduce total memory overhead by 50+meg (ADAMK)
- The directory tree supports relocale correctly (ADAMK)
- The notebook supports relocale correctly for "Unsaved X" files (ADAMK)
- Catch a crash (#1268 workaround) (SEWI)
- "Run -> Run this test" now use -l as suggested by BOWTIE (SZABGAB)
- Header files (.h) are now recognized as a C document (AZAWAWI)
- Updated wxWidgets documentation links to 2.8.12 in Padre developer tools internal plugin (AZAWAWI)
- Updated generated Padre::Wx::FBP::* modules to FBP::Perl 0.59, which will hopefully fix Layout/Fit logic on Mac (ADAMK)
- Padre::DB::Migrate now has a method-based timeline that is even smaller again than the class-based timeline that replaced the script-based timeline, removing the unsightly Padre::DB::Patch123 modules (ADAMK)
- Turn off Win32::SetChildShowWindow so that ordinary system() calls won't generate short-lived command line windows (ADAMK)
- Removed Module::Starter integration, it generates evil distros (ADAMK)
- Added write/PUT support to Padre::File::HTTP (SEWI)
- Fix #1244: Refresh recent open files list on close (SEWI)
- #105: Backup unsaved files to disk (SEWI)
- While closing all files during shutdown, don't spawn a background task to update the recent files list (ADAMK)
- Perl Projects now ignore Makefile.old files (ADAMK)
- Upgraded the Insert Special Value dialog to wxFormBuilder (ADAMK)
- Upgraded the Insert Snippet dialog to wxFormBuilder (ADAMK)
- Removing the deprecated Padre::Wx::Dialog now that all dialogs have been ported away from it to wxFormBuilder (ADAMK)
- Fix #1099: Ctrl-Shift-T to get the last closed tab (ZENOG, AZAWAWI)
- Scintilla word characters are now set up per document type (ADAMK)
- Removed the regex option in fast find as it doesn't make much sense to incrementally fast type a regexp (ADAMK)
- Searches done in fast find are now remembered by Padre so they can be repeated by F3 with no find dialogs open (ADAMK)
- Stop Mac OSX crashes on save due to tailing pipe in FileDialog (TOME)
- Highlight Perl keywords using Scintilla (AZAWAWI)
- Optional feature configuration settings are now compiled into the new dedicated namespace Padre::Feature so feature code can be compiled out entirely rather than just being skipped (ADAMK)
- The Function List now recognises *function = sub { } in Perl code (ADAMK)
- The Function List will interleave private methods with public ones when set to "Alphaetical" sort (ADAMK)
- Background worker threads that receive a 'cancel' message while they are not running a task will no longer silently exit their worker loop, which fixes the massive thread leak we've had since Task 2.0 landed! (ADAMK)
- Properly enable Perl 6 Wx::Scintilla support (AZAWAWI)
- Properly handle File/New/Copy of current file when there is no current document (AZAWAWI)
- Require open editor for File/New/Copy menu option (SEWI)
- Handle Padre crash when a triple right click is performed on the project pane's empty space (NILSONSFJ, AZAWAWI)
- Fix #1176: Preferences 2.0 screen is too big (BOWTIE, AZAWAWI)
- Fix #1231: Add scroll bar to xterm (BOWTIE, AZAWAWI)
- Remove Win32::API dependency on win32 by introducing built-in Padre::Util::Win32 XS wrapper (MARKD)
- Partial fix #913: almost no syntax highlighting for C/C++ code; also fix for C#, Java and JavaScript (ZENOG)
- Save changed preferences (instead of throw changes away) when Advanced is clicked in the Preferenced dialog. (NXADM)
- Added LICENSE file to fix #1224 (NXADM)
- Fix #1243: Error message when plugin overrides document class/document class lost after plugin deactivation (ZENOG)
- Add out-of-the-box comment support for ADA, ASM, BibTeX, C, C++, C#, Eiffel, Java, LaTeX, Lua, Makefile, Matlab, Perl 6, PHP, Python, Ruby, shell script, SQL; introduce Padre::Document classes HashComment, PercentComment, DoubleDashComment, DoubleSlashComment, get rid of class Config (ZENOG)
- Fix #1232: "modified" display ("*") is not updated with Wx::Scintilla (MARKD)
- Fix #1237: Wx::Scintilla does not always update line/column numbers in the status bar (MARKD)
- Fix #1242: Autoindent broken when using Wx::Scintilla (MARKD)
- Update 'About' dialog information once instead of twice at startup (AZAWAWI)
- Fix #1245: Info missing for Wx::Scintilla in Padre System About (AZAWAWI)
- Padre::Plugin::menu_plugins can now return a single Wx::MenuItem so that plugins are no longer forced to have a submenu (ADAMK)
- Padre::Project::Perl can now do basic intuition of the probable distribution name and headline module for a Perl project (ADAMK)
- Bump File::HomeDir dependency to 0.98 on Windows to pick up a fix for a bug that caused Padre to hang for several seconds periodically when the user's My Documents directory is on a UNC-addressed network share. UGH! (ADAMK)
- Abort directory browse tasks for UNC shares, as opendir() won't work on them and thus running the task would be pointless. The directory browser still won't work for UNC shares, but at least now it won't work faster (ADAMK)
- Fixed a race condition crash in the Win32-only AuiNotebook sizing workaround logic during global destruction (ADAMK)
- Save the window geometry on Maximize, Iconize or ShowFullScreen so that we retain the same geometry across a Padre restart while in any of the normal non-windowed states (ADAMK)
- Adding Padre::Config "locking" to Padre::Locker to enabled automatic write on scope exit in a way that prioritised correctly with the other lock types and shares a single database commit with any database locks (ADAMK)
- Tuned the locking implementation to reduce code complexity, reduce lock memory consumption, and make lock releasing slightly faster (ADAMK)
- Added Thumbs.db to the files ignored by default on Windows (ADAMK)
- The project manager now caches null projects correctly (ADAMK)
- The directory browser now caches null project tree data correctly (ADAMK)
- When reverting to the default root path, the directory browse now uses a null project rather than just a plain root path so that the default platform-specific ignore/skip rules are used the expected way (ADAMK)
- Perl projects now correctly ignore nytprof directories, not just nytprof.out files (ADAMK)
- Update session description. (BOWTIE)
- In project browser Right click on directories as well. (SZABGAB)
- Allow renaming file and directory in project browser. (SZABGAB)
- Update German translation (ZENOG)
- Stop creating automatic sessions. If no session is defined while auto-session-save is in effect use padre-last (SZABGAB)
- Fix View/Show Document As menu #1246 (SZABGAB)
- Eliminate crash caused by directory browser. #1248 (SZABGAB)
- Add Perl menu entry to deparse selected code using B::Deparse (SZABGAB)
- Added directory deletion to the file tree, although it doesn't use the file operation task, so it could be slow and block (ADAMK)
- Labels for directory tree menu commands are now localised to the prefered operating system terms, on Win32 at least to start with (ADAMK)
- Because the directory tree "Refresh" operation only actually works by refreshing the entire tree, move it to the top search box menu (ADAMK)
- Padre::DB::Migrate now has class-based migration scripts instead of file based migration scripts. This results in vastly inferior encapsulation, but is much more reliable and works from inside PAR and friends (ADAMK)
- The Padre Preferences Sync client now works, but requires you to enable the config value feature_sync until we work some bugs out of it (BRAMBLE)
- The main window search_next method will now explicitly not open a find dialog rather than accidentally not open one, and the search_previous method now does the same as search_next instead of crashing Padre (ADAMK)
- The birthday easter egg now only comes up once a year, and we will never bug the user about any other nth popup on our birthday (ADAMK)
- Renamed startup_count config setting to nth_startup in line with the other config stuff relating to the Nth start mechanism (ADAMK)
- Adding a preliminary (broken) implementation of Replace in Files, hidden behind the feature_replaceinfiles config setting (ADAMK)
- A significant number of the editor preferences in the view menu can now support being changed by Preference Sync (ADAMK)
- The right margin/edge is now enabled correctly at startup (ADAMK)
- Ensure the .pod files are recognized as POD documents (SZABGAB)
- Update french translation (but still much to do) (DOLMEN)
- Added a slightly odd but working workaround for a bug where ->SetValue('foo') would automatically set 'foo bar' instead if 'foo bar' was in the visible history of the combo box (ADAMK)
- Removed the --with-plugin command line option used by one of the author tests as the implementation violated encapsulation badly (ADAMK)
- Moved Bookmarks from View to Search menu in line with other several other editors (ADAMK)
- Added feature_folding to allow the removal of code folding support (ADAMK)
Documentation
Padre::DB class for the snippets table
The Primary Padre Documentation
Guide to hacking on Padre
client for Padre
Modules
Perl Application Development and Refactoring Environment
auto-save and recovery mechanism for Padre
documentation browser for Padre
is an afterthought
Configuration subsystem for Padre
Padre configuration storing host state data
Padre configuration storing personal preferences
Upgrade a configuration file from an older version
constants used by configuration subsystems
A context object, for centralising the concept of what is "current"
An ORLite-based ORM Database API
Padre::DB class for the bookmark table
Padre::DB class for the history table
Padre::DB class for the host_config table
Storage class for stateful cursor positions
Padre::DB class for the plugin table
Padre::DB class for the recently_used table
Padre::DB class for the session table
Padre::DB class for the session_file table
Padre::DB class for the syntax_highlight table
Support library for Padre desktop integration
Padre Document API
naive implementation of some beginner specific error checking
Perl 5 Help Provider
Padre Perl 5 Quick Fix
Check for module inclusions
Check for strict and warnings pragmas
Constants to support currying of feature_* config options
Common API for file functions
Padre Help Provider API
Locale support for Padre
The Padre Multi-Resource Lock Manager
Compile-time logging library for Padre
Padre Mime-types
Move fragmented POD to the end of a Perl document
PPI::Transform integration with Padre
Demonstration transform
A more nuanced "Where is Perl" module than Probe::Perl
Padre plug-in API 2.2
tools used by the Padre developers
My personal plug-in
The Padre Popularity Contest
Module::Build subclass for building Padre plug-ins
Padre plug-in manager
A customised Pod to HTML for Padre
Padre Quick Fix Provider API
A role for objects that commission tasks
The Padre Search API
Padre start-up related configuration settings
Utility functions for handling remote Configuration Syncing
Padre Task API 2.0
Task for executing arbitrary code via a string eval
File operations in the background
PPI based unmatched brace finder
Finds where a variable was declared using PPI
Introduces a temporary variable using PPI
Generic HTTP client background processing task
Lexically variable replace using PPI
Generic PPI background processing task
Padre Background Task and Service Manager
Padre Document Transform API
Padre non-Wx Utility Functions
Open in file browser action
Padre utility functions for new-file-templates
Padre Win32 API Functions
Wx integration for Padre
Padre Action Object
Padre main Wx application abstraction
Wx front-end for Padre::Browser
Wx front-end for CPAN
Interface to the Perl debugger.
a dialog to show and configure advanced preferences
document statistics dialog
dialog to filter selection or document through an external tool
A Dialog
a dialog to jump to a user-specified line/position
Padre Shiny Help Search Dialog
a dialog to show and configure key bindings
Open Resources dialog
a dialog for opening URLs
dialog to make it easy to create a regular expression
Plug-in manager dialog for Padre
Go to previous (or earlier) position
Quick Menu Access dialog
dialog to make it easy to create a regular expression
Find and Replace Widget
Session manager dialog for Padre
dialog to save a Padre session
A Dialog
A Dialog
Windows list dialog for Padre
a Padre document wizard
a Padre Plugin Wizard
a Perl 5 Module Wizard
the wizard selection page
a wizard page base class
a dialog to filter, select and open wizards
Utility functions for physical display geometry
Find and list all occurrences
Simple Single-Document Pod2HTML Viewer
A history-enabled Wx combobox
Padre-enhanced version of Wx::HtmlWindow
The main window for the Padre IDE
Tell the user that we're doing something
Role to allow an object to receive Wx events
Allow dialogs or frames to host simple common dialogs
Convenience methods for implementing dwell timers
Convenience methods for children of the main window
A role for GUI tools that live in panels
Encapsulates status bar customizations
Scroll-free transactions for tree controls
Padre Wizard Object
Provides
in lib/Padre/Browser/POD.pm
in lib/Padre/Browser/PseudoPerldoc.pm
in lib/Padre/CPAN.pm
in lib/Padre/Cache.pm
in lib/Padre/Command.pm
in lib/Padre/Config/Setting.pm
in lib/Padre/Config/Patch.pm
in lib/Padre/Config/Project.pm
in lib/Padre/Config/Setting.pm
in lib/Padre/Config/Style.pm
in lib/Padre/DB/Migrate.pm
in lib/Padre/DB/Timeline.pm
in lib/Padre/Document/DoubleDashComment.pm
in lib/Padre/Document/DoubleSlashComment.pm
in lib/Padre/Document/HashComment.pm
in lib/Padre/Document/POD.pm
in lib/Padre/Document/PercentComment.pm
in lib/Padre/Document/Perl.pm
in lib/Padre/Document/Perl/Autocomplete.pm
in lib/Padre/Document/Perl/FunctionList.pm
in lib/Padre/Document/Perl/Lexer.pm
in lib/Padre/Document/Perl/Outline.pm
in lib/Padre/Document/Perl/PPILexer.pm
in lib/Padre/Document/Perl/Syntax.pm
in lib/Padre/File/FTP.pm
in lib/Padre/File/HTTP.pm
in lib/Padre/File/Local.pm
in lib/Padre/Lock.pm
in lib/Padre/PPI.pm
in lib/Padre/Plugin/PopularityContest/Ping.pm
in lib/Padre/PluginHandle.pm
in lib/Padre/Portable.pm
in lib/Padre/Project.pm
in lib/Padre/Project/Null.pm
in lib/Padre/Project/Perl.pm
in lib/Padre/Project/Perl/DZ.pm
in lib/Padre/Project/Perl/EUMM.pm
in lib/Padre/Project/Perl/MB.pm
in lib/Padre/Project/Perl/MI.pm
in lib/Padre/Project/Perl/Temp.pm
in lib/Padre/Project/Temp.pm
in lib/Padre/ProjectManager.pm
in lib/Padre/Task/Addition.pm
in lib/Padre/Task/BackupUnsaved.pm
in lib/Padre/Task/Browser.pm
in lib/Padre/Task/FindInFiles.pm
in lib/Padre/Task/FunctionList.pm
in lib/Padre/Task/LaunchDefaultBrowser.pm
in lib/Padre/Task/OpenResource.pm
in lib/Padre/Task/Outline.pm
in lib/Padre/Task/RecentFiles.pm
in lib/Padre/Task/ReplaceInFiles.pm
in lib/Padre/Task/Run.pm
in lib/Padre/Task/Syntax.pm
in lib/Padre/TaskHandle.pm
in lib/Padre/TaskProcess.pm
in lib/Padre/TaskQueue.pm
in lib/Padre/TaskThread.pm
in lib/Padre/TaskWorker.pm
in lib/Padre/Test.pm
in lib/Padre/Util/CommandLine.pm
in lib/Padre/Util/SVN.pm
in lib/Padre/Wx/About.pm
in lib/Padre/Wx/ActionLibrary.pm
in lib/Padre/Wx/AuiManager.pm
in lib/Padre/Wx/Bottom.pm
in lib/Padre/Wx/CPAN/Listview.pm
in lib/Padre/Wx/Command.pm
in lib/Padre/Wx/Debug.pm
in lib/Padre/Wx/Dialog/Bookmarks.pm
in lib/Padre/Wx/Dialog/Find.pm
in lib/Padre/Wx/Dialog/FindFast.pm
in lib/Padre/Wx/Dialog/FindInFiles.pm
in lib/Padre/Wx/Dialog/Preferences.pm
in lib/Padre/Wx/Dialog/RefactorSelectFunction.pm
in lib/Padre/Wx/Dialog/ReplaceInFiles.pm
in lib/Padre/Wx/Dialog/Snippet.pm
in lib/Padre/Wx/Dialog/Special.pm
in lib/Padre/Wx/Dialog/Sync.pm
in lib/Padre/Wx/Dialog/Text.pm
in lib/Padre/Wx/Dialog/WhereFrom.pm
in lib/Padre/Wx/Directory.pm
in lib/Padre/Wx/Directory/Browse.pm
in lib/Padre/Wx/Directory/Path.pm
in lib/Padre/Wx/Directory/Search.pm
in lib/Padre/Wx/Directory/TreeCtrl.pm
in lib/Padre/Wx/Editor.pm
in lib/Padre/Wx/FBP/Bookmarks.pm
in lib/Padre/Wx/FBP/Find.pm
in lib/Padre/Wx/FBP/FindFast.pm
in lib/Padre/Wx/FBP/FindInFiles.pm
in lib/Padre/Wx/FBP/Preferences.pm
in lib/Padre/Wx/FBP/ReplaceInFiles.pm
in lib/Padre/Wx/FBP/Snippet.pm
in lib/Padre/Wx/FBP/Special.pm
in lib/Padre/Wx/FBP/Sync.pm
in lib/Padre/Wx/FBP/Text.pm
in lib/Padre/Wx/FBP/WhereFrom.pm
in lib/Padre/Wx/FileDropTarget.pm
in lib/Padre/Wx/FindInFiles.pm
in lib/Padre/Wx/Frame/HTML.pm
in lib/Padre/Wx/Frame/Null.pm
in lib/Padre/Wx/FunctionList.pm
in lib/Padre/Wx/History/TextEntryDialog.pm
in lib/Padre/Wx/Icon.pm
in lib/Padre/Wx/Left.pm
in lib/Padre/Wx/Menu.pm
in lib/Padre/Wx/Menu/Debug.pm
in lib/Padre/Wx/Menu/Edit.pm
in lib/Padre/Wx/Menu/File.pm
in lib/Padre/Wx/Menu/Help.pm
in lib/Padre/Wx/Menu/Perl.pm
in lib/Padre/Wx/Menu/Refactor.pm
in lib/Padre/Wx/Menu/RightClick.pm
in lib/Padre/Wx/Menu/Run.pm
in lib/Padre/Wx/Menu/Search.pm
in lib/Padre/Wx/Menu/Tools.pm
in lib/Padre/Wx/Menu/View.pm
in lib/Padre/Wx/Menu/Window.pm
in lib/Padre/Wx/Menubar.pm
in lib/Padre/Wx/Notebook.pm
in lib/Padre/Wx/Nth.pm
in lib/Padre/Wx/Outline.pm
in lib/Padre/Wx/Output.pm
in lib/Padre/Wx/Panel/FindFast.pm
in lib/Padre/Wx/Popup.pm
in lib/Padre/Wx/Printout.pm
in lib/Padre/Wx/ReplaceInFiles.pm
in lib/Padre/Wx/Right.pm
in lib/Padre/Wx/Role/Config.pm
in lib/Padre/Wx/Role/Form.pm
in lib/Padre/Wx/Style.pm
in lib/Padre/Wx/Syntax.pm
in lib/Padre/Wx/TodoList.pm
in lib/Padre/Wx/ToolBar.pm
in lib/Padre/Wx/TreeCtrl.pm
in lib/Padre/Wx/WizardLibrary.pm
in lib/Padre/Wx.pm
Examples
- eg/README
- eg/hello.pasm
- eg/perl5/cmd.pl
- eg/perl5/cyrillic_test.pl
- eg/perl5/hello_foo.pl
- eg/perl5/hello_world.pl
- eg/perl5/perl5.pod
- eg/perl5/shell.pl
- eg/perl5/sleep.pl
- eg/perl5/stderr.pl
- eg/perl5_with_perl6_example.pod
- eg/perl6/Perl6Class.pm
- eg/perl6/Perl6Grammar.p6
- eg/perl6/hello.p6
- eg/perl6/outline_test.p6
- eg/perl6/perl6.pod
- eg/python/hello_py
- eg/ruby/add.rb
- eg/ruby/hello_world.rb
- eg/ruby/hello_world_rb
- eg/syntax_demo.css
- eg/syntax_demo.js
- eg/syntax_demo.json
- eg/tcl/hello_tcl
- eg/tcl/portable_tcl
- eg/xml/xml_example