Misc utilities used in nREPL's implementation (potentially also useful for anyone extending it).
Misc utilities used in nREPL's implementation (potentially also useful for anyone extending it).
(java-8?)
Util to check if we are using Java 8. Useful for features that behave differently after version 8.
Util to check if we are using Java 8. Useful for features that behave differently after version 8.
(noisy-future & body)
Executes body in a future, logging any exceptions that make it to the top level.
Executes body in a future, logging any exceptions that make it to the top level.
(requiring-resolve sym & [log?])
Resolves namespace-qualified sym per 'resolve'. If initial resolve fails, attempts to require sym's namespace and retries. Returns nil if sym could not be resolved.
Resolves namespace-qualified sym per 'resolve'. If initial resolve fails, attempts to require sym's namespace and retries. Returns nil if sym could not be resolved.
(response-for {:keys [session id]} & response-data)
Returns a map containing the :session and :id from the "request" msg
as well as all entries specified in response-data
, which can be one
or more maps (which will be merged), or key-value pairs.
(response-for msg :status :done :value "5") (response-for msg {:status :interrupted})
The :session value in msg
may be any Clojure reference type (to accommodate
likely implementations of sessions) that has an :id slot in its metadata,
or a string.
Returns a map containing the :session and :id from the "request" `msg` as well as all entries specified in `response-data`, which can be one or more maps (which will be merged), *or* key-value pairs. (response-for msg :status :done :value "5") (response-for msg {:status :interrupted}) The :session value in `msg` may be any Clojure reference type (to accommodate likely implementations of sessions) that has an :id slot in its metadata, or a string.
(returning x & body)
Executes body
, returning x
.
Executes `body`, returning `x`.
A list of var metadata attributes are safe to return to the clients. We need to guard ourselves against EDN data that's not encodeable/decodable with bencode. We also optimize the response payloads by not returning redundant metadata.
A list of var metadata attributes are safe to return to the clients. We need to guard ourselves against EDN data that's not encodeable/decodable with bencode. We also optimize the response payloads by not returning redundant metadata.
(sanitize-meta m)
Sanitize a Clojure metadata map such that it can be bencoded.
Sanitize a Clojure metadata map such that it can be bencoded.
(with-session-classloader session & body)
This macro does two things:
If the session has a classloader set, then execute the body using that. This is typically used to trigger the sideloader, when active.
Bind clojure.lang.Compiler/LOADER
to the context classloader, which
might also be the sideloader. This is required to get hotloading with
pomegranate working under certain conditions.
This macro does two things: 1. If the session has a classloader set, then execute the body using that. This is typically used to trigger the sideloader, when active. 2. Bind `clojure.lang.Compiler/LOADER` to the context classloader, which might also be the sideloader. This is required to get hotloading with pomegranate working under certain conditions.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close