Feature oriented Revision history for Devel-PerlySense

0.0221 -- 2019-08-30 08:10:09 UTC

* POD fixes

* Fix RT#130415: escape { in regexes for Perl 5.30.
  Thanks to Slaven Rezic for the bug report.

0.0220 -- 2019-08-29 12:08:18 UTC

* Bug fix: include _ in search for package name

* "Find sub declarations" (C-o f s) now finds quoted attribute names,
  and attributes overridden with a leading +

* Feature: Edit - Copy Method Name -- C-o e c m.
  Copy the current method name (i.e. package->sub).

0.0219 -- 2018-01-26 14:40:53 UTC

* Extract variable: fix replacement to be case sensitive

* Config: default config contains well formed inc_dir

* Fix deprecated Perl 5.26 regex syntax for {}

0.0218 -- 2016-07-26 12:22:22 UTC

* Fixed broken docs image links after a PAUSE cleanup.

0.0217 -- 2016-07-21 12:53:23 UTC

* Feature: Edit - Copy Package Name From File Name -- C-o e c P.
  Assuming the file is a Perl module in a lib directory, copy the
  corrsponding package name to the kill ring.

  Useful when you've just created a new .pm file.

* Edit - Copy Package Name: if there is no package declaration in the
  source, fall back to using the package name from the file name.

* Extract Variable fixes: symbol boundary and case sensitive search
  and replace.

* When identifying an object method in "$self->abc", assume
  "shift->abc" means $self if there is no $self already used in the

0.0216 -- 2015-08-16 22:44:23 UTC

* Feature: Edit - Visualize Callers -- "C-o e v c". Visualize the
  callers comment created by "Find Callers" using GrapViz. Requires
  GraphViz "dot" to be installed.

* Fix: Find Callers highlights part of method as being already present
  in the call tree. Use regex symbol boundary instead of word

0.0215 -- 2015-07-19 19:24:38 UTC

* Feature: Edit - Find Callers -- "C-o e f c". Find callers of a
method in the current project, and insert the package->sub as a

This is for understanding where in the code base method calls

0.0214 -- 2015-07-15 21:01:20 UTC

* Allow Ack file type options (e.g. --perl, --sql) to be toggled, so
  they can be removed and allow all files to be matched.

* Silence random warnings from loading CPAN modules (they go to the
  debug log)

0.0213 -- 2014-10-12 14:42:24 UTC

* Feature: Run File under Devel::CoverX::Covered -- C-o r c. This is
  the same as Run File, but collect test coverage information using
  Devel::CoverX::Covered and enable Code Coverage Visualization.

0.0211 -- 2013-11-25 19:21:46 UTC

* Feature: Edit - Copy Package Name -- "C-o e c p". Copy the current
  package statement name to the clipboard (kill-ring) and display it
  in the echo area.

0.0210 -- 2013-11-25 15:47:30 UTC

* In ack 2.0, the option --all is replaced with --known-types.

  So in "Find with Ack" (C-o f a), while editing the search string in
  the minibuffer, the current shortcut (C-o a) to toggle "--all" is
  now useless if you use the later version of ack.

  New shortcut "C-o k" to toggle the option "--known-types".

0.0209 -- 2013-11-22 21:34:48 UTC

* Upgrade lang-refactor-perl to 0.1.5 with proper word boundary

0.0208 -- 2013-11-22 18:20:03 UTC

