Please see the Sepia.html or sepia.info for documentation.
* INSTALLATION
The basic installation procedure is:
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
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.
** (Hard) 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. One way might be to temporary regain control on a op_next/op_nextstate, or whatever those are called, but this would be hard and/or require XS. ** (Medium) Make "finish" more reliable
It currently assumes that the last breakable statement in a sub is
one line before its end. The "right" solution would be like above:
to hook op_leave temporarily. This would similarly require XS
trickery.
** (Medium) Enable partial-word completion of lexicals
** (Hard) Rewrite completion code, which is pretty ugly now.
This wouldn't seem "hard" but, having hacked on two completion
codebases (Sepia's and complete.el's), I know there are always a
lot of subtle cases to get right, and what acts "naturally" by
human standards is extremely complicated to specify in code.
KNOWN BUGS
The following is a list of bugs that are difficult to automatically
reproduce, with the dates they were first observed.
* (2006-05-19) Function definition lines occasionally all go wrong.
Rebuilding the Xref database fixes this. ** (2006-05-19) The cursor misses by several lines 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. ** (2006-05-19) `sepia-var-assigns' doesn't work yet -- don't use it. ** (2006-05-19) named method calls (mostly?) detected, but naively.
Nothing smart is done about packages, so e.g. "new Foo" will result
in listings for every instance of "new" in your program.
** (2008-01-18) the first value printed in the debugger is undef. why?!
* COPYRIGHT AND LICENCE
Copyright (C) 2004-2009 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.