1 2007-10-16 Sean O'Rourke <seano@cs.ucla.edu>
5 * lib/Sepia.pm (repl_pwd): add ",pwd" shortcut.
6 (repl_who): use current package when only regex given.
8 * sepia.el (sepia-repl,sepia-ensure-process): add remote
9 connection with attachtty.
10 (sepia-shared-map): bind \C-c\C-e to eval-expression.
11 (sepia-symbol-info): be more selective about "core version".
13 2007-09-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
15 * lib/Sepia.pm (printer): remove "=>" -- it's annoying.
17 2007-09-21 Sean O'Rourke <sorourke@cs.ucsd.edu>
19 * sepia.el (sepia-load-file): disable debugger.
20 (sepia-symbol-info): be pickier about module core versions.
22 2007-09-20 Sean O'Rourke <sorourke@cs.ucsd.edu>
24 * lib/Sepia.pm (repl_who): use current package if only one arg
25 given, and it's not an existing package.
27 2007-09-18 Sean O'Rourke <sorourke@cs.ucsd.edu>
29 * sepia.el (sepia-watch-for-eval): fix hang with recursive sepia-eval.
31 2007-07-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
33 * sepia.el (sepia-interactive-arg): use xref-completions rather
34 than xref-apropos for working completion.
36 2007-07-25 Ye Wenbin <wenbinye@gmail.com>
38 * sepia.el (sepia-defun-around-point): change the command to a
39 function, because as a command it does nothing.
40 (define-modinfo-function, sepia-maybe-echo): the interactive-p
41 is not true when call as function.
42 (define-modinfo-function, sepia-init): some modinfo-function
43 should eval in a list-context.
44 (sepia-mode): use cperl-mode-abbrev-table as current local-abbrev-table
46 2007-07-24 Ye Wenbin <wenbinye@gmail.com>
48 * sepia.el (sepia-set-found): Use (OFFSET . LIST) to represent
50 (sepia-next, sepia-previous): more generic move commands
51 (sepia-refiner): remove the test, because sometimes use the
52 same declaration, but found in difference place.
54 * sepia-tree.el (sepia-tree-button-cb): widget => pw and
55 xref-location return a list of posible locations.
56 (sepia-tree-tidy-buffer, sepia-tree-use-image): Let user
57 to choose whether use image or not. Set it to a buffer-local
58 variable, so that it didn't interference global values.
60 * sepia.el (sepia-extract-def): seem an argument is excessive
62 * sepia-tree.el (sepia-build-tree-buffer): In my emacs, it
63 doesn't work. The :dynargs didn't become the tree-widget
64 :expander. The tree-widget-convert-widget only receive the
65 'tree-widget, not the total list.
66 sepia-install-keys not defined.
68 * lib/Sepia/Xref.pm (file_modules): seem it is a typo error to use
69 Module::Include rather than Module::Info.
70 Module::Info::packages_inside return an array, the operator
71 || will force in a scalar context.
73 * sepia.el (sepia-lisp-to-perl): use "'" to quote string is not
74 enough, because the string may also contain "'" inside.
75 use (format "%S" string) instead.
76 (define-sepia-query): `sepia-set-found' accept a symbol as
77 argument, not (quote symbol).
79 2007-06-09 Sean O'Rourke <sorourke@cs.ucsd.edu>
82 * sepia.el (sepia-shared-map, etc.): fix keymap initialization.
84 2007-06-06 Sean O'Rourke <sorourke@cs.ucsd.edu>
86 * lib/Sepia/Debug.pm: eval in lexical env when in debugger.
87 * t/50expect.t: REPL tests if you have Test::Expect.
88 * lib/Sepia/Debug.pm: use correct level when none given.
89 * lib/Sepia.pm: No longer bring in exporter (why did we?).
90 * sepia.el (sepia-init): always reinitialize sepia-mode-map.
91 * Makefile.PL: require 5.006 for warnings to quiet stupid "make
94 2007-06-05 Sean O'Rourke <sorourke@cs.ucsd.edu>
96 * Sepia.html: generate single-page manual instead of split.
98 * sepia.el: docstring cleanup.
99 * lib/sepia/Debug.pm: misc usability improvements
101 2007-06-04 Sean O'Rourke <sorourke@cs.ucsd.edu>
104 * test.pl: disable Module::Info tests to avoid Module::Info bug.
106 2007-06-02 Sean O'Rourke <sorourke@cs.ucsd.edu>
109 * Major: replaced comint- with gud-based REPL, use real debugger.
110 * lib/Sepia/Debug.pm: "perl -d" support.
111 * lib/Sepia.pm (repl_shell): new command.
112 * sepia.el (sepia-eval-defun): detect errors, jump to first.
113 (sepia-comint-setup): don't set comint-use-prompt-regexp
114 (sepia-eval-defun,sepia-beginning-of-defun,sepia-end-of-defun): fix
116 2007-06-01 Sean O'Rourke <sorourke@cs.ucsd.edu>
118 * sepia.el (sepia-perldoc-this): don't mess up window
119 configuration when the page isn't found.
120 (sepia-location): use sepia-interactive-arg.
121 (sepia-perl-[np]e-region): fix.
124 (print_dumper): switch format based on size.
126 2007-05-30 Sean O'Rourke <sorourke@cs.ucsd.edu>
127 * sepia.texi: shiny new manual.
128 * lib/Sepia.pm (completions): add special 'VARIABLE' type.
129 (methods): add second $qualified arg.
130 (repl_reload): new function.
131 (sig_warn,repl): override __WARN__ (and __DIE__) cautiously.
132 (repl): nicer warning format.
134 * sepia.el (sepia-eval-raw): stopwarn -> STOPWARN.
135 (sepia-load-file): Fix pop-up error buffer.
136 (sepia-lisp-to-perl): fix quoting of strings.
138 (sepia-mode): make a real major mode.
139 (sepia-scratchpad-mode): ditto.
141 2007-05-29 Sean O'Rourke <sorourke@cs.ucsd.edu>
143 * lib/sepia/Xref.pm (pp_method_named): warn -> dprint.
144 * sepia.el (sepia-simple-method-before-point): new function.
145 (sepia-complete-symbol): use it to complete methods.
147 (sepia-perldoc-function,sepia-view-pod-function,
148 sepia-module-list-function): new variables.
149 (sepia-perldoc-this,sepia-view-pod): new functions.
150 * lib/Sepia.pm (repl): trim leading spaces.
151 (tolisp): escape metacharacters.
152 (repl): don't override "die" if someone has installed a
153 $SIG{__DIE__} handler
155 2007-05-28 Sean O'Rourke <sorourke@cs.ucsd.edu>
158 * sepia.el (sepia-core-version): new function.
159 (sepia-indent-or-complete): fix abbrev expansion.
160 (sepia-symbol-info): report core version in eldoc.
161 (sepia-ident-before-point): new function.
162 (sepia-complete-symbol): use it instead of *-at-point.
163 (sepia-complete-symbol): complete arrays and hashes when '$'
165 * lib/Sepia.pm (printer): Use @::__; distinguish "last as scalar"
166 $__ from printed representation.
167 ($PRINT_PRETTY): columnate lists if this is on.
169 (repl_methods): add regex argument.
171 (completions): Add in package names.
173 2007-05-27 Sean O'Rourke <sorourke@cs.ucsd.edu>
175 * lib/Sepia.pm (repl_methods): fixed.
177 2007-05-26 Sean O'Rourke <sorourke@cs.ucsd.edu>
180 * sepia.el (sepia-doc-scan-buffer): Better doc regex for
182 (sepia-indent-or-complete): try to expand abbrevs before
183 completion (try with snippet.el).
184 (sepia-indent-expand-abbrev): control the above feature.
185 (sepia-complete-symbol): scroll completion buffer; suggested by
187 * lib/Sepia.pm (html_package_list,html_module_list): new
189 (completions): '$'-completion only generates scalars.
190 * sepia-w3m.el: remove spurious sepia-module-list, improve
192 (sepia-module-list,sepia-package-list): better output.
193 (sepia-package-list,sepia-module-list): move Perl code to
194 Sepia.pm, generate list in inferior perl instead of shelling
197 2007-05-23 Sean O'Rourke <sorourke@cs.ucsd.edu>
199 * lib/Sepia.pm (_apropos_re): handle empty completions.
200 (columnate): pretty-print ",who" output.
201 * sepia.el (sepia-complete-symbol): bury stale completions buffer;
202 suggested by Hilko Bengen.
204 2007-05-17 Sean O'Rourke <sorourke@cs.ucsd.edu>
206 * lib/Sepia.pm (_completions1): Fix infinite recursion.
207 (repl): typo; clarify ambiguous vs. unrecognized shortcuts.
209 2007-05-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
211 * sepia.el (sepia-dwim): don't try to jump to location when
212 looking up module docs.
213 * lib/Sepia.pm: use $::__ instead of $Sepia::__
214 (repl_quit): new command.
217 2007-05-12 Sean O'Rourke <sorourke@cs.ucsd.edu>
220 * Makefile.PL: add license.
222 2007-05-09 Sean O'Rourke <sorourke@cs.ucsd.edu>
225 * sepia.el (sepia-load-file): set inhibit-read-only when
227 * lib/Sepia.pm (repl_methods): walk ISA hierarchy looking for
228 functions (XXX: this is much too coarse).
229 (repl_help): use %REPL_DOC to hold command documentation for
231 (repl): display error on canceled continued statement.
233 2007-05-07 Sean O'Rourke <sorourke@cs.ucsd.edu>
235 * lib/Sepia.pm (repl_strict): add 'strict mode' (thanks to
236 Lexical::Persistence) for those who swing that way (I don't),
237 inspired by Devel::REPL.
238 (repl_wantarray): Fix logic.
240 2007-04-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
243 * README: add license.
244 * Makefile.PL: remove dependency on Sub::Uplevel, make PadWalker
246 * lib/Sepia.pm (who): add optional regex filter.
247 (debug_inspect): fix non-scalar printing.
248 * sepia.el (sepia-dwim): fix staleness; change to find
249 documentation for modules.
250 (sepia-find-module-file): new function to try sepia- and xref-
251 module file-finding functions.
252 (sepia-next): use it.
253 (sepia-filter-by-module,sepia-filter-by-all): remove.
254 (sepia-keymap): use `sepia-dwim' for M-.
256 2007-04-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
258 * lib/Sepia.pm (who): add optional regex argument.
260 2007-03-30 Sean O'Rourke <sorourke@cs.ucsd.edu>
262 * sepia-w3m.el (sepia-module-list, sepia-package-list): added
263 detailed index of installed modules.
266 2007-03-16 Sean O'Rourke <sorourke@cs.ucsd.edu>
268 * sepia.el (sepia-set-found): filter spurious nils (XXX: this
270 (sepia-symbol-info): avoid eldoc errors in ecase.
272 2007-03-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
274 * sepia.el (sepia-complete-symbol): fallback completion of
276 * set COPY_EXTENDED_ATTRIBUTES_DISABLE=true to avoid creating ._*
279 2007-03-15 Sean O'Rourke <sorourke@cs.ucsd.edu>
282 * sepia-ido.el: clean up bitrot.
283 * lib/Sepia.pm (apropos): don't create new stashes during
285 * sepia.el (sepia-show-locations): bind inhibit-read-only; filter
287 * Makefile.PL: require PadWalker 1.0 (RT #25463)
289 2007-03-13 Sean O'Rourke <sorourke@cs.ucsd.edu>
292 * README (TODO): user-defined REPL abbrevs.
293 * lib/Sepia.pm (print_*): optional printing via YAML and
294 Data::Dump (from Shell::Perl).
295 (repl_wantarray): change eval context (same).
296 (repl_format): set formatter (same).
298 2007-03-09 Sean O'Rourke <sorourke@cs.ucsd.edu>
301 * sepia.el (sepia-keymap): add *-apropos, find-tag bindings.
302 * README: add organized function index.
303 * sepia.el (sepia-beginning-of-defun, sepia-end-of-defun):
304 fix argument to be prefix instead of point.
305 * sepia.el: documentation.
306 * sepia-ido.el: documentation.
307 * README: cleanup; note limitation of sepia-bodf and -eodf.
309 2007-02-25 Sean O'Rourke <sorourke@cs.ucsd.edu>
311 * Makefile.PL: add Scalar::Util as prereq.
312 * sepia.el (sepia-perl5lib): new variable holding extra PERL5LIB
314 * sepia.el (sepia-init): use it.
315 * sepia.el (sepia-comint-setup): don't clobber keymap.
316 * sepia.el (sepia-indent-or-complete): complete first time if at
318 * Sepia.pm (completions): enhanced completion -- e.g. "wtf"
319 matches "want_to_feed".
320 * Sepia.pm (printer): special-case PDL to use its stringification
321 (XXX: should test for overloaded "").
322 * Sepia.pm (who,repl_who): new functions.
324 2006-09-29 Sean O'Rourke <sorourke@cs.ucsd.edu>
326 * Sepia.pm (Dump): wrap with eval to prevent unexpected exits.
327 * Sepia.pm (repl_chdir): expand '~' and '$HOME'
329 2006-07-01 Sean O'Rourke <sorourke@cs.ucsd.edu>
331 * Sepia.pm (tolisp): undef -> nil
332 * sepia.el (sepia-eval-raw): guess package.
333 * sepia.el (sepia-init): don't pop-to-buffer with prefix argument.
334 * sepia.el (sepia-beginning-of-defun,sepia-end-of-defun): avoid
336 * sepia.el (sepia-buffer-package): look backward from point
337 instead of forward from point-min.
339 2006-05-24 Sean O'Rourke <sorourke@cs.ucsd.edu>
341 * Makefile.PL: added missing dependencies on PadWalker,
343 * Sepia.pm: improved ",command"
344 * sepia-w3m.el (sepia-w3m-perldoc-this): simplify.
345 * sepia.el (perl-*): rename to sepia-*.
346 * sepia.el: reorg and cleanup.
349 2006-05-19 Sean O'Rourke <sorourke@cs.ucsd.edu>
351 * sepia.el: fixed eldoc support. This only works with CVS Emacs,
352 relying on `eldoc-documentation-function'. Also fixed pod
355 2006-05-18 Sean O'Rourke <sorourke@cs.ucsd.edu>
357 * sepia.el, Sepia.pm: improved bulk-transfer protocol.
358 * Sepia.pm: override die with simple inspector/debugger.
359 * Sepia.pm: $__ and @__ now contain results of the last
361 * sepia.el, Sepia.pm: primitive support for evaluating elisp sent
362 from Perl. Turn on comint-use-prompt-regexp because the fields
363 stuff is flaky with this.
364 * sepia.el, Sepia.pm: ",cd" shortcut coordinates directory with
368 2006-04-14 Sean O'Rourke <sorourke@cs.ucsd.edu>
370 * generic-repl.el: replaced by comint.
371 * all: removed EPL dependency.
374 2005-07-12 Sean O'Rourke <sorourke@cs.ucsd.edu>
376 * sepia-w3m.el: fix function name so it's found.
377 * Xref.pm, Sepia.pm: cleanup and numerous bugfixes.
378 * Buffer.pm: new, but not ready for prime-time
379 * sepia.el: delete-thing-at-point removed; misc bugfixes.
380 * test.pl: disabled a bunch of location stuff.
383 2004-09-10 Sean O'Rourke <sorourke@cs.ucsd.edu>
385 * test.pl: some real tests.
386 * Sepia.pm, Xref.pm: Separate simple symbol-table searching from
387 Xref, making the former more reliable.
388 * Xref.pm: More reliable detection of (class) method calls.
389 * sepia.el: results are not displayed for expressions ending in
392 2004-04-12 Sean O'Rourke <seano@cs.ucsd.edu>
394 * sepia.el (sepia-doc-scan-buffer): Make regular expressions a
396 (sepia-ident-at-point): handle upper-case function and variable
397 names for completion (a bit hacky...).
398 (sepia-install-keys): fix keymap installation.
400 2004-04-11 Sean O'Rourke <seano@cs.ucsd.edu>
402 * Xref.pm (guess_module_file): do like Module::Info and trust
403 %INC more than our Xref info. But don't be _too_ smart about
404 this -- we were picking up lots of bogus exports.
405 (pp_method_named): add support for constant-named methods (cribbed
408 2004-04-10 Sean O'Rourke <seano@cs.ucsd.edu>
410 * Xref.pm: update $VERSION to track Sepia release.
412 * sepia.el (sepia-indent-or-complete): only complete on the
415 2004-04-09 Sean O'Rourke <seano@cs.ucsd.edu>
417 * sepia.el (sepia-refiner): tweak refining function a bit more.
418 I'm still not entirely happy with this, but it's getting better.
419 Time and experimentation are required.
421 * sepia-tree.el (sepia-calle[er]-tree): New file. Use
422 caller/callee information to generate tree-view using David
423 Ponce's wonderful tree-widget.
425 * Xref.pm (_apropos_re): Add that Emacs-style multipart-word
426 completion, so e.g. D:v_d -> Devel::Xref::var_defs. It's groovy,
428 (%firstline): gone. Just getting a line within the sub is good
429 enough -- we can fix it on the Emacs side of the fence later.
431 2004-04-08 Sean O'Rourke <seano@cs.ucsd.edu>
433 * sepia-w3m.el (sepia-w3m-perldoc-this): work for functions as
434 well as modules, and try to go to correct position in manpage.
436 * sepia.el (sepia-eval-buffer): use 'BEGIN{ die }' to do Xrefs
437 for scripts without loading them.
439 * Xref.pm: Localize a bunch of things instead of stomping on
440 package lexicals. This makes the module better handle repeated
441 use, for which it wasn't designed.
443 * Xref.pm (mod_subs): Rename package_subs for consistency.
444 (mod_decls): New function to generate decls for evaluation.
446 * sepia.el: misc bug-fixes, and better support for redefining
447 functions with sepia-eval-defun, especially preserving files and
449 (sepia-eval): remove newlines to make line-numbers make more
451 (sepia-interactive-arg): delay reading completions to speed up
453 (sepia-refiner): search both forward and backward, to adjust for
454 e.g. adding comments. Still not so good, but better.
456 2004-04-06 Sean O'Rourke <seano@cs.ucsd.edu>
458 * sepia-w3m.el: moved w3m-perldoc support here.
460 * README: added description, removed disclaimer
462 * sepia.el (sepia-symbol-info, sepia-doc-update): POD scanning
463 and cperl hackage for eldoc support.
465 2004-04-05 Sean O'Rourke <seano@cs.ucsd.edu>
467 * Xref.pm (redefined,forget): make them take a single sub at a
468 time, and pay attention to packages.
469 (_apropos): use package info to narrow choices.
471 * sepia.el (sepia-eval-defun,sepia-eval-buffer): new functions.
473 * test.pl: satisfy the cpants Fascists.
475 * Xref.pm (use_type): try to be smarter about when something's
476 being assigned to, vs. merely used as a reference.
478 * sepia.el (sepia-repl-header): keep up with generic-repl by
479 doing header line, working dir.
480 (sepia-complete-symbol): stupid bug with modules.
481 (sepia-install-keys): new function.
482 (sepia-var-assigns): assignments are more useful than defs.
483 (sepia-init): start REPL by default.
485 * generic-repl.el (repl-cd,repl-set-header): "new" function from
486 Slime to track working dir, update header line.
488 2004-04-04 Sean O'Rourke <seano@cs.ucsd.edu>
490 * Sepia.jpg: don't ask -- just look.
492 * sepia.el (sepia-ident-at-point): fixed bug with sigils.
493 (sepia-complete-symbol): fixed bug with undefined function
495 Always use Data::Dumper.
497 * any-repl.el: new file implementing REPL, basically stolen from
500 * pscope.el: renamed to sepia.el to go with name change.
502 2004-04-03 Sean O'Rourke <seano@cs.ucsd.edu>
504 * pscope.el (pscope-set-found): remove locations with no
505 file in package "main", which were causing errors before.
506 (pscope-dwim): new function. New functions
507 pscope-complete-symbol and pscope-indent-or-complete for
508 symbol completion. Not well-tested, but they seem to work.
509 The most annoying thing is that since the Xref db isn't
510 automatically updated, it won't always know as much as you
512 (pscope-load-file): new function.
514 * Xref.pm: update export lists to reflect new functions.
516 2004-04-02 Sean O'Rourke <seano@cs.ucsd.edu>
518 * Xref.pm: minor cleanup.
520 * pscope.el: pass module, file, line to Perl side (where it's
521 ignored for now); fix line number refinement to be a
522 little less over-eager; fix pscope-callees to go to sub
523 definitions instead of call sites.
525 * README: added TODO section.