Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
* swank-fuzzy.lisp: Allow NIL to be completed, don't confuse with it package:
* swank.lisp (do-symbols*, classify-symbol) (symbol-classification-string): Moved to contrib/swank-util.lisp.
Fuzzy completion: speed up by 2-4 times (on sbcl)
* swank-fuzzy.lisp (*fuzzy-completion-...*): Change defparameter to defvar for easier customization.
* swank.lisp (symbol-classification-string): New function to replace (symbol-classification->string (classify-symbol symbol)). It's faster and conses much less, while it is called many times by fuzzy completion and fancy inspector. (symbol-classification->string): Removed. (list-threads): Exclude the current thread only if its name is "worker".
* swank-fuzzy.lisp (fuzzy-convert-matching-for-emacs): format floats on the lisp side, because Emacs doesn't accept d0 or s0, which could get there as a result of *read-default-float-format* modification.
* swank-fuzzy.lisp (fuzzy-convert-matching-for-emacs): Return a string representation of the classifications rather than the classifications themselves. (Notice this propagates up to (and consequently changes the return value of) the RPC function FUZZY-COMPLETIONS. (incompatible api change.) Rationale: The number of supported classification can be changed without having to adapt its display at the client. * slime-fuzzy.lisp (slime-fuzzy-insert-completion-choice): (slime-fuzzy-fill-completions-buffer): Adapted to API change.
* slime-fuzzy.el (slime-fuzzy-completion-time-limit-in-msec): Update docstring: Its value isn't rounded to nearest second, but is really interpreted as msecs. * swank-fuzzy.el: Updated some comments. (fuzzy-generate-matchings): Sort package matchings before traversal, such that they're traversed in the order of their score. (Important with time limit exhausts during traversal.)
* swank-fuzzy.lisp: Fix regression that would not allow to fuzzy complete on inputs without package qualifier like "app". Reported by David J. Neu. (%make-duplicate-symbols-filter): Return complement. (fuzzy-find-matching-symbols): Treat passed filter as an acceptor predicate, not as a rejector.
* swank-fuzzy.lisp: Code reorganization and cleanup; making it compute less and couple of other minor issues fixed on the way. Thanks to Stelian Ionescu for testing and providing feedback! (defstruct fuzzy-matching): New `package-name' slot. (make-fuzzy-matching): Updated for new slot. (format-completion-result): Renamed to `fuzzy-format-matching'. (%fuzzy-extract-matching-info): Helper for `fuzzy-format-matching'. (fuzzy-completion-set): Convert the matchings after they got truncated to the passed completion-set limit from Emacs. I.e. `slime-fuzzy-completion-limit' This means a huge computational reduction. (fuzzy-create-completion-set): Renamed to `fuzzy-generate-matchings'. (fuzzy-generate-matchings): Returns the fuzzy matchings themselves, do not yet convert them for Emacs. Do not perform two sorts on the generated matchings (first alphabetically, then per score), but just one with an appropriate predicate that sorts per score, unless matchings are equal, then sort alphabetically. Prune matchings with symbols which are found in a differenta package than their home package when the home package is among the matched packages. Try to take the time needed to sort the generated matchings into account for the time-limit. (%guess-sort-duration): Helper. Tries to guess how long the sort will take. (%make-duplicate-symbols-filter): Helper. Used for pruning of matchings. (fuzzy-matching-greaterp): New testing predicate for sorting. (fuzzy-find-matching-symbols): Now takes a :filter keyarg; only considers symbols that pass through the filter. (fuzzy-find-matching-packages): Do not return matchings for all nicknames of package, but just the one that matches best.
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.
* slime.el (slime-sexp-at-point): Fixes a few edge cases were Emacs' `(thing-at-point 'sexp)' behaves suboptimally. For example, `foo(bar baz)' where point is at the ?\(. (slime-internal-scratch-buffer): New. This variable holds an internal scratch buffer that can be reused instead of having to create a new temporary buffer again and again. (slime-make-extended-operator-parser/look-ahead): Uses `slime-make-form-spec-from-string' to parse nested expressions properly. (slime-nesting-until-point): Added docstring. (slime-make-form-spec-from-string): Added new optional parameter for stripping the operator off the passed string representation of a form. Necessary to work in the context of `slime-make-extended-operator-parser/look-ahead'. Added safety check against a possible endless recursion. * swank.lisp (parse-form-spec): Looses restriction for nesting.
Merge contrib branch.
Add a contrib directory and move fuzzy completion code to that directory. * contrib: New directory. * swank.lisp (swank-require): New function to load contrib code. (*find-module*, module-filename, *load-path*, merged-directory) (find-module, module-canditates): New. Pathname acrobatics for swank-require. * swank-loader.lisp: Compile (but don't load) contribs. (*contribs*, contrib-source-files): New. * contrib/slime-fuzzy.el: New file. (slime-fuzzy-init): New function. Load CL code on startup. * contrib/swank-fuzzy.lisp: New file. Common Lisp code for fuzzy completion.
file swank-fuzzy.lisp was initially added on branch contrib.
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|