summaryrefslogtreecommitdiff
path: root/nrepl-client.el
Commit message (Collapse)AuthorAge
* Remove sit-for in nrepl-notifyVitalie Spinu2018-10-17
| | | | | The delay is a major hindrance in consequtive notifications as with interactive debugger contexts.
* Move "Closed on" connection message to sentinelVitalie Spinu2018-09-23
|
* [Fix #2435] Remove killed REPLs from session in client sentinelVitalie Spinu2018-09-23
| | | | And rename :no-server-kill to :keep-server process property
* Correctly set host name in server when jacked-in from a remote fileVitalie Spinu2018-09-08
|
* [Fix #2413] Prompt if a session with the same parameters already existsVitalie Spinu2018-08-30
|
* Update a few references to the legacy tools.nreplBozhidar Batsov2018-08-12
|
* Make `nrepl-xyz-buffer-name`s use new formatting systemVitalie Spinu2018-07-29
| | | | - obsolete nrepl-buffer-name-separator, nrepl-buffer-name-show-port
* [Fix #1980] Echo back missing namespace name on interactive evalBozhidar Batsov2018-07-24
| | | | | | | | Note that this requires nREPL 0.4.3+. See https://github.com/nrepl/nREPL/commit/e77945a70f68989f69e955eef9e6cbe75cedacf4 for the related nREPL change.
* Fix the regular expression used to extract the nREPL port number onBozhidar Batsov2018-07-19
| | | | | | jack-in This was changed accidentally a while ago and continued to work on pure magic. :D
* Initialize `sesman-system` in all CIDER modesVitalie Spinu2018-07-13
|
* [Fix #2203] Rename cider-interaction.el to cider-eval.elBozhidar Batsov2018-06-25
| | | | | | | | | | All of the non-eval functionality was removed, which marks the end of the process of breaking up the old file. Down the road we may opt to break down cider-eval into some core functionality and extra functionality, as many of the eval commands there are kind of "exotic", but that's not that important at this point.
* [#2203] Move stdin handling to cider-client.elBozhidar Batsov2018-06-24
|
* Revert "Remove cider-compat.el"Bozhidar Batsov2018-06-18
| | | | | | | This reverts commit b28fbac964907172fdedc3bea56eab905d5fbdbf. This can't be fully removed due to the difference in the signature of `if-let*` and `when-let*` in Emacs 25 and 26.
* Remove cider-compat.elBozhidar Batsov2018-06-18
| | | | It's no longer needed now that we target Emacs 25.
* Fix cider-restart for single-repl sessionsVitalie Spinu2018-06-18
|
* New connection API and jack-in rewrite (#2324)Vitalie Spinu2018-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Second attempt on #2069. A brief description of the new functionality follows. 1) __Jack-in/connect__ - User level commands: Create new sessions: C-c M-j: cider-jack-in-clj C-c M-J: cider-jack-in-cljs C-c M-c: cider-connect-clj C-c M-C: cider-connect-cljs Add new REPLs to the current session: C-c M-s: cider-connect-sibling-clj C-c M-S: cider-connect-sibling-cljs - `cider-jack-in-clojurescript` no longer creates two repls, only the cljs repl - clj repl has no longer a special status of the "main" repl. All repls within a session share same server and are siblings of each other. You can create as many clj and cljs siblings as you want from any repl. - Creation of the client is no longer tightly bounded with the nrepl-server startup. The dynamic communication mechanism between jack-in and nrepl-server filter has been replace by a simple `on-port-callback`. 2) __New Connection and Session Management API__ - Connections (aka REPLs) are grouped in [sesman](https://github.com/vspinu/sesman) sessions. Sibling repls are added to the current session. - Cider connection commands (`cider-quit`, `cider-restart`, `cider-display-connection-info`) have been refactored to operate exclusively on the connection level. - Sesman commands operate on the whole session: ![sesman-map](https://user-images.githubusercontent.com/1363467/41355277-6864ffb8-6f21-11e8-9387-3de586477d68.png) - Associations (links) between current context (buffer, directory, project) are governed by sesman and could be formed only on the session level. In a nutshell, session can be linked to projects, directories and buffers. Buffer link have precedence over directory links, and directory have precedence over project links. When a sesman session is registered it's automatically linked with the lowest priority context (project, or directory if no project found). By default (configured with `sesman-1-to-1-links`) multiple sessions can be linked with a project or a directory, but only one session can be linked with a buffer. Cider functionality (eval, completion, repl-switching etc) operate on linked sessions. When there are multiple linked sessions ambiguity is automatically resolved by the recency of the REPL buffers (configured with `sesman-disambiguate-by-relevance`). - Show info on current links with `C-c C-s l`. Show info on current, linked or all sessions with `C-c C-s i`. - Micro-management of the server is not allowed (it's not useful and would complicate UI). All repls within a session share a server. Server can be either remote (`cider-connect`) or local (bootstraped within the emacs during `cider-jack-in-xyz`). In case of the local server, when the last connection is killed the server is automatically killed. `cider-restart` restarts the connection but not the server. `sesman-restart` restarts the server and all the connections. At least two issues I still plan to tackle here: - Restart of SSH tunneled connection has not been tested and probably doesn't work - REPL buffer naming system is no longer adequate. It should be possible to include session name as part of the buffer name and add more flexibility into the customization of buffer name templates. ----- A tot of no longer necessary or questionable functionality has been removed. The goal is to start from scratch and add only what is really necessary. I am listing all the removed functions for the ease of lookup through the github interface. Removed: cider--connection-host, cider--connection-port, cider--connection-project-dir, cider--connection-properties, cider--connection-type, cider--guess-cljs-connection, cider--has-warned-about-bad-repl-type, cider--in-connection-buffer-p, cider--quit-connection, cider--restart-connection, cider-assoc-buffer-with-connection, cider-assoc-project-with-connection, cider-change-buffers-designation, cider-clear-buffer-local-connection, cider-close-nrepl-session, cider-connections (variable), cider-current-connection (variable), cider-current-messages-buffer, cider-current-repl-buffer, cider-default-connection, cider-extract-designation-from-current-repl-buffer, cider-find-connection-buffer-for-project-directory, cider-find-reusable-repl-buffer, cider-make-connection-default, cider-map-connections, cider-other-connection, cider-project-connections, cider-project-connections-types, cider-prompt-for-project-on-connect, cider-read-connection, cider-repl-buffers, cider-replicate-connection, cider-request-dispatch, cider-rotate-default-connection, cider-toggle-buffer-connection, cider-toggle-request-dispatch, nrepl-connection-buffer-name-template, nrepl-create-client-buffer-function, nrepl-post-client-callback nrepl-prompt-to-kill-server-buffer-on-quit, nrepl-use-this-as-repl-buffer, Connection Browser Functionality: cider--connection-browser-buffer-name, cider--connection-ewoc, cider--connection-pp, cider--connections-close-connection, cider--connections-goto-connection, cider--connections-make-default, cider--connections-refresh, cider--connections-refresh-buffer, cider--ewoc-apply-at-point, cider--setup-connection-browser, cider--update-connections-display, cider-client-name-repl-type, cider-connection-browser, cider-connections-buffer-mode, cider-connections-buffer-mode-map cider-connections-close-connection, cider-connections-goto-connection, cider-connections-make-default, cider-display-connected-message, cider-project-name, Renamed: cider-current-session -> cider-nrepl-eval-session cider-current-tooling-session -> cider-nrepl-tooling-session cider-display-connection-info -> cider-describe-current-connection cider-create-sibling-cljs-repl -> cider-connect-sibling-cljs nrepl-connection-buffer-name -> nrepl-repl-buffer-name cider--close-connection-buffer -> cider--close-connection ## repl <> connection overlap cleanup cider-connections -> cider-repls cider-current-connection -> cider-current-repl cider-map-connections -> cider-map-repls cider-connection-type-for-buffer -> cider-repl-type-for-buffer cider-repl-set-type -> cider-set-repl-type
* Add support for displaying various images (#2248)Reid D McKenzie2018-04-28
|
* Fix indentation of a comment lineBozhidar Batsov2018-03-28
|
* Teach CIDER about shadow-cljs's nrepl.port fileBozhidar Batsov2018-03-23
|
* Add support for the tooling session in nrepl-sync-request:evalBozhidar Batsov2018-03-05
|
* Bump the copyright yearsBozhidar Batsov2018-01-01
|
* Replace a few occurrences of when + not with unlessBozhidar Batsov2017-12-24
|
* Name var for `with-parsed-tramp-file-name`Tianxiang Xiong2017-12-18
| | | | | | | Without a named var, `with-parsed-tramp-file-name' expands to bind `port', which it then `ignore's, w/out var as a prefix; this raises a byte-compiler warning See: https://travis-ci.org/clojure-emacs/cider/jobs/317868996#L835
* Replace `if-let` and `when-let` with starred versionsTianxiang Xiong2017-12-11
| | | | | | | | | | Fix #2130. Emacs 26 obsoletes `if-let` and `when-let`, replacing them with `if-let*` and `when-let*`. This raises byte-compilation warnings (treated as errors) when testing against Emacs 26. See: http://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-26#n1278
* Use `nil` value instead of symbol in `pcase`Tianxiang Xiong2017-07-23
| | | | `'nil` is fine in Emacs 25, but not in Emacs 24.
* Add nREPL support for user level notificationsVitalie Spinu2017-07-20
|
* [Fix #390] Implement a workaround for orphaned Java process on Windows (#2051)Benedek Fazekas2017-07-17
| | | After quitting the REPL child Java processes on Windows weren't properly killed (likely an Emacs bug). Seems that `interrupt-process` does the trick, so now we use `interrupt-process` instead of `kill-process` if the OS is Windows.
* Mark nrepl-log-messages as safeBozhidar Batsov2017-07-09
| | | | | This way it can be customized on a per-project basis using .dir-locals.el without warnings.
* Remove some redundant code from modes inheriting from special-modeBozhidar Batsov2017-07-09
| | | | | All of those were making their buffers read-only explicitly, but that behaviour is automatically inherited from special-mode.
* Strip text-properties prior to sending some input for evaluationBozhidar Batsov2017-04-30
| | | | | If we don't do this the text properties would mess up the nREPL messages log.
* Add "time-stamp" to the list of nrepl message keys displayed always at the topBozhidar Batsov2017-03-10
|
* [#1726] Order keys in nrepl message objects (#1956)Harold2017-03-10
| | | | | In order to have the keys print in a predictable order, we can sort them before printing. Some common keys are treated specially and are always displayed before the rest. This commit also improves the alignment of nrepl message values.
* Add a comment explaining the nREPL message time-stampsBozhidar Batsov2017-03-08
|
* [Fix #1952] Add timestamp to nrepl messages when logging them (#1955)Vignesh Sarma K2017-03-08
|
* Fix nrepl--direct-connect error formatting in the let binding (#1954)Konstantin Zudov2017-03-08
| | | | | | | | | | | | | | | | | Seems like a bug crawled into 0fb25a8. The compiled version would have fail like: [nREPL] Establishing direct connection to somehost:42 ... nrepl--direct-connect: Not enough arguments for format string Interactively loading `nrepl--direct-connect` function, would have fail with "let bindings can have only one value form" kind of error. After this commit the thing fails in a more appropriate way: [nREPL] Establishing direct connection to somehost:42 ... [nREPL] Direct connection to somehost:42 failed nrepl-connect: [nREPL] Cannot connect to somehost:42
* Improve some connection messagesBozhidar Batsov2017-03-06
|
* Tweak some error messagesBozhidar Batsov2017-03-06
|
* [Fix #1935] Correct the broken ssh fallback connection logicBozhidar Batsov2017-03-06
| | | | | Due to a silly mistake the code never entered what was supposed to be the fallback connection code branch.
* Improve some error messagesBozhidar Batsov2017-03-04
|
* [#1945] Mention host and port in connection success/failure messagesBozhidar Batsov2017-03-04
| | | | This should make it easier for people to figure out what's going on.
* Improve the code style a bitBozhidar Batsov2017-03-04
|
* Don't use `list` where backquoting would be clearerTianxiang Xiong2017-03-01
|
* Correctly close tooling session (#1932)dpsutton2017-01-26
| | | Pass connection and signify that we want to close the tooling session.
* Remove session from nrepl interaction (#1925)dpsutton2017-01-23
| | | | | Connection and session are inextricably linked. Rather than try to thread these two in lockstep throughout the whole request life cycle, we let the last step insert either the nrepl-session or the nrepl-tooling-session.
* [#1544] Don't fallback to SSH by default for remote hosts in case of a failedBozhidar Batsov2017-01-19
| | | | | | | | | direct connection This behavior was confusing for some users and couldn't be manually configured. Now the behavior is configurable via the new defcustom `nrepl-use-ssh-fallback-for-remote-hosts` and is disabled by default.
* Kill an extra spaceBozhidar Batsov2017-01-19
|
* Fix nrepl-start-server-process's docstringcskksc2017-01-04
|
* Update the copyright years in the source codeBozhidar Batsov2017-01-04
|
* [Fix #1882] Restore compatibility with Emacs 24.4Bozhidar Batsov2016-11-25
| | | | | The functions in `cider-compat.el` were actually added in Emacs 25.1, not Emacs 24.4.
* Drop support for Emacs 24.3Bozhidar Batsov2016-11-19
|