all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Jorgen Schaefer <forcer@forcix.cx>
To: emacs-devel@gnu.org
Cc: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: over-engineered (and under-standardized) inferior interfaces
Date: Thu, 21 Aug 2014 23:21:58 +0200	[thread overview]
Message-ID: <20140821232158.3d0aea56@forcix> (raw)
In-Reply-To: <jwvvbpld20s.fsf-monnier+emacs@gnu.org>

On Thu, 21 Aug 2014 16:29:35 -0400
Stefan Monnier <monnier@iro.umontreal.ca> wrote:

> prog-proc-mode

First of all, this is an excellent initiative. Thank you.

>     (define-key map [?\C-c ?\C-l] 'prog-proc-load-file)
>     (define-key map [?\C-c ?\C-c] 'prog-proc-compile)
>     (define-key map [?\C-c ?\C-z] 'prog-proc-switch-to)
>     (define-key map [?\C-c ?\C-r] 'prog-proc-send-region)
>     (define-key map [?\C-c ?\C-b] 'prog-proc-send-buffer)
>     ;; FIXME: Add
>     ;; (define-key map [?\M-C-x] 'prog-proc-send-defun)
>     ;; (define-key map [?\C-x ?\C-e] 'prog-proc-send-last-sexp)

Just some comments on the default bindings. I understand these are the
historically-available ones, but I do feel that if we create a new mode
like this, it might be worthwhile to rethink them.

With the availability of an "active region", I think it would be nice
to consolidate send-buffer and send-region to a single binding. If
there is an active region, send the region; if not, send the buffer.

Using a nice binding like C-c C-c for a somewhat less-common command
like "compile the current file in the REPL" (as opposed to using M-x
(re)compile) seems like a waste.

So I'd suggest using C-c C-c for a new prog-proc-send-region-or-buffer.

I'm also unsure about using up too many C-c C-X bindings in this minor
mode; the major mode that activates it won't be able to easily override
those bindings locally, so it might be a good idea to be a bit more
conservative with the default bindings, providing the commands but not
the bindings for the less common use cases (load, compile, region,
buffer).

That would leave us with a default set of C-c C-c
(send-region-or-buffer) and C-c C-z (switch to repl, starting it if
necessary) (*) which seems like a nice default set to me that modes can
extend with options that make sense for them.

(*) And C-M-x, which I think is a nice addition for most modes and also
does not conflict with other mode bindings and uses.

Regards,
Jorgen



  reply	other threads:[~2014-08-21 21:21 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-21 19:20 over-engineered (and under-standardized) inferior interfaces Sam Steingold
2014-08-21 20:29 ` Stefan Monnier
2014-08-21 21:21   ` Jorgen Schaefer [this message]
2014-08-21 22:00     ` Dmitry
2014-08-21 22:10       ` Eric S. Raymond
2014-08-22  3:45     ` Stefan Monnier
2014-08-22  5:57       ` Andreas Röhler
2014-08-22 10:55       ` Phillip Lord
2014-08-22 11:41         ` Jorgen Schaefer
2014-08-22 21:29   ` Sam Steingold
2014-08-31 16:30   ` Elias Mårtenson
2014-08-31 20:01     ` Stefan Monnier
2014-08-21 20:43 ` Andreas Schwab
2014-08-21 21:06   ` Sam Steingold
2014-08-22  5:56     ` Andreas Schwab
2014-08-22  6:17     ` Michael Albinus
2014-08-22 21:25       ` Sam Steingold
2014-08-23 15:16         ` Michael Albinus
2014-08-25 17:05           ` Sam Steingold
2014-08-27  6:57             ` Michael Albinus
2014-08-27 10:46               ` Sam Steingold
2014-08-27 11:29                 ` Michael Albinus
2014-08-27 12:32                   ` Sam Steingold
2014-08-27 12:51                     ` Michael Albinus
2014-08-27 13:00                       ` Sam Steingold
2014-08-27 13:16                         ` Michael Albinus
2014-08-27 13:52                           ` Sam Steingold
2014-08-27 13:57                             ` Sam Steingold
2014-08-27 18:17                               ` Michael Albinus
2014-08-28  1:01                                 ` Sam Steingold
2014-08-28  8:48                                   ` Michael Albinus
2014-08-28 16:02                                     ` Sam Steingold
2014-08-28 18:35                                       ` Michael Albinus
2014-08-28 19:22                                         ` Sam Steingold
2014-08-28 19:44                                           ` Michael Albinus
2014-08-28 19:54                                             ` Sam Steingold
2014-08-28 20:04                                               ` Michael Albinus
2014-08-29 15:00                                                 ` Sam Steingold
2014-09-05 14:19                                                   ` Michael Albinus
2014-09-08 13:17                                                     ` Sam Steingold
2014-09-08 14:15                                                       ` Michael Albinus
2014-09-08 14:38                                                         ` Sam Steingold
2014-09-08 14:47                                                           ` Michael Albinus
2014-08-27 14:05                             ` Tassilo Horn
2014-08-27 18:13                               ` Michael Albinus
2014-08-25  9:23 ` Michael Mattie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140821232158.3d0aea56@forcix \
    --to=forcer@forcix.cx \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.