version 0.93
[sepia.git] / ChangeLog
blob4489a725295caaa41b54350b9f974e261226604e
1 2007-10-16  Sean O'Rourke  <seano@cs.ucla.edu>
3         * VERSION: 0.93
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
49         things that found.
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>
81         * VERSION: 0.92
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
92           test".
94 2007-06-05  Sean O'Rourke  <sorourke@cs.ucsd.edu>
96         * Sepia.html: generate single-page manual instead of split.
97         * VERSION: 0.90
98         * sepia.el: docstring cleanup.
99         * lib/sepia/Debug.pm: misc usability improvements
101 2007-06-04  Sean O'Rourke  <sorourke@cs.ucsd.edu>
103         * VERSION 0.90_02
104         * test.pl: disable Module::Info tests to avoid Module::Info bug.
106 2007-06-02  Sean O'Rourke  <sorourke@cs.ucsd.edu>
108         * VERSION 0.90_01
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.
123         * lib/Sepia.pm: 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.
137         Good citizenship:
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.
146         make w3m optional:
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>
157         * VERSION: 0.75+
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 '$'
164         starts a word.
165         * lib/Sepia.pm (printer): Use @::__; distinguish "last as scalar"
166           $__ from printed representation.
167         ($PRINT_PRETTY): columnate lists if this is on.
168         (columnate): fixed.
169         (repl_methods): add regex argument.
170         (repl_who): fix.
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>
179         * VERSION: 0.74
180         * sepia.el (sepia-doc-scan-buffer): Better doc regex for
181           variables.
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
186           Hilko Bengen.
187         * lib/Sepia.pm (html_package_list,html_module_list): new
188           functions.
189         (completions): '$'-completion only generates scalars.
190         * sepia-w3m.el: remove spurious sepia-module-list, improve
191           documentation.
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
195           out.
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.
215         (repl): add banner.
217 2007-05-12  Sean O'Rourke  <sorourke@cs.ucsd.edu>
219         * VERSION: 0.72
220         * Makefile.PL: add license.
222 2007-05-09  Sean O'Rourke  <sorourke@cs.ucsd.edu>
224         * VERSION: 0.71
225         * sepia.el (sepia-load-file): set inhibit-read-only when
226           displaying errors.
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
230         easier extension.
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>
242         * VERSION: 0.70
243         * README: add license.
244         * Makefile.PL: remove dependency on Sub::Uplevel, make PadWalker
245           optional.
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.
264         * VERSION: 0.68
266 2007-03-16  Sean O'Rourke  <sorourke@cs.ucsd.edu>
268         * sepia.el (sepia-set-found): filter spurious nils (XXX: this
269           really needs a fix).
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
275           builtins.
276         * set COPY_EXTENDED_ATTRIBUTES_DISABLE=true to avoid creating ._*
277           files (RT #25490).
279 2007-03-15  Sean O'Rourke  <sorourke@cs.ucsd.edu>
281         * VERSION: 0.67
282         * sepia-ido.el: clean up bitrot.
283         * lib/Sepia.pm (apropos): don't create new stashes during
284           completion.
285         * sepia.el (sepia-show-locations): bind inhibit-read-only; filter
286           out mysterious NILs.
287         * Makefile.PL: require PadWalker 1.0 (RT #25463)
289 2007-03-13  Sean O'Rourke  <sorourke@cs.ucsd.edu>
291         * VERSION: 0.66
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>
300         * VERSION: 0.65
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
313           entry.
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
317           end of word.
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
335           recursion.
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,
342           Sub::Uplevel.
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.
347         * VERSION: 0.63
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
353           scanning for eldoc.
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
360           expression.
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
365           Emacs.
366         * VERSION 0.61, 0.62
368 2006-04-14  Sean O'Rourke  <sorourke@cs.ucsd.edu>
370         * generic-repl.el: replaced by comint.
371         * all: removed EPL dependency.
372         * VERSION 0.59
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.
381         * VERSION 0.58
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
390           ';' (c.f. Octave).
392 2004-04-12  Sean O'Rourke  <seano@cs.ucsd.edu>
394         * sepia.el (sepia-doc-scan-buffer): Make regular expressions a
395         bit better.
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
406         from B::Concise).
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
413         second TAB.
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,
427         man.
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
448         line numbers.
449         (sepia-eval): remove newlines to make line-numbers make more
450         sense to user.
451         (sepia-interactive-arg): delay reading completions to speed up
452         \M-. functions.
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
494         sepia-end-of-word.
495         Always use Data::Dumper.
497         * any-repl.el: new file implementing REPL, basically stolen from
498         Slime.
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
511         expect.
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.