The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
* DESCRIPTION (-*- org -*-)
Sepia is a set of features to make Emacs a better tool for Perl
development, including:

    * an interactive prompt (REPL) for evaluating code;
    * cross-referencing to find and navigate between function and
      variable definitions and uses;
    * variable- and function-name completion.
    * eldoc support to echo function arguments in the minibuffer
    * functions to simplify POD browsing with Emacs-w3m

Please see the Sepia.html or sepia.info for documentation.
* INSTALLATION
The basic installation procedure is:

    1) run "perl Makefile.PL; make; make install"
    2) optionally, install w3m and Emacs-w3m
    3) put the elisp files somewhere Emacs will find them.

Sepia is developed on the latest version of GNU Emacs, which can be
obtained from CVS or as a prebuilt package on some platforms.  It can
run on other versions of Emacs, but may require additional packages.
** Requirements for GNU Emacs 22
*** (optional) emacs-w3m from http://emacs-w3m.namazu.org/
*** (optional) w3m from http://w3m.sourceforge.net/
*** (optional) snippet.el from http://www.kazmier.com/computer/snippet.el
** Additional requirements GNU Emacs 21
*** ido.el
    http://cvs.savannah.gnu.org/viewcvs/*checkout*/emacs/lisp/ido.el?root=emacs
*** FreeBSD may require the following packages:
    tree-widget-emacs21-2.0
    emacs-w3m-emacs21-1.4.4_2
    mule-ucs-emacs21-0.85.r3
    semi-emacs21-1.14.6_1
    wv-1.2.4
    xlhtml-0.5_1,1
    libgsf-1.14.3
    flim-emacs21-1.14.8
    apel-emacs21-10.7
    ja-nkf-2.05

* TODO
** implement mod_apropos
** improve output for sepia-module-* (modinfo functions)
** (Medium) better intro documentation for debugger
** (Easy) Use module, file, line to refine queries (Perl side)
** (Medium) Get the variable def/use analysis working again.
** (Hard) Use module, file, line to filter results (Emacs side)
** (Medium) Let sepia-next go backward
   Need to use a vector plus current index instead of a list for
   sepia-found.
** (Hard) return from anything in the debugger
   Make it possible to return from intermediate calls in the debugger.
   Returning from die() is not often useful.

   This can be done with a clever DB::sub, but that dramatically slows
   down execution.
** (Easy) Fix sepia-indent-or-complete abbrev expansion
   Currently "else<TAB>" both expands and completes.
** (Medium) fix `sepia-beginning-of-defun' and `sepia-end-of-defun'.
   While they work for "normal" sub definitions, they fail on
   definitions that are all on one line, e.g.

       sub foo { ... }
       sub bar {
           ...
       }
** (Medium) Fix string escaping when passing between Perl and Emacs
   IO::Scalar's README tickles a bug.
** (Medium) Make the debugger's "next" work
   "next" (as opposed to "step") assumes that the next statement after
   line $n is line $n+1, which isn't true for loops, blank lines,
   multi-line statements, etc.  Fix this somehow.
** (Medium) Make "finish" more reliable
   It currently assumes that the last breakable statement in a sub is
   one line before its end.
* KNOWN BUGS
** Function definition lines may occasionally all go completely wrong.
   Rebuilding the Xref database fixes this.
** The cursor may miss by several lines when jumping to a definition.
   This is hard to fix -- Perl doesn't give exact line numbers for sub
   defs, so we have to do some minor regex-searching.
** `sepia-var-assigns' doesn't work yet -- don't use it.
** named method calls are (mostly?) detected, but nothing smart is
   done about packages, so e.g. "new Foo" will result in listings for
   every instance of "new" in your program.
** the first value printed in the debugger is undef.  why?!
* CREDITS
Sepia would never have been possible without Software Libre, as many
key components have been stolen and adapted from other packages:

    * Sepia::Xref is taken from B::Xref.
    * sepia-w3m is taken from w3m-perldoc.
* COPYRIGHT AND LICENCE
Copyright (C) 2004-2008 by Sean O'Rourke

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, at the time at which this
version of Sepia was released.