1 2007-06-02 Sean O'Rourke <sorourke@cs.ucsd.edu>
3 * lib/Sepia.pm (repl_shell): new command.
4 * sepia.el (sepia-eval-defun): detect errors, jump to first.
5 (sepia-comint-setup): don't set comint-use-prompt-regexp
6 (sepia-eval-defun,sepia-beginning-of-defun,sepia-end-of-defun): fix
8 2007-06-01 Sean O'Rourke <sorourke@cs.ucsd.edu>
10 * sepia.el (sepia-perldoc-this): don't mess up window
11 configuration when the page isn't found.
12 (sepia-location): use sepia-interactive-arg.
13 (sepia-perl-[np]e-region): fix.
16 (print_dumper): switch format based on size.
18 2007-05-30 Sean O'Rourke <sorourke@cs.ucsd.edu>
19 * sepia.texi: shiny new manual.
20 * lib/Sepia.pm (completions): add special 'VARIABLE' type.
21 (methods): add second $qualified arg.
22 (repl_reload): new function.
23 (sig_warn,repl): override __WARN__ (and __DIE__) cautiously.
24 (repl): nicer warning format.
26 * sepia.el (sepia-eval-raw): stopwarn -> STOPWARN.
27 (sepia-load-file): Fix pop-up error buffer.
28 (sepia-lisp-to-perl): fix quoting of strings.
30 (sepia-mode): make a real major mode.
31 (sepia-scratchpad-mode): ditto.
33 2007-05-29 Sean O'Rourke <sorourke@cs.ucsd.edu>
35 * lib/sepia/Xref.pm (pp_method_named): warn -> dprint.
36 * sepia.el (sepia-simple-method-before-point): new function.
37 (sepia-complete-symbol): use it to complete methods.
39 (sepia-perldoc-function,sepia-view-pod-function,
40 sepia-module-list-function): new variables.
41 (sepia-perldoc-this,sepia-view-pod): new functions.
42 * lib/Sepia.pm (repl): trim leading spaces.
43 (tolisp): escape metacharacters.
44 (repl): don't override "die" if someone has installed a
47 2007-05-28 Sean O'Rourke <sorourke@cs.ucsd.edu>
50 * sepia.el (sepia-core-version): new function.
51 (sepia-indent-or-complete): fix abbrev expansion.
52 (sepia-symbol-info): report core version in eldoc.
53 (sepia-ident-before-point): new function.
54 (sepia-complete-symbol): use it instead of *-at-point.
55 (sepia-complete-symbol): complete arrays and hashes when '$'
57 * lib/Sepia.pm (printer): Use @::__; distinguish "last as scalar"
58 $__ from printed representation.
59 ($PRINT_PRETTY): columnate lists if this is on.
61 (repl_methods): add regex argument.
63 (completions): Add in package names.
65 2007-05-27 Sean O'Rourke <sorourke@cs.ucsd.edu>
67 * lib/Sepia.pm (repl_methods): fixed.
69 2007-05-26 Sean O'Rourke <sorourke@cs.ucsd.edu>
72 * sepia.el (sepia-doc-scan-buffer): Better doc regex for
74 (sepia-indent-or-complete): try to expand abbrevs before
75 completion (try with snippet.el).
76 (sepia-indent-expand-abbrev): control the above feature.
77 (sepia-complete-symbol): scroll completion buffer; suggested by
79 * lib/Sepia.pm (html_package_list,html_module_list): new
81 (completions): '$'-completion only generates scalars.
82 * sepia-w3m.el: remove spurious sepia-module-list, improve
84 (sepia-module-list,sepia-package-list): better output.
85 (sepia-package-list,sepia-module-list): move Perl code to
86 Sepia.pm, generate list in inferior perl instead of shelling
89 2007-05-23 Sean O'Rourke <sorourke@cs.ucsd.edu>
91 * lib/Sepia.pm (_apropos_re): handle empty completions.
92 (columnate): pretty-print ",who" output.
93 * sepia.el (sepia-complete-symbol): bury stale completions buffer;
94 suggested by Hilko Bengen.
96 2007-05-17 Sean O'Rourke <sorourke@cs.ucsd.edu>
98 * lib/Sepia.pm (_completions1): Fix infinite recursion.
99 (repl): typo; clarify ambiguous vs. unrecognized shortcuts.
101 2007-05-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
103 * sepia.el (sepia-dwim): don't try to jump to location when
104 looking up module docs.
105 * lib/Sepia.pm: use $::__ instead of $Sepia::__
106 (repl_quit): new command.
109 2007-05-12 Sean O'Rourke <sorourke@cs.ucsd.edu>
112 * Makefile.PL: add license.
114 2007-05-09 Sean O'Rourke <sorourke@cs.ucsd.edu>
117 * sepia.el (sepia-load-file): set inhibit-read-only when
119 * lib/Sepia.pm (repl_methods): walk ISA hierarchy looking for
120 functions (XXX: this is much too coarse).
121 (repl_help): use %REPL_DOC to hold command documentation for
123 (repl): display error on canceled continued statement.
125 2007-05-07 Sean O'Rourke <sorourke@cs.ucsd.edu>
127 * lib/Sepia.pm (repl_strict): add 'strict mode' (thanks to
128 Lexical::Persistence) for those who swing that way (I don't),
129 inspired by Devel::REPL.
130 (repl_wantarray): Fix logic.
132 2007-04-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
135 * README: add license.
136 * Makefile.PL: remove dependency on Sub::Uplevel, make PadWalker
138 * lib/Sepia.pm (who): add optional regex filter.
139 (debug_inspect): fix non-scalar printing.
140 * sepia.el (sepia-dwim): fix staleness; change to find
141 documentation for modules.
142 (sepia-find-module-file): new function to try sepia- and xref-
143 module file-finding functions.
144 (sepia-next): use it.
145 (sepia-filter-by-module,sepia-filter-by-all): remove.
146 (sepia-keymap): use `sepia-dwim' for M-.
148 2007-04-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
150 * lib/Sepia.pm (who): add optional regex argument.
152 2007-03-30 Sean O'Rourke <sorourke@cs.ucsd.edu>
154 * sepia-w3m.el (sepia-module-list, sepia-package-list): added
155 detailed index of installed modules.
158 2007-03-16 Sean O'Rourke <sorourke@cs.ucsd.edu>
160 * sepia.el (sepia-set-found): filter spurious nils (XXX: this
162 (sepia-symbol-info): avoid eldoc errors in ecase.
164 2007-03-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
166 * sepia.el (sepia-complete-symbol): fallback completion of
168 * set COPY_EXTENDED_ATTRIBUTES_DISABLE=true to avoid creating ._*
171 2007-03-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
174 * sepia-ido.el: clean up bitrot.
175 * lib/Sepia.pm (apropos): don't create new stashes during
177 * sepia.el (sepia-show-locations): bind inhibit-read-only; filter
179 * Makefile.PL: require PadWalker 1.0 (RT #25463)
181 2007-03-13 Sean O'Rourke <sorourke@cs.ucsd.edu>
184 * README (TODO): user-defined REPL abbrevs.
185 * lib/Sepia.pm (print_*): optional printing via YAML and
186 Data::Dump (from Shell::Perl).
187 (repl_wantarray): change eval context (same).
188 (repl_format): set formatter (same).
190 2007-03-09 Sean O'Rourke <sorourke@cs.ucsd.edu>
193 * sepia.el (sepia-keymap): add *-apropos, find-tag bindings.
194 * README: add organized function index.
195 * sepia.el (sepia-beginning-of-defun, sepia-end-of-defun):
196 fix argument to be prefix instead of point.
197 * sepia.el: documentation.
198 * sepia-ido.el: documentation.
199 * README: cleanup; note limitation of sepia-bodf and -eodf.
201 2007-02-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
203 * Makefile.PL: add Scalar::Util as prereq.
204 * sepia.el (sepia-perl5lib): new variable holding extra PERL5LIB
206 * sepia.el (sepia-init): use it.
207 * sepia.el (sepia-comint-setup): don't clobber keymap.
208 * sepia.el (sepia-indent-or-complete): complete first time if at
210 * Sepia.pm (completions): enhanced completion -- e.g. "wtf"
211 matches "want_to_feed".
212 * Sepia.pm (printer): special-case PDL to use its stringification
213 (XXX: should test for overloaded "").
214 * Sepia.pm (who,repl_who): new functions.
216 2006-09-29 Sean O'Rourke <sorourke@cs.ucsd.edu>
218 * Sepia.pm (Dump): wrap with eval to prevent unexpected exits.
219 * Sepia.pm (repl_chdir): expand '~' and '$HOME'
221 2006-07-01 Sean O'Rourke <sorourke@cs.ucsd.edu>
223 * Sepia.pm (tolisp): undef -> nil
224 * sepia.el (sepia-eval-raw): guess package.
225 * sepia.el (sepia-init): don't pop-to-buffer with prefix argument.
226 * sepia.el (sepia-beginning-of-defun,sepia-end-of-defun): avoid
228 * sepia.el (sepia-buffer-package): look backward from point
229 instead of forward from point-min.
231 2006-05-24 Sean O'Rourke <sorourke@cs.ucsd.edu>
233 * Makefile.PL: added missing dependencies on PadWalker,
235 * Sepia.pm: improved ",command"
236 * sepia-w3m.el (sepia-w3m-perldoc-this): simplify.
237 * sepia.el (perl-*): rename to sepia-*.
238 * sepia.el: reorg and cleanup.
241 2006-05-19 Sean O'Rourke <sorourke@cs.ucsd.edu>
243 * sepia.el: fixed eldoc support. This only works with CVS Emacs,
244 relying on `eldoc-documentation-function'. Also fixed pod
247 2006-05-18 Sean O'Rourke <sorourke@cs.ucsd.edu>
249 * sepia.el, Sepia.pm: improved bulk-transfer protocol.
250 * Sepia.pm: override die with simple inspector/debugger.
251 * Sepia.pm: $__ and @__ now contain results of the last
253 * sepia.el, Sepia.pm: primitive support for evaluating elisp sent
254 from Perl. Turn on comint-use-prompt-regexp because the fields
255 stuff is flaky with this.
256 * sepia.el, Sepia.pm: ",cd" shortcut coordinates directory with
260 2006-04-14 Sean O'Rourke <sorourke@cs.ucsd.edu>
262 * generic-repl.el: replaced by comint.
263 * all: removed EPL dependency.
266 2005-07-12 Sean O'Rourke <sorourke@cs.ucsd.edu>
268 * sepia-w3m.el: fix function name so it's found.
269 * Xref.pm, Sepia.pm: cleanup and numerous bugfixes.
270 * Buffer.pm: new, but not ready for prime-time
271 * sepia.el: delete-thing-at-point removed; misc bugfixes.
272 * test.pl: disabled a bunch of location stuff.
275 2004-09-10 Sean O'Rourke <sorourke@cs.ucsd.edu>
277 * test.pl: some real tests.
278 * Sepia.pm, Xref.pm: Separate simple symbol-table searching from
279 Xref, making the former more reliable.
280 * Xref.pm: More reliable detection of (class) method calls.
281 * sepia.el: results are not displayed for expressions ending in
284 2004-04-12 Sean O'Rourke <seano@cs.ucsd.edu>
286 * sepia.el (sepia-doc-scan-buffer): Make regular expressions a
288 (sepia-ident-at-point): handle upper-case function and variable
289 names for completion (a bit hacky...).
290 (sepia-install-keys): fix keymap installation.
292 2004-04-11 Sean O'Rourke <seano@cs.ucsd.edu>
294 * Xref.pm (guess_module_file): do like Module::Info and trust
295 %INC more than our Xref info. But don't be _too_ smart about
296 this -- we were picking up lots of bogus exports.
297 (pp_method_named): add support for constant-named methods (cribbed
300 2004-04-10 Sean O'Rourke <seano@cs.ucsd.edu>
302 * Xref.pm: update $VERSION to track Sepia release.
304 * sepia.el (sepia-indent-or-complete): only complete on the
307 2004-04-09 Sean O'Rourke <seano@cs.ucsd.edu>
309 * sepia.el (sepia-refiner): tweak refining function a bit more.
310 I'm still not entirely happy with this, but it's getting better.
311 Time and experimentation are required.
313 * sepia-tree.el (sepia-calle[er]-tree): New file. Use
314 caller/callee information to generate tree-view using David
315 Ponce's wonderful tree-widget.
317 * Xref.pm (_apropos_re): Add that Emacs-style multipart-word
318 completion, so e.g. D:v_d -> Devel::Xref::var_defs. It's groovy,
320 (%firstline): gone. Just getting a line within the sub is good
321 enough -- we can fix it on the Emacs side of the fence later.
323 2004-04-08 Sean O'Rourke <seano@cs.ucsd.edu>
325 * sepia-w3m.el (sepia-w3m-perldoc-this): work for functions as
326 well as modules, and try to go to correct position in manpage.
328 * sepia.el (sepia-eval-buffer): use 'BEGIN{ die }' to do Xrefs
329 for scripts without loading them.
331 * Xref.pm: Localize a bunch of things instead of stomping on
332 package lexicals. This makes the module better handle repeated
333 use, for which it wasn't designed.
335 * Xref.pm (mod_subs): Rename package_subs for consistency.
336 (mod_decls): New function to generate decls for evaluation.
338 * sepia.el: misc bug-fixes, and better support for redefining
339 functions with sepia-eval-defun, especially preserving files and
341 (sepia-eval): remove newlines to make line-numbers make more
343 (sepia-interactive-arg): delay reading completions to speed up
345 (sepia-refiner): search both forward and backward, to adjust for
346 e.g. adding comments. Still not so good, but better.
348 2004-04-06 Sean O'Rourke <seano@cs.ucsd.edu>
350 * sepia-w3m.el: moved w3m-perldoc support here.
352 * README: added description, removed disclaimer
354 * sepia.el (sepia-symbol-info, sepia-doc-update): POD scanning
355 and cperl hackage for eldoc support.
357 2004-04-05 Sean O'Rourke <seano@cs.ucsd.edu>
359 * Xref.pm (redefined,forget): make them take a single sub at a
360 time, and pay attention to packages.
361 (_apropos): use package info to narrow choices.
363 * sepia.el (sepia-eval-defun,sepia-eval-buffer): new functions.
365 * test.pl: satisfy the cpants Fascists.
367 * Xref.pm (use_type): try to be smarter about when something's
368 being assigned to, vs. merely used as a reference.
370 * sepia.el (sepia-repl-header): keep up with generic-repl by
371 doing header line, working dir.
372 (sepia-complete-symbol): stupid bug with modules.
373 (sepia-install-keys): new function.
374 (sepia-var-assigns): assignments are more useful than defs.
375 (sepia-init): start REPL by default.
377 * generic-repl.el (repl-cd,repl-set-header): "new" function from
378 Slime to track working dir, update header line.
380 2004-04-04 Sean O'Rourke <seano@cs.ucsd.edu>
382 * Sepia.jpg: don't ask -- just look.
384 * sepia.el (sepia-ident-at-point): fixed bug with sigils.
385 (sepia-complete-symbol): fixed bug with undefined function
387 Always use Data::Dumper.
389 * any-repl.el: new file implementing REPL, basically stolen from
392 * pscope.el: renamed to sepia.el to go with name change.
394 2004-04-03 Sean O'Rourke <seano@cs.ucsd.edu>
396 * pscope.el (pscope-set-found): remove locations with no
397 file in package "main", which were causing errors before.
398 (pscope-dwim): new function. New functions
399 pscope-complete-symbol and pscope-indent-or-complete for
400 symbol completion. Not well-tested, but they seem to work.
401 The most annoying thing is that since the Xref db isn't
402 automatically updated, it won't always know as much as you
404 (pscope-load-file): new function.
406 * Xref.pm: update export lists to reflect new functions.
408 2004-04-02 Sean O'Rourke <seano@cs.ucsd.edu>
410 * Xref.pm: minor cleanup.
412 * pscope.el: pass module, file, line to Perl side (where it's
413 ignored for now); fix line number refinement to be a
414 little less over-eager; fix pscope-callees to go to sub
415 definitions instead of call sites.
417 * README: added TODO section.