Discussion:
[ANN] nrepl.el 0.1.3 released
(too old to reply)
Tim King
2012-08-21 09:44:32 UTC
Permalink
I am happy to announce version 0.1.3 of nrepl.el, an Emacs client for nREPL.

https://github.com/kingtim/nrepl.el

v0.1.3 is available now on Marmalade, and should also be available on Melpa.
See the github Readme for installation and usage instructions.

Please give it a try!

Notable additions since our last release:
- eldoc support for displaying arglists in the minibuffer (Stefan
Kamphausen)
- persistent repl history (Stefan Kamphausen)
- fix for jumbled stacktraces (Ryan Fowler)
- add a doc keybinding for the repl buffer (Ken Restivo)
- plumbing to support ac-nrepl [https://github.com/purcell/ac-nrepl]
(Steve Purcell)
- stdin support (which also provides support for debug-repl [
https://github.com/GeorgeJahad/debug-repl] and limit-break [
https://github.com/technomancy/limit-break])

Cheers,
Tim
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Tassilo Horn
2012-08-21 20:04:50 UTC
Permalink
Tim King <***@gmail.com> writes:

Hi Tim,
Post by Tim King
I am happy to announce version 0.1.3 of nrepl.el, an Emacs client for nREPL.
https://github.com/kingtim/nrepl.el
Please give it a try!
I just gave it a try (normally using clojure-jack-in, that is, swank).
One really cool thing is its fast startup.

Some things that are show-stoppers for me:

- If it's installed, it hooks into clojure-mode unconditionally.
Don't do that. What if I want to use swank in project A and nrepl
in project B?

It would be ok to activate nrepl-interaction-mode automatically for
buffers visiting files that are contained in the project I jack in
right now, though.

- Because of the (set-keymap-parent map clojure-mode-map) in the
definition of nrepl-interaction-mode-map, DEL in clojure-mode will
call backward-delete-char-untabify and thus break paredit. Please
remove that line.

- The completion only completes if there's exactly one match. If
there are multiple candidates, it simply echos them in the echo
area. Why not doing the usual emacs completion stuff with a
*Completions* buffer and completing the common prefix?

- The completion always adds a space after a successful completion
which is annoying.

I didn't try it more extensively. It looks like it has a lot of
potential, but it still needs some work. If I find some time, I can try
to make the completions stuff into the standard emacs way, but don't
hold your breath.

Bye,
Tassilo
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Moritz Ulrich
2012-08-21 20:16:23 UTC
Permalink
Post by Tassilo Horn
- The completion only completes if there's exactly one match. If
there are multiple candidates, it simply echos them in the echo
area. Why not doing the usual emacs completion stuff with a
*Completions* buffer and completing the common prefix?
A source-fn for auto-complete (.el) would be awesome too (Slime has it, it's
quite trivial to implement).
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Phil Hagelberg
2012-08-21 23:01:22 UTC
Permalink
Received: by 10.68.129.69 with SMTP id nu5mr2981102pbb.17.1345590097669;
Tue, 21 Aug 2012 16:01:37 -0700 (PDT)
X-BeenThere: ***@googlegroups.com
Received: by 10.68.230.196 with SMTP id ta4ls3273413pbc.1.gmail; Tue, 21 Aug
2012 16:01:31 -0700 (PDT)
Received: by 10.66.85.8 with SMTP id d8mr2983970paz.40.1345590091479;
Tue, 21 Aug 2012 16:01:31 -0700 (PDT)
Received: by 10.66.85.8 with SMTP id d8mr2983969paz.40.1345590091402;
Tue, 21 Aug 2012 16:01:31 -0700 (PDT)
Received: from homiemail-a23.g.dreamhost.com (mailbigip.dreamhost.com. [208.97.132.5])
by gmr-mx.google.com with ESMTP id vo7si1200483pbc.1.2012.08.21.16.01.31;
Tue, 21 Aug 2012 16:01:31 -0700 (PDT)
Received-SPF: neutral (google.com: 208.97.132.5 is neither permitted nor denied by best guess record for domain of ***@hagelb.org) client-ip=208.97.132.5;
Received: from homiemail-a23.g.dreamhost.com (localhost [127.0.0.1])
by homiemail-a23.g.dreamhost.com (Postfix) with ESMTP id CA7F04B0062
for <***@googlegroups.com>; Tue, 21 Aug 2012 16:01:30 -0700 (PDT)
Received: from enigma (71-32-85-22.tukw.qwest.net [71.32.85.22])
(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
(No client certificate requested)
(Authenticated sender: ***@technomancy.us)
by homiemail-a23.g.dreamhost.com (Postfix) with ESMTPSA id 8FC144B006D
for <***@googlegroups.com>; Tue, 21 Aug 2012 16:01:30 -0700 (PDT)
In-Reply-To: <***@thinkpad.tsdh.de> (Tassilo Horn's message of
"Tue, 21 Aug 2012 22:04:50 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)
X-Original-Sender: ***@hagelb.org
X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com:
208.97.132.5 is neither permitted nor denied by best guess record for domain
of ***@hagelb.org) smtp.mail=***@hagelb.org; dkim=neutral (bad format) header.i=@hagelb.org
Precedence: list
Mailing-list: list ***@googlegroups.com; contact clojure+***@googlegroups.com
List-ID: <clojure.googlegroups.com>
X-Google-Group-Id: 999298108703
List-Post: <http://groups.google.com/group/clojure/post?hl=en_US>, <mailto:***@googlegroups.com>
List-Help: <http://groups.google.com/support/?hl=en_US>, <mailto:clojure+***@googlegroups.com>
List-Archive: <http://groups.google.com/group/clojure?hl=en_US>
Sender: ***@googlegroups.com
List-Subscribe: <http://groups.google.com/group/clojure/subscribe?hl=en_US>, <mailto:clojure+***@googlegroups.com>
List-Unsubscribe: <http://groups.google.com/group/clojure/subscribe?hl=en_US>, <mailto:googlegroups-manage+999298108703+***@googlegroups.com>
Archived-At: <http://permalink.gmane.org/gmane.comp.java.clojure.user/61702>
Post by Tassilo Horn
Post by Tim King
I am happy to announce version 0.1.3 of nrepl.el, an Emacs client for nREPL.
Thrilled to see this release go out. Thanks, Tim!
Post by Tassilo Horn
- If it's installed, it hooks into clojure-mode unconditionally.
Don't do that. What if I want to use swank in project A and nrepl
in project B?
There's an open ticket for only activating nrepl-interaction-mode for
files that are determined to be inside the project root:

https://github.com/kingtim/nrepl.el/issues/34

For now it behaves like slime and assumes you'll only have one active
session per Emacs instance since that's the workflow used by the people
who have been hacking on it so far. =)
Post by Tassilo Horn
- The completion only completes if there's exactly one match. If
there are multiple candidates, it simply echos them in the echo
area. Why not doing the usual emacs completion stuff with a
*Completions* buffer and completing the common prefix?
I looked into some of the other options for completion, but none of them
seemed appropriate. The docs for pcomplete seem to imply it's designed
for repl-style buffers and not coding major-modes, while hippie-expand
doesn't work asynchronously. Is there a specific mechanism you'd
recommend for this? I agree that using our own implementation isn't
ideal.
Post by Tassilo Horn
- The completion always adds a space after a successful completion
which is annoying.
This is pretty typical of other completion modes, but maybe if we built
in terms of built-in functionality then existing customization to
suppress it would apply.

-Phil
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Tassilo Horn
2012-08-22 06:52:07 UTC
Permalink
Phil Hagelberg <***@hagelb.org> writes:

Hi Phil,
Post by Phil Hagelberg
Post by Tassilo Horn
- The completion only completes if there's exactly one match. If
there are multiple candidates, it simply echos them in the echo
area. Why not doing the usual emacs completion stuff with a
*Completions* buffer and completing the common prefix?
I looked into some of the other options for completion, but none of
them seemed appropriate.
The standard way of doing completion in modern emacsen is to add your
own completion function to `completion-at-point-functions' and bind
M-TAB to `complete-symbol'. That does all the magic of showing a
*Completions* buffer with multiple possibilities and completing common
prefixes for you.

I've already started working on that, and I'm mostly finished. I'll
send a pull request anytime soon.

I have one minor problem, though. Is there a way to block until a
handler has done its job?

Concretely, in

(nrepl-send-string form nrepl-buffer-ns (nrepl-complete-handler
(current-buffer)
(save-excursion
(backward-sexp)
(point))))
(do-magick)

I'd like to (do-magick) not before nrepl-complete-handler was run. Is
that possible?

Bye,
Tassilo
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Tassilo Horn
2012-08-22 07:12:18 UTC
Permalink
Post by Tassilo Horn
The standard way of doing completion in modern emacsen is to add your
own completion function to `completion-at-point-functions' and bind
M-TAB to `complete-symbol'. That does all the magic of showing a
*Completions* buffer with multiple possibilities and completing common
prefixes for you.
I've already started working on that, and I'm mostly finished. I'll
send a pull request anytime soon.
Pull request is sent!
Post by Tassilo Horn
I have one minor problem, though. Is there a way to block until a
handler has done its job?
I did it in a poor-man's fashion, but it works anyway.

Bye,
Tassilo
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Tim King
2012-08-22 16:53:50 UTC
Permalink
Post by Tassilo Horn
Pull request is sent!
Thank you for your feedback and the pull request.
I'll check that out when I have a spare moment.

Cheers,
Tim
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Tassilo Horn
2012-08-22 17:26:35 UTC
Permalink
Tim King <***@gmail.com> writes:

Hi Tim,
Post by Tim King
Post by Tassilo Horn
Pull request is sent!
Thank you for your feedback and the pull request.
You're welcome.
Post by Tim King
I'll check that out when I have a spare moment.
Great.

Bye,
Tassilo
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to ***@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+***@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
Continue reading on narkive:
Loading...