- #117:
Extend sources
static-members
andmembers
with constructors and qualified instance members for Clojure 1.12.
- Fix fuzzy matching logic (
rema
didn't matchre-matches
).
- Optimize the way how cached values are looked up.
- Reduce the memory footprint of the cache.
- Deprecate
:plain-candidates
incomplliment.core/completions
.
- #116: Add reader conditional support.
- #118: Fix no completion for locals when hashset literal is used within short lambda syntax.
- #113: Suggest members of the superclass for hinted symbols.
- Fix completing classes from local directory classpath on Windows.
- BREAKING:
compliment.context/cache-context
no longer accepts:same
as the argument to use the previously supplied context string.
- Add Compliment-lite.
- Improve performance and efficiency of initialization and repeated functions. Speed up initialization, reduce memory footprint and allocation rate.
- Protect initialization with a lock so that multiple inits can't be triggered.
- BREAKING: Split
namespaces-and-classes
source into two separate sources. Thus, for the purposes of enabling/disabling sources, their keyword names are now:compliment.sources.namespaces/namespaces
and:compliment.sources.classes/classes
. - BREAKING: Rename
ns-mappings
source tovars
. Thus, for the purposes of enabling/disabling sources, its keyword name is now:compliment.sources.vars/vars
. - BREAKING: Remove deprecated
compliment.utils/namespaces-on-classpath
. Instead, you can usecompliment.utils/namespaces&files-on-classpath
. - BREAKING:
compliment.core/completions
no longer accepts a string as a second argument instead of a proper options map. This fallback has been deprecated long time ago.
- #109: Introduce
support for offering completions within the context of a
some->
andsome->>
call.
- #107: Infer the class of string and coll literals, giving more accurate completions for those.
- #108: Don't infer the class of lists.
- #33: Demunge deftype field names.
- #61: Introduce
support for offering completions within the context of a
->
,->>
anddoto
call.
- Support for Clojure 1.8 and 1.9 is dropped. Compliment will most likely continue to work with them for a while, but the compatibility is no longer guaranteed.
- #98: Find private vars when using var quote literal.
- #98: Support
:private
and:deprecated
as extra-metadata.
- #97: Extend completion and getting docs for symbol-strings with leading literals.
- Complete fully-qualified classnames by their shortname prefix anywhere in the
file (previously worked only in the
:import
section of thens
form). - Fix ' and #' being swallowed when completing vars prefixed by them.
- #91:
compliment.utils/namespaces-on-classpath
(now deprecated) takes cljc files into account. Add replacementcompliment.utils/namespaces&files-on-classpath
that yields a collection of maps containing the filename.- #94:
compliment.sources.namespaces-and-classes/doc
accepts ns-aliases as well.
- #94:
- #87: Fix completion of local bindings when a context contains '{' or '}' characters.
- #82: Offer completions for quoted/var-quoted symbols.
- #83: Complete local bindings declared in map destructuring with namespaced keywords.
- #83: Fix completion of local bindings when a context contains namespaced keywords.
- #84: Enable
locals completion for
defmethod
form.
- #77: Add ability to tune Compliment behavior with var's metadata.
- #79: Fix completion of Java packages/classes on Windows.
- Complete local bindings declared in
:strs
and:syms
map destructuring. - #75: Suppress reflection warnings in JDK9-related code.
- Complete local bindings declared in
:strs
and:syms
map destructuring. - #71: Allow to
explicitly filter sources when calling
compliment.core/documentation
.
- #53: Make context scanning more robust to unfinished forms.
- Fix not completing methods/fields for freshly imported classes.
- #58: Complete members for unimported class if the context class is found.
- Retrieve context class from next form's type tag or from type tag of the same symbol if it was tagged in the same lexical scope.
- Fix completion of unimported classes on JDK9+.
- Drop support for JDK1.7 and Clojure 1.7. They might still work for some time but it is not guaranteed.
- #50: Fixed
namespace
user
overriding the aliasuser
when suggesting candidates.
- Complete local bindings introduced by
letfn
,with-open
,dotimes
, andas->
.
Bugfix release.
- #47: Don't throw
NPE when completing
::/
.
- #43: Allow dots in namespace aliases.
- #45: Rework caching so that classname caches are automatically updated when classpath changes.
- Autocomplete unimported classes in Boot.
- #41: Don't follow symlinks when scanning classpath.
- clojure-emacs/cider#1818: Don't fail if a class doesn't have a package.
This release is a solidification of all the new features added to Compliment
since 0.2.0
.
Changes:
- All sources have been refactored to return a list of maps instead of a list of strings. Thus, there is no longer a concept of "tagging" candidates with extra data — this always happens now.
:tag-candidates
option tocompliment.core/completions
has been removed as this behavior has become the default one.:plain-candidates true
option is added to revert to the previous behavior.- Deprecated arities of
compliment.core/completions
have been removed, only[prefix]
and[prefix options-map]
remain. - #37: Complete
namespace aliases with
::
prefix. - #39: Allow colon (
:
) inside var names.
- #35:
documentation
shouldn't crash when""
is passed.
- #34: Include
literals
true
,false
,nil
in completion results.
- clojure-emacs/cider-nrepl#224: Improved handling of namespaced keywords.
- #31: Parse local
:let
bindings introduced bydoseq
andfor
.
Hotfix release.
- #28: Stop
ignoring full-package candidates inside
(:import ...)
context.
This release has several big features to mention:
- #20: Classnames in
the
:import
block ofns
can now be completed by a simple name. E.g. typingArrayL
in that context will suggestjava.util.ArrayList
. - #24: New completion source for project resources.
- #26: New
parameter
:extra-metadata
that takes a set of keywords, and tells Compliment which additional information should be attached when:tag-candidates true
is active. Currently supported::doc
,:arglists
.
This release changes the Compliment API, particularly now
compliment.core/completions
accepts a uniform options-map
argument that
contains all necessary parameters (ns
, context
etc.). Other changes:
- #16: Optional
:tag-candidates true
option makes Compliment return a list of maps instead of a list of strings. Each map has:candidate
key with the candidate and possibly other keys that describe its type and other metadata.
This release is a quite significant milestone in catching up with lost
clojure-complete
capabilities. Here are the most important changes:
- #14: All classnames can now be completed regardless whether they were imported. This works only on JVM where classpath scanning is possible.
- Unloaded namespaces are now completed too, using the same classpath scanning technique.
- #17: Fuzzy
completion became fuzzier, allowing to skip separators like
-
and.
(see Examples)
- Introduced
sort-order
parameter tocompletions
(trptcolin/reply#153). - Fixed various bugs related to context parsing and other issues that made CIDER freeze.
- #12: Add a
completion source for local bindings introduced in macros like
let
anddefn
. - Special forms are now only suggested if the completion is invoked at the first element of a list. If no context is provided, special forms are still suggested.