- cider-nrepl#851:
info*
, offer:var-meta-allowlist
option.- It allows consumers to specify var metadata beyond Orchard's fixed whitelist.
- Rename
orchard.meta/var-meta-whitelist
var toorchard.meta/var-meta-allowlist
.orchard.meta/var-meta-whitelist
remains offered as a^:deprecated
var.
- #224: Don't error on NoClassDefFoundError.
orchard.xref
: avoid occasional null pointer access.
- #217: Add a
Name
header to inspected Class objects. - #222: optimize the performance of namespace discovery.
- #215:
orchard.inspect
: offer newtap-indexed
function.- It allows to
tap>
a sub-item byidx
, without navigating to it.
- It allows to
orchard.java
: add*analyze-sources*
dynamic var.- You can bind this to
false
in order to increase performance / decrease the amount of information returned.
- You can bind this to
orchard.namespace
: introduce newread-ns-form
,project-ns-forms
,ns-form-imports
functions.
- #202:
orchard.inspect
: right-align indices when rendering indexed collections.
orchard.inspect
: don't renderDatafy
sections identical to the data they refer to, for nil-valued maps.orchard.inspect
: access private fields again.- This feature was accidentally dropped in the previous release.
orchard.inspect
: offer newprevious-sibling
andnext-sibling
functions.- These help navigate sequential collections one item at a time, in a streamlined fashion.
orchard.inspect
: don't render keyword/symbol/number values as strings.orchard.inspect
: don't usepr-str
over the mainValue:
being inspected.- All values are already formatted as strings, so this
pr-str
was redundant.
- All values are already formatted as strings, so this
orchard.inspect
: render non-accessible fields better.- If a given field cannot be inspected (because it's private and the JDK module system prevents opening it), we return the fixed symbol
<non-inspectable value>
for representing its value, clients being free to elide its rendering. - Now, for a given inspected Object (except Class objects), we return these sections, if present:
Instance fields
,Static fields
,Private instance fields
,Private static fields
. - For Class objects, we keep grouping the fields under a single
Fields
section.
- If a given field cannot be inspected (because it's private and the JDK module system prevents opening it), we return the fixed symbol
orchard.inspect
: render field names as symbols, not strings.
- cider#3528:
orchard.inspect
: don't navigate beyond the pagination boundaries.
- Make some internals safer.
class-info
andmember-info
: include:annotated-arglists
.:annotated-arglists
represents each arglist as a string with return and param type info, rendered as metadata.
- Correctly infer indentation for
->
-like macros. - Don't infer indentation for
def
-like macros.
:doc-block-tags-fragments
: exclude tags other thanReturns
,Throws
andParam
.- This helps keeping the rendered docstrings concise, and predictably formatted.
- #189:
info
for Java: return extra:doc
-related attributes, as reflected in the neworchard.java.parser-next
namespace, allowing clients to render HTML and non-HTML fragments with precision.- This namespace needs the
--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
JVM flag to be present, otherwise a fallback will be used. - (enrich-classpath adds that flag when suitable)
- This namespace needs the
- #182:
info
on ClojureScript: don't mistakenly prioritize special form names over var names.
- #176:
orchard.xref
: include info for test vars. orchard.xref
: avoid duplicate vars that might appear following REPL re-evaluation.
- #173: Parallelize
orchard.xref/fn-refs
.
- cider-nrepl #788: Infer var metadata for 'indirect' vars.
- #170: Fix exception thrown when inspecting short Eduction.
- cider-nrepl #777: Introduce
orchard.indent
ns / functionality.
- #167: Added new inspector function
tap-current-value
.
- #165: Mark special forms and macros accordingly for ElDoc (before they were all marked as functions).
- #163: Support Clojure Spec 2 in the Spec browser.
- #158: Make
classpath-namespaces
resilient to faulty ns declarations.
- #161: Add Datafy section to inspector and align section headers
- Add a
Datafy
section to the inspector. For more details, take a look at the Datafiable and Navigable sections of the Orchard inspector docs. - Align all section headers to start with
---
.
- Add a
- Guard against OOMs in
orchard.java/member-info
.
- Fix a NullPointerException in
orchard.cljs.analysis
. - Fix a
Cannot open <nil> as a Reader
.
- #51: Extend
find-usages
:orchard.xref/fn-deps
now also finds anonymous function dependencies.- New:
orchard.xref/fn-deps-class
as a lower level API so you can still get the main functions deps only. - New:
orchard.xref/fn-transitive-deps
.
- #65: Make ClojureScript dependency
:provided
.- If you were using Orchard for ClojureScript functionality, it might be a good idea to make sure you have an explicit
org.clojure/clojurescript
dependency.
- If you were using Orchard for ClojureScript functionality, it might be a good idea to make sure you have an explicit
- #142: Make
read-namespace
handle read conditionals gracefully.
- Remove
dynapath
dependency- With it, defns related with mutable classloader are now deprecated and are no-ops
-Dorchard.use-dynapath=false
has no effect now either.
- Accomodate
enrich-classpath
- Now, if you intend to use Orchard for its Java functionality, it is expected that you use enrich-classpath also.
- If not present, Java-related features won't work (but at least won't throw a compile-time error).
- #135: Fix problematic double var lookup in
orchard.xref/fn-refs
.
- #124: Remove costly
io/resource
lookup.
- #133:
info:
don't fall back toclojure.core
for fully-qualified symbols.
orchard.namespace
functionality is now parallelized when possible.
- #123: Fix info lookups from namespaces that don't yet exist
- #125: Don't fail if the classpath references a non-existing .jar
- #128: Strengthen
apropos
- #116: Directories in the classpath having a file extension (such as
.jar
) will not confuse Orchard anymore, which had the potential to cause errors.
- #111: [Inspector] Configure truncation limits.
- #113: Add ability to skip functionality that works by altering the classpath.
- You an opt in to this choice by setting
"-Dorchard.use-dynapath=false"
.
- You an opt in to this choice by setting
- The class info cache is now initialized silently by default. This results in less confusing output.
- You can now
@orchard.java/cache-initializer
for deterministically waiting for this cache workload to complete. - You can control its verbosity by setting
"-Dorchard.initialize-cache.silent=false"
(or[...]=true
).
- You can now
- #106: Handle properly scoped cljs macros in info.
- Further improve dynamic classpath modification robustness.
- Make dynamic classpath modification robust to compiler loader binding (for some users
@Compiler/LOADER
was not bound for some reason).
- #103: Ensure JDK sources is visible in any invoking classloader context.
- #100: Fix compatibility with Java 15.
- Updated the ClojureDocs EDN export URL (see clojure-emacs/clojuredocs-export-edn#3).
- Remove reflection warnings.
- #96: Bundle exported ClojureDocs data and make fetching updates explicit (it used to happen automatically).
- #95: Fix large number of open files from java parser.
- #91: Don't use composite profiles for provided deps. (turned out that's not supported by Leiningen)
- #91: Fix broken release caused by some bug in Lein 2.9.3.
- #86: Fix resolution order in
info
.
- #84: Fix javadoc urls.
- #83: Ignore non file URLs when checking for directory or file extensions.
- #82: Correctly parse Java version strings that contain $OPT segments after the version numbers
- #81: [Inspector] Handle InaccessibleObjectException on Java 9+.
- #80: [Inspector] Render nils in data structures.
- #75: Fix bug with no
:file
forinfo
on namespaces without anydef
s.
- #74: Don't check for internet connectivity for local ClojureDocs cache URLs.
- #72: Check for internet connectivity before downloading ClojureDocs exported file.
- #69: Include specs in
var-meta
.
- #42: Add namespace alias support for
spec-list
andspec-form
. - #46: [Inspector] Separate static from non-static fields when rendering raw objects.
- #46: [Inspector] Show fields inherited from superclasses when rendering raw objects.
- #47: [Java] Cache class-info for editable Java classes.
- #51: Add basic xref functionality in
orchard.xref
. - #64: Port
cache-dir
from soc/directories-jvm toorchard.util.os
. - #64: Add finding docs functionality from ClojureDocs in
orchard.clojuredocs
. - Extract
cider-nrepl
's resource lookup functionality intoorchard.java.resource
.
- Update JavaDoc URL paths for Java 10+. Remove support for Java 7 JavaDoc URL paths.
- Remove dependency on
clojure.tools.namespace
(replaced byorchard.namespace
). - Remove dependency on
java.classpath
(replaced byorchard.java.classpath
). - Add java parser for JDK9+; rename legacy JDK8 parser.
- Make search for JDK directory resources compatible with JDK9+.
- Move
transform-value
tocider-nrepl
.
- #59: Correct inlined-dep prefix for removing namespaces
- #57: Fix parsing of Java versions for Java 11+.
- #38: [Inspector] Add eval and def features to inspector.
- #39: Catch
LinkageError
when callingClass/forName
.
- #35: [Inspector] Render Java's lists, maps, and arrays as collections.
- #35: [Inspector] Truncate long inline values.
- Ensure all classpath entries have absolute paths.
- #33: Address a NPE in
class-info
when dealing with classes created viareify
.
- Figure out the package of classes defined with
deftype
anddefrecord
on Java 8.
- #28: Fix inspector dropping items after nil value.
- Extracted info and eldoc functionality from
cider-nrepl
intoorchard.info
andorchard.eldoc
.
- Added a generic API for querying namespaces and vars (
orchard.query
).
- Initial extraction of nREPL-agnostic functionality from
cider-nrepl
.