Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
slime-fancy-trace.el: New contrib.
* slime-parse.el (slime-parse-form-upto-point): Fix lp#627308. * slime-autodoc.el (slime-canonicalize-whitespace): New helper. Extracted out of `slime-format-autodoc'. (slime-autodoc-to-string): New helper. (slime-check-autodoc-at-point): Use it. (autodoc.1): Add test case for above fix.
* slime.el (slime-current-tlf-number,slime-current-form-path): Moved to contrib/slime-parse.el.
Call provide at the end of the file. * slime-c-p-c.el slime-fancy-inspector.el slime-fancy.el slime-fontifying-fu.el slime-fuzzy.el slime-package-fu.el slime-parse.el slime-presentations.el slime-references.el slime-repl.el slime-scratch.el:
Move wacky parsing code to contrib. * slime.el (slime-extract-context, slime-parse-context) (slime-in-expression-p, slime-pattern-path) (slime-beginning-of-list, slime-end-of-list) (slime-parse-toplevel-form, slime-arglist-specializers) (slime-definition-at-point, slime-current-parser-state): Moved to contrib/slime-parse.el (slime-inspect-definition, slime-disassemble-definition): Moved to contrib/slime-fancy-inspector.el
* slime.el (define-slime-contrib): New macro. * slime-autodoc.el, slime-c-p-c.el, slime-compiler-notes-tree.el, slime-enclosing-context.el, slime-fancy.el, slime-fuzzy.el, slime-hyperdoc.el, slime-mdot-fu.el, slime-mrepl.el, slime-parse.el, slime-presentations.el, slime-repl.el, slime-snapshot.el, slime-tramp.el, slime-xref-browser.el: Use newly added `define-slime-contrib' macro to specify slime and swank dependencies, and to specify what should happen on contrib load/unload.
* slime-parse.el (slime-parse-form-until): Properly deal with #' prefix. (form-up-to-point.1 [test]): Extend.
* slime-parse.el (form-up-to-point.1 [test]): Fix test case.
Today's cleanup day. * slime-parse.el (slime-incomplete-form-at-point) (slime-parse-sexp-at-point) (slime-has-symbol-syntax-p) (slime-incomplete-sexp-at-point) (slime-parse-extended-operator-name) (slime-extended-operator-name-parser-alist) (slime-make-extended-operator-parser/look-ahead) (slime-parse-extended-operator/proclaim) (slime-parse-extended-operator/declare) (slime-parse-extended-operator/check-type) (slime-parse-extended-operator/the) (slime-nesting-until-point) (slime-make-form-spec-from-string) (slime-enclosing-form-specs) (slime-ensure-list) (slime-beginning-of-string) (slime-check-enclosing-form-specs) (enclosing-form-specs.1 [test]): Deleted. The new arglist code made all this superfluous. * slime-autodoc.el (slime-autodoc-accuracy-depth): New defcustom. (slime-retrieve-arglist): Return :not-available if appropriate. (slime-arglist): Use `slime-retrieve-arglist'. Delete reference to undefined variable. (slime-autodoc-thing-at-point): Deleted, not needed anymore. (slime-autodoc-hook): Deleted. (slime-autodoc-worthwhile-p): Deleted. (slime-make-autodoc-rpc-form): Simplified. (slime-compute-autodoc-internal): Merged with `slime-compute-autodoc'. (slime-compute-autodoc): Removed usage of old infrastructure. Simplified. * swank-arglists.lisp (print-decoded-arglist): Print ((:foo bar) quux) &key parameters correctly. (variable-desc-for-echo-area): Return :not-available, not nil. * slime-c-p-c.el (slime-complete-symbol*-fancy-bit): Adapted for new return value of `slime-retrieve-arglist'. * slime-fancy.el: Disable `slime-mdot-fu' contrib because that has to be adapted to new infrastructure. * slime-sbcl-exts.el (slime-enable-autodoc-for-sb-assem:inst): Deleted. Used old infrastructure.
* slime-parse.el (slime-parse-form-upto-point): Rewritten to make it more performant. (slime-parse-form-until): New helper.
* slime.el (slime-at-list-p): Deleted. (slime-at-expression-p): Moved to slime-package-fu. (slime-forward-blanks): Deleted. Use `(skip-chars-forward "[:space:]")' instead. (slime-forward-any-comment): Deleted. (slime-reader-conditionals-regexp): Make a constant so it's inlined. (slime-unknown-feature-expression): Make it an error. * slime-package-fu.el (slime-at-expression-p): Moved from slime.el. (slime-goto-next-export-clause): Replace `slime-forward-blanks'. * slime-parse.el (slime-parse-sexp-at-point) (slime-parse-extended-operator-name): Replace `slime-forward-blanks'.
Fix a few edge cases in new arglist code. * slime-parse.el (slime-parse-form-upto-point): Regard beginning-of-line as whitespace, and DTRT. * swank-arglists.lisp (empty-arg-p): Input may not only be an arglist-dummy. (print-decoded-arglist-as-template): Do not print superfluuous newline before &body. (arglist-for-echo-area): Catch errors. (find-subform-with-arglist): Deal properly with NIL as argument. (find-immediately-containing-arglist): Do not erroneously complete form with an unsuited arglist of the parent form. (last-arg): New helper. (arglist-path-to-nested-arglist): Use it. Reported by Ariel Badichi.
* slime-fontifying-fu.el (slime-compute-region-for-font-lock): Set an upper limit for the starting point of searching for suppressed forms. * slime-parse.el (slime-make-form-spec-from-string): Minor optimizations. (slime-parse-form-upto-point): Refactored to not use `reduce' but bultins. (slime-make-form-spec-from-string, slime-parse-form-upto-point) (slime-compare-char-syntax): Byte-compile.
* slime-parse.el (slime-make-form-spec-from-string): Break out of the loop if we're at unbalanced parentheses. (slime-compare-character-syntax): New helper. (slime-parse-form-upto-point): Use it. (slime-incomplete-form-at-point): Revert change. ([test] form-upto-point.1): New test case.
* contrib/slime-parse.el (slime-incomplete-form-at-point): Concatenate " )" not just ")", because the form's last char may be \, and the parenthesis will be escaped. That fixes a bug reported by Ariel Badichi.
* slime.el (slime-inside-string-p, slime-inside-comment-p) (slime-inside-string-or-comment-p): New. * swank-match.lisp: New file. Contains very simple pattern matcher from the CMU AI archive. * swank-loader.lisp: Compile swank-match.lisp. * swank.lisp: Make SWANK package use new SWANK-MATCH package. * slime-autodoc.el, swank-arglists.lisp: Large parts were rewritten. Autodoc is now able to highlight &key parameters, and parameters in nested arglists. * slime-parse.el, slime-c-p-c.el, slime-highlighting-edits.el: Adapted to changes.
* contrib/slime-parse.el (slime-parse-sexp-at-point): Remove unused flet. Check for existence of a sexp before trying to parse, not after.
* slime-parse.el (slime-make-form-spec-from-string): Set syntax table to lisp-mode-syntax-table in a temporary buffer. Necessary for some parsing functions to work correctly.
* slime-parse.el (slime-parse-extended-operator/check-type): Forgot to delete debugging code.
* slime.el (slime-parse-extended-operator/check-type): New. (slime-parse-extended-operator/the): New. (slime-extended-operator-name-parser-alist): Add entries for CHECK-TYPE, TYPEP, and THE. ([tesŧ] enclosing-form-specs.1): Add tests for the new entries.
* slime-parse.el (slime-parse-extended-operator/proclaim): New. (slime-extended-oprator-name-parser-alist): Adapt tbe entry for PROCLAIM.
* slime-parse.el (slime-check-enclosing-form-specs): Use `slime-test-expect' rather than `slime-check'. ([test] enclosing-form-specs.1): Add two more cases.
* slime.el: Rename `slime-symbol-name-at-point' to `slime-symbol-at-point'. * slime-autodoc.el, slime-c-p-c.el, slime-enclosing-context.el * slime-package-fu.el, slime-parse.el, slime-presentations.el * slime-xref-browser: Rename `slime-symbol-name-at-point' to `slime-symbol-at-point'
* slime-parse.el (slime-make-extended-operator-parser/look-ahead): If there's no closing paren (no paredit!) we cannot determine the end of the list. Check for this. ([test] enclosing-form-specs.1): Extend test case. (slime-check-enclosing-form-specs): New helper.
* slime-parse.el (slime-parse-symbol-name-at-point): Removed. Superfluous due to recent changes on `slime-symbol-name-at-point'. (slime-parse-sexp-at-point): Simplified; use `slime-sexp-at-point'. (slime-inside-string-p, slime-beginning-of-string): Use `slime-current-parser-state'. ([test] enclosing-form-specs.1): Add some simple cases. * slime-enclosing-context.el (slime-find-bound-names): Replace `slime-parse-symbol-name-at-point' with `slime-symbol-name-at-point' (slime-find-bound-functions): No need for `slime-ensure-list' anymore. ([test] enclosing-context.1): Adapted due to the changes.
* slime-parse.el ([test] enclosing-form-specs.1): Fix test case.
Add DEFMETHOD-style extended arglist display for DEFINE-COMPILER-MACRO. (defun foo (x y &key k1 k2)) (define-compiler-macro foo |) * swank-arglists.lisp ([method] arglist-dispatch): Specialize on (EQL 'DEFINE-COMPILER-MACRO). * slime-parse.el (slime-extended-operator-name-parser-alist): Add entry for DEFINE-COMPILER-MACRO. (slime-make-extended-operator-parser/look-ahead): Collect up /at most/ N sexps. Previously `(defmethod |)' would lead to a form spec of ``("defmethod" ("defmethod"))''. ([test] enclosing-form-specs.1): Test for this.
* swank-arglists.lisp (defstruct arglist-dummy): Remove :PRINT-OBJECT which made an arglist dummy look like a normal symbol. This is just confusing. If an ARGLIST-DUMMY appears in an arglist, the relevant code should deal with this explicitly. (with-availability): Renamed to WITH-AVAILABLE-ARGLIST. * slime-parse.el (slime-parse-extended-operator-name): Pass the fully qualified symbol (not just the name) to the parser function. (slime-make-extended-operator-parser/look-ahead): Do not take the operator name as first argument if point is located at the operator name.
* slime-parse.el (slime-has-symbol-syntax-p): New. (slime-parse-symbol-name-at-point): New; works on top of `slime-parse-sexp-at-point'. (slime-enclosing-form-specs): Use it. * slime-enclosing-context.el (slime-find-bound-names): Use `slime-parse-symbol-name-at-point'. (slime-find-bound-functions): Ditto. (def-slime-test enclosing-context.1): New test case. Thanks to John Pallister for reporting this bug.
* slime-parse.el (slime-cl-symbol-name), (slime-cl-symbol-package), (slime-qualify-cl-symbol-name): Moved back to `slime.el' as they're still used there.
* slime-parse.el (slime-make-form-spec-from-string): Correctly handle quoted things and other non-proper "(...)" forms.
* swank-parse.lisp (slime-incomplete-form-at-point): Hopefully better fix than before.
* swank-parse.lisp (slime-incomplete-form-at-point): Take the arglist index there user's point is located at correctly into account. Previously `C-c C-s' on `(defun |foo' would have inserted `args body...)', now it inserts `name args body...)'
* slime-parse.el: Fix extended arglist display on misbalanced expressions like `(defun foo | ... (defun bar () 'bar)' Reported by Ariel Badichi. (slime-inside-string-p): Use `beginning-of-defun' directly than relying on `slime-region-for-defun-at-point' (as this one uses `end-of-defun' which signals an error on misbalanced expressions.)
* slime-parse.el (slime-enclosing-form-specs): Now also works even when point is inside a string. (slime-inside-string-p): New function. (slime-beginning-of-string): New function.
* slime.el (slime-cl-symbol-name, slime-cl-symbol-package): Move to contrib/slime-parse.el.
* slime-parse.el (slime-cl-symbol-name, slime-cl-symbol-package): Moved back into slime.el.
Added extended arglist display for DECLAIM and PROCLAIM. * slime.el (slime-extended-operator-name-parser-alist): Added entries for "DECLAIM", and "PROCLAIM". (slime-parse-extended-operator/declare): Provide information about the operator the arglist is requested for. (slime-make-form-spec-from-string): Fixed for "()" as input. * swank-arglists.lisp (valid-operator-symbol-p): Explicitly allow the symbol 'DECLARE. (arglist-dispatch): New method for `DECLARE'. We have to catch this explicitly, as DECLARE doesn't have an arglist (in the `swank-backend:arglist' sense.) (*arglist-pprint-bindings*): New variable. Splitted out from `decoded-arglist-to-string'. (decoded-arglist-to-string): Use `*arglist-pprint-bindings*'. (parse-first-valid-form-spec): Rewritten, because function signature had to be changed: doesn't take arg-indices anymore; returns position of first valid spec as second value to remedy. (arglist-for-echo-area): Accomodated to new signature of `parse-first-valid-form-spec'; now searchs for contextual declaration operator name, to prefix a declaration arglist by "declare", "declaim", or "proclaim" depending on what was used at user's point in Slime. Use `*arglist-pprint-bindings*' for printing the found declaration operator name. (%find-declaration-operator): New helper to do this search. (completions-for-keyword): Accomodated to new signature of `parse-first-valid-form-spec'. Also fixed to correctly provide keyword completions in nested expressions like: `(defun foo (x) (let ((bar 'quux)) (with-open-file (s f :|' [`|' being point]
Makes `slime-complete-form' work on `(eval-when |'; doesn't work on `(eval-when (|' yet. * slime-parse.el (slime-parse-sexp-at-point): Guard against `(char-after)' being NIL at end of buffer (especially important for use on the REPL.) * swank-arglist.lisp (arglist-dispatch 'eval-when): Fix typo.
Move compound prefix completion and autodoc to contrib. * swank.lisp (simple-completions): Rewritten for simplicity. (operator-arglist): Rewritten for simplicity. * slime.el (slime-complete-symbol-function): Make simple completion the default. (slime-echo-arglist-function, slime-echo-arglist): New hook.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|