* Support cider completion, including context aware completion.
* Updates for latest cider-nrepl and piggieback.
* Use :.RunTests or 1cpr to run test under cursor.
* Add CTRL-R CTRL-F and CTRL-R CTRL-P command line maps.
* Add support for boot's fake class path.
* Fix handling of CTRL-C interrupt while evaling.
* Numerous minor bug fixes.
If complete operation is given context property containing the
current toplevel form Compliment library can give better completion
results in some contexts:
- Local vars for let and defn
- Resources in classpath for io/resource calls
- Vars in specific ns for :require :refer
- Better Java class name completion for :import
The context string should contain symbol __prefix__ in place of the word
being completed. To achieve this location of cursor inside the toplevel
form is calculated so that the placeholder symbol can be placed in the
proper place.
In cider-nrepl 0.9.0 there is new extra-metadata option for complete op
[1]. It can be used to enrich the candiate results with additional
properties like arglists and docstring.
This commit adds extra-metadata option to complete call and changes the
candidate function to set fields in omnicomplete result so that arglists
are shown on omnicomplete menu and docstring is shown in preview window.
[1]: https://github.com/clojure-emacs/cider-nrepl/pull/195/files
Response from complete operation now returns list of maps containing
e.g. namespace and type of the completion candidate.
This change adds a new type check to check if complete returned list of
maps and converts those maps to format required by omnicomplete.
In addition to candidate name its type is now shown. The type is
shortned to one character.
This doesn't do a file existence check because that's tricky with jar
files in the mix. Instead, it's limited to strings, so a gf on a random
symbol doesn't send us flying.