1 * DESCRIPTION (-*- org -*-)
2 Sepia is a set of features to make Emacs a better tool for Perl
3 development, including:
5 * an interactive prompt (REPL) for evaluating code;
6 * cross-referencing to find and navigate between function and
7 variable definitions and uses;
8 * variable- and function-name completion.
9 * eldoc support to echo function arguments in the minibuffer
10 * functions to simplify POD browsing with Emacs-w3m
12 Please see the Sepia.html or sepia.info for documentation.
14 The basic installation procedure is:
16 1) run "perl Makefile.PL; make; make install"
17 2) optionally, install w3m and Emacs-w3m
18 3) put the elisp files somewhere Emacs will find them.
20 Sepia is developed on the latest version of GNU Emacs, which can be
21 obtained from CVS or as a prebuilt package on some platforms. It can
22 run on other versions of Emacs, but may require additional packages.
23 ** Requirements for GNU Emacs 22
24 *** (optional) emacs-w3m from http://emacs-w3m.namazu.org/
25 *** (optional) w3m from http://w3m.sourceforge.net/
26 *** (optional) snippet.el from http://www.kazmier.com/computer/snippet.el
27 ** Additional requirements GNU Emacs 21
29 http://cvs.savannah.gnu.org/viewcvs/*checkout*/emacs/lisp/ido.el?root=emacs
30 *** FreeBSD may require the following packages:
31 tree-widget-emacs21-2.0
32 emacs-w3m-emacs21-1.4.4_2
33 mule-ucs-emacs21-0.85.r3
43 ** (Easy) Use module, file, line to refine queries (Perl side)
44 ** (Medium) Get the variable def/use analysis working again.
45 ** (Hard) Use module, file, line to filter results (Emacs side)
46 ** (Medium) Let sepia-next go backward
47 Need to use a vector plus current index instead of a list for
49 ** (Hard) return from anything in the debugger
50 Make it possible to return from intermediate calls in the debugger.
51 Returning from die() is not often useful.
53 This can be done with a clever DB::sub, but that dramatically slows
55 ** (Medium) fix `sepia-beginning-of-defun' and `sepia-end-of-defun'.
56 While they work for "normal" sub definitions, they fail on
57 definitions that are all on one line, e.g.
63 ** (Medium) Fix string escaping when passing between Perl and Emacs
64 IO::Scalar's README tickles a bug.
65 ** (Hard) Make the debugger's "next" work
66 "next" (as opposed to "step") assumes that the next statement after
67 line $n is line $n+1, which isn't true for loops, blank lines,
68 multi-line statements, etc. Fix this somehow. One way might be to
69 temporary regain control on a op_next/op_nextstate, or whatever
70 those are called, but this would be hard and/or require XS.
71 ** (Medium) Make "finish" more reliable
72 It currently assumes that the last breakable statement in a sub is
73 one line before its end. The "right" solution would be like above:
74 to hook op_leave temporarily. This would similarly require XS
76 ** (Medium) Enable partial-word completion of lexicals
77 ** (Hard) Rewrite completion code, which is pretty ugly now.
78 This wouldn't seem "hard" but, having hacked on two completion
79 codebases (Sepia's and complete.el's), I know there are always a
80 lot of subtle cases to get right, and what acts "naturally" by
81 human standards is extremely complicated to specify in code.
82 ** (Hard) Add appropriate hooks
83 Possibly update existing functions to make use of hooks for better
86 The following is a list of bugs that are difficult to automatically
87 reproduce, with the dates they were first observed.
88 ** (2006-05-19) Function definition lines occasionally all go wrong.
89 Rebuilding the Xref database fixes this.
90 ** (2006-05-19) The cursor misses by several lines jumping to a definition.
91 This is hard to fix -- Perl doesn't give exact line numbers for sub
92 defs, so we have to do some minor regex-searching.
93 ** (2006-05-19) `sepia-var-assigns' doesn't work yet -- don't use it.
94 ** (2006-05-19) named method calls (mostly?) detected, but naively.
95 Nothing smart is done about packages, so e.g. "new Foo" will result
96 in listings for every instance of "new" in your program.
97 ** (2008-01-18) the first value printed in the debugger is undef. why?!
98 * COPYRIGHT AND LICENCE
99 Copyright (C) 2004-2009 Sean O'Rourke
101 This library is free software; you can redistribute it and/or modify
102 it under the same terms as Perl itself, at the time at which this
103 version of Sepia was released.