* When acking for sub/method declarations, also look for Moose has declarations
  (This is a quickie which doesn't account for quoting etc.)

* Improve the regex for files in error message for "C-o g e" to
  include "-".

* Fix failing test because the inheritance diagram is non-deterministic.

0.0207 -- 2013-02-26 23:09:26 UTC

* Feature: Refactoring - Extract Variable -- "C-o e e v". This uses
  the lang-refactor-perl elisp library.

  See also Refactoring - Highlight Remove - "C-o e h" to remove any
  highlights remaining after Extract Variable.

0.0206 -- 2012-10-20 17:23:47 UTC

* Bug #79817: "Go to Module" fails on numeric characters.
  Thanks to Mark A. Flacy for report and solution.

0.0204 -- 2012-06-17 12:52:45 UTC

* Bug #77711: Run ack with --nopager

0.0203 -- 2012-06-16 17:18:13 UTC

* Feature: identify base classes via "use parent".

* Correctly identify Test::Class .pm files as tests if they're below
  the t/ directory

0.0202 -- 2012-06-07 20:09:55 UTC

* Fixed deep recursion bug when a Module claims to be a base class to

0.0201 -- 2012-06-06 21:32:57 UTC

* Fixed deep recursion bug when finding a Module file, where
  e.g. Bar::Baz would be shadowed by Foo::Bar::Baz.

0.0200 -- 2012-06-01 11:37:30 UTC

* Test release

0.0199 -- whenever

* Feature: Added missing -i toggle for the ack command

  "C-o i" toggle  -i

* Feature: Go To Find Buffer -- "C-o g f" to go to the B<*grep*>

0.0198 -- whenever

* Feature: Edit - Add Use Statement using "C-o e a u". Add a 'use
  Module' statement to the 'use Module' section at the top. Default
  Module name is module at point.

* Changed Ack key bindings to use the C-o prefix instead of C-c, to
  avoid stomping on someone's personal config more than necessary.
  (also updated the Changes entry below to reflect the current

0.0197 -- 2012-05-29 22:39:02 UTC

* Fixed problem during startup where C-o f a won't work until the
  "grep" package is loaded (it's autoloaded during normal interactive

* Changed commands that run from the Project Directory so that they
  don't blow up if there is no Project Directory. Instead just run
  from the current directory.

* Add convenience key bindings for "Find with Ack" -- "C-o f a".

  When editing the ack command you can use the following keys to set options
  "C-o w" toggle  -w
  "C-o q" toggle  -Q
  "C-o a" use    --all
  "C-o p" use    --perl
  "C-o s" use    --sql

* Feature: Run File with Alternate Command using "C-u C-o C-r".  You
  need to configure the Alternate Command to do somethign useful in
  the PerlySenseProject config file.

* Feature: Debug File with Alternate Command using "C-u C-o r d".  You
  need to configure the Alternate Command to do somethign useful in
  the PerlySenseProject config file.

0.0195 -- 2012-05-21 13:55:44 UTC

* Fixed t/PerlySense-find-file-inc.t which fails if there is no
  .PerlySenseProject in the build directory (which there typically

0.0194 -- 2012-05-21 12:58:40 UTC

* Fixed dzil config re: $VERSION variable

0.0193 -- 2012-05-20 18:09:05 UTC

* Catch exceptions during flymake and log them to avoid returning a
  positive error code that flymake will interpret as "Configuration
  error has occurred while running" etc.

* Improve error reporting for badly formed YAML config files.

* #70203: Missing close paren in emacs lisp
  _Finally_ fixed pathetic elisp syntax error w/ missing closing paren.

  Thanks to SPACEBAT and Sebastian Willert for reporting

0.0191 -- 2011-07-31 21:07:42 UTC

* Config project/inc_dir now used not only to set @INC when running
  programs, but also to find files and modules.

* Running programs using the prepared shell commands now more solid
  across various Emacs versions / platforms.

* Provide a default .PerlySenseProject/.perlcritic file when running
  perly_sense create_project. (If you run this again, the existing project.yml
  will be backed up.)

0.0190 -- 2011-05-12 21:12:24 UTC

* #68144: Unable to install PerlySense-0.0189
  Thanks to David McWilliams for a quick bug report.

0.0189 -- 2011-05-08 22:55:00 UTC

Bug fix release. Thanks to John SJ Anderson for prodding me to get RT
patches applied.

* Bug #65259 - sub prototype causes failure in perl 5.12 in emacs on
  mac. Thanks to VANAMBURG for the bug report and fix.

* Bug #42827 - Flymake warnings not displayed with latest Perl::Critic
  Thanks to Jan Tatarik for the bug report and fix.

* Bug #61640 - perly-sense.el regexps
  Thanks to Kevin Ryde for the bug report and John SJ Anderson for the

0.0188 -- 2011-05-08 21:15:38 UTC

* Dist::Zilla build files


* Removed non ascii char form Build.PL to avoid not-utf8 warnings.


* Fixed bad YAML in default config file which breaks YAML::Tiny
  1.46. Thanks to Thomas Kappler for finding this.

  !!!NOTE!!! If you have existing .PerlySense/project.yml files, they
  are broken. A scalar string with : followed by a space is illegal
  and now needs to be quoted.

  In the previous default config, the regex under "bookmark:" is
  broken and the "rex:" should now be
      - "qr/\# \s* TODO \s* : \s* (.+?) \s*$/x"

  Remember: you need to find *all* your .PerlySense/project.yml files
  and fix them:
    ack -fa | ack PerlySenseProject/project.yml

* Better error output when YAML::Tiny dies

* Updated default config to use "prove --nocolor". Because it's 2011


* No-op


* New command: C-o g r -- Go to Run buffer.

* Fixed Test::Class current method bug when re-running.


* Minor "Test::Class" usability improvements.


* Support for running a single method in Test::Class. Mark a method
  with C-o t m, then run the test class with C-o C-r as usual.


* Adjusted "Find with Ack" to work with Emacs 23 as well.


* Feature request from Joshua McMIchael: make flymake display its
  errors in the minibuffer.

  This is done automatically if the display isn't graphical, or if the
  ps/flymake-prefer-errors-in-minibuffer variable is customized.


* Bug http://rt.cpan.org/Public/Bug/Display.html?id=42577
  - Test::More output "# Looks like you planned 1 test but ran 2."
    singular not recognized. Thanks to Kevin Ryde for noticing!
  - Also relaxed singular/plural for other phrases


* Debugger
  - Fixed a bug with the working directory.
  - Proper docs


* Run in Debugger -- C-o r d
  - !NOTE! Requires you to re-create the .project config file !NOTE!
  - Run current file from the project directory
  - With proper -I include directories


* Fixed problem with shell dialect syntax in directory names for
  prepare-shell-command. Now works on Unixen too.


* New specific Overview commands:
  - C-o o i -- Inheritance
  - C-o o a -- API
  - C-o o b -- Bookmarks
  - C-o o u -- Uses
  - C-o o h -- NeighbourHood

* Beta: Run calls to perly_sense as a prepared shell command, if the
  variable ps/use-prepare-shell-command is non-nil.

  (setq ps/use-prepare-shell-command t) to enable in your config.

  This will shave around 1.8s off each call, which is
  significant. This makes most things _a_lot_ snappier.

* Removed the NeighbourHood from Class Overview. This was making Class
  Overview too slow to be useful, and provided little benefit.

  You can still use C-o o h if you want to see the NeighbourHood.


* Moved screen shots to web pages, linked from POD


*Fixed bug: If displaying method docs with an =item in the POD, it
  will render with a warning.


* Screenshots in the documentation and other docs improvements.


* Find with Ack quotes the search properly.

* Find Sub Declarations and Find Method Calls identify methods when
  point is on the object too.


* Find sub declarations in Project of method or name at point.
  C-o f s.

* Find method calls in Project of method or name at point.
  C-o f c.

* Fixed problem with missing --nogroup ack option on some

* Better Find usability:
  - Sensible default point position in input buffer.

* Numerous minor POD fixes.


* Find using "ack" in Project. C-o f a.

* Rearranged the docs to provide more readable sub headings.


* Fixed bug: missing (require 'pc-select) in elisp.
  Thanks to Sebastian Willert for catching this.


* Removed "Coverage information loaded" message that appears when
  Devel::CoverX::Covered info is loaded. This messed up the echo area
  for other messages.

* Release related bugs fixed. Thanks to Lucien Hantute for spotting
  the reason.


* Moose syntax plugin, supporting the "has", "extends", and "with"
  keywords. See the Devel::PerlySense::Plugin::Syntax::Moose docs.

  Not yet spliced off to its own distro.

* Test fix (accidental // as part of a path seems to break some


* Moose plugin, supporting "extends" and "with". The plugin is still
  in this distro, it will eventually get it's own distribution.


* Another attempt, this time by introducing files in otherwise empty
  directories. Maybe different versions of tar extract files


* Fucking about with this problem: http://www.perlmonks.org/?node_id=714227

  This attempt: http://rt.cpan.org/Public/Bug/Display.html?id=39804


* Failed release


* Git support (Magit) for the Version Control commands.
  See: http://zagadka.vm.bytemark.co.uk/magit/

* Fixed bug: Coverage visualization always instantiates an empty
  "covered" directory, even if there isn't any coverage to begin with.

* Fixed bug: Nothing happens after choosing between > 1 base classes
  in "Go to Base class" (response key named "class-description"
  instead of "class_description").


* Go To Project's Other Files - C-o g p o -- If you have a
  .corresponding_files in the .PerlySenseProject directory, this will
  let you navigate to those other files. See File::Corresponding for
  more info.


* Changed call to collect coverage information to be asynchronous.


* Fixed (potential) bug in covered visualization, when trying to
  fontify a killed buffer.


* Added configuration tips to the Cookbook on how to run Test::Class
  and custom test framework files.

* Go To Tests - Other Files: C-o g t o -- Now sub-aware, i.e. when the
  point is on a line with "sub name", the list is limited to that
  sub. Requires Devel::CoverX::Covered >= 0.011 .


* Fixed various Coverage fontification bugs. This didn't work at all
  well with subs with _ in them.

* New customization -- only indicate bad subroutine coverage


* New feature: Display code coverage in the source using

  First release of this, so may be immature. Feedback wanted.

* Print out log file at beginning of doing process_inc or

* New feature: "perly_sense log_file" prints the log file name. Useful
  for "tail -f `perly_sense log_file`.


* Fixed http://rt.cpan.org/Public/Bug/Display.html?id=35934.

  "memory leak" during "perly_sense process_inc" caused by an
  in-memory cache of Perl documents.

* New feature "perly_sense process_project [--dir=.]".


* All actions in perly_sense now use the serialization format, which
  means all actions can potentially work in Vim.


* BIG CONFIG CHANGE! all Emacs variables are renamed from perly-sense-
  to ps/ . Update the section in your .emacs file that loads


* If more than 30 items in a dropdown, use completing read instead.
  This is customized with the
  perly-sense-dropdown-max-items-to-display variable.


* Go To Tests - Other Files: C-o g t o -- If you have
  Devel::CoverX::Covered installed and have build a cover_db in the
  project root directory, this command will let you choose to go to
  any related test or source files.

  See Devel::CoverX::Covered for details.

  Ironically, this isn't very well unit tested yet...


* Eye-candy release: use dropdown-list.el when choosing between
  multiple classes.

* Note that two configuration colors were added, so revisit the "Emacs
  installation" section in the docs to set that up.


* Vim serialization support


* Edit Test Count: C-o e t c. Increase the test count specified by use
  "Test::More tests => 42;" and the like.

* Assist-with Test Count: C-o a t. Synchronize invalid test count in
  .t file with the *compilation* buffer.


* Go to Version Control now properly supports: svn, none

* Doc Uses: C-o d u -- Display used Module in the echo area.

* Go To Uses: C-o g u -- Go to the 'use Module' section of the current

* Edit Move Use Statement: C-o e m u -- Move 'use Module' statement to
  the end of the 'use Module' section at the top of the file.


* Go To 'new': C-o g n -- Go to the 'new' method of the current class.

* Go to Version Control: C-o g v -- Go to the Project view of the
  current Version Control system.

* Document Inheritance: C-o d i -- display the Inheritance hierarchy
  for the current class.

* Documentation: Key binding conventions


* More clever Goto Base Class:

  - If target source file is already open, don't move point to top of
    file by default

  - If the current location is in a sub
    - display that sub if it exists in any base class
    - go to that sub in the base class if it exists


* C-o g b - Goto Base Class. Basic functionality, but can handle MI,
  letting you choose which class to go to.


* Bundle regex-tool 1.2

  C-o a r - Assist-with Regex


* In Class Overview, display documentation for each method, or the
  method name if no doc is found. This is taken from the POD for each


* Fiddled with failing test, fixed typo.


* Tried fixing test which failed on some platforms.


* Debug diagnostics for the failing test that doesn't appear on


* In Class Overview, don't display private methods in base classes
  outside the current Project. TBD: config setting for this

* Made headings in Class Overview less huge

* Fixed bug with missing face dependency loaded from another Emacs package


* Changed key binding for Class Overview from C-o C-c (focusing on
  Class) to C-o C-o (focusing on Overviwe). This is to bring it in
  line with the convention of having the first keystroke be an
  "action", not an "object".

* "perly_sense info" displays Version

* Removed dependency on "grep-mode" which was only used for the faces.

* Faces are now dealt with properly in the customize-group perly-sense
  (if you use PerlySense in text-only mode, please let me know if it
  looks ok).


* Docs and Goto now works on Methods in the Class Overview.

* Bug: Goto method declaration goes to the POD rather than the sub {}
  if found in base classes.


* Cookbook.pod added

* Class Overview
  - reorder the things displyed to bring the more useful stuff to the top
  - display API methods in columns


* "perly_sense info" provides useful information about what the
  current project directory, user home directory, etc. is.

* Class Overview lists the API, i.e. methods and properties.


* Fixed broken Build.PL which didn't properly install the .el files
  into the lib directory. The Makefile.PL worked earlier though...


* Fist non-developer release!

* New .emacs load procedure, read the docs again.

* Automatic identification of elisp files using "perly_sense

* Configurable Emacs prefix. Default is C-o.


* Fixed failing test.

* Fixed broken initial project config (bad bookmark regexp)


* Fixed another most likely insignificant failing test, added debug
  output for another one. Bring on the CPAN testers! (kudos guys!)


* Fixed annoying failing Win/Unix newline test. Nothing else.


* Fixed bug #30775: "Flymake not showing Perl::Critic warnings" which
  was caused by redirecting warnings into the debug log.

* Bookmark support (recreate the project config and check out the
  "bookmark" entry).


* Fixed: Flymake emits redefined warnings for subs with namespace

* Debug logging in the HOME/.PerlySense/log directory

* Warnings go to the debug log


* Fixed potential breaking flymake elisp.

* If the *compiation* buffer is already visible in any frame, switch
  to that first, so we don't get to see two *compiation* buffers next
  to each other. That just looks silly.

* Perl::Critic using Flymake - first draft


* Run File uses the Project config, and supports syntax checking .pm
  files, running .pl files, etc. as well.

* New config keys added, so run "perly_sense create_project" to
  re-generate a default project.yml which you can then diff against
  the old one (renamed with datestamp).

* Flymake support - highlight syntax errors and warnings in the source
  while editing (continously or at every save).

  Note: new elisp file to install, and some .emacs configuration.


* Docs about projects, etc.

* If Run File is perfomed from within the compile buffer, do a

* C-p r r -- If not even the *compilation* buffer is visible, issue
  Re-Run File from anywhere.

* "perly_sense create_project" renames existing project.yml with


* Stuff happened.

* Time passed.

* Code got written. Bugs were introduced and removed. Ideas were had,
  fleshed out, xdiscarded. Sometimes implemented.

But that was then.