emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Dan Davison <dandavison7@gmail.com>
To: Jeff Horn <jrhorn424@gmail.com>
Cc: emacs-orgmode@gnu.org, Andrea Crotti <andrea.crotti.0@gmail.com>
Subject: Re: Overlays and elisp code
Date: Tue, 01 Feb 2011 11:01:17 +0000	[thread overview]
Message-ID: <m1sjw8588y.fsf@gmail.com> (raw)
In-Reply-To: <m14o8o6n9w.fsf@gmail.com> (Dan Davison's message of "Tue, 01 Feb 2011 10:51:23 +0000")

>> On Mon, Jan 31, 2011 at 5:04 AM, Andrea Crotti
>> <andrea.crotti.0@gmail.com> wrote:
>>> I found a strange behaviour which might be a bug, but maybe of my
>>> configuration.
[...]
>>> - go over an elisp code block
>>> - C-c ' to edit in the overlay
>>> - C-c ' to go back when done
>>>
>>> And it works perfectly, BUT if for example I remove a parenthesis before
>>> pressing C-c ', I can't go back.
>>>
>>> C-c ' becomes undefined and I have to kill both the overlay and the
>>> original buffer.

[...]
> So it looks like paredit-mode refuses to start up (throws an error) if
> the parentheses are unbalanced. So how about we use
>
> #+begin_src emacs-lisp
> (add-hook 'emacs-lisp-mode-hook
>           (lambda ()
>             (condition-case nil
>                 (paredit-mode)
>               (error (message "Failed to activate paredit mode")))))
> #+end_src
>
> At the moment this message gets stamped on by a message which
> org-edit-src always issues in the echo-area.

When using C-c ', currently we can turn off the persistent message at
the top of the screen by setting `org-edit-src-persistent-message' to
nil, but we can't prevent the echo-area message without more code. The
echo area message may be useful for new users, but for experienced users
it is unnecessary and risks obscuring more useful messages.

This patch provides control over both messages. The relevant
customizable variable has a different name: `org-edit-src-messages'.

Dan

~~~~~~~~~~~~~~~~~~~~~~~~

    Change user option for controlling edit buffer messages
    
    * lisp/org-src.el (org-edit-src-messages): Change UI for controlling
    educational messages when src-code generating edit buffer.
    (org-edit-src-code): Implement control over persistent header message
    and echo-area message.

#+begin_src diff
diff --git a/lisp/org-src.el b/lisp/org-src.el
index f55e292..ea9be6c 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -113,13 +113,16 @@ editing it with \\[org-edit-src-code].  Has no effect if
   "If non-nil, blank lines are removed when exiting the code edit
 buffer.")
 
-(defcustom org-edit-src-persistent-message t
-  "Non-nil means show persistent exit help message while editing src examples.
-The message is shown in the header-line, which will be created in the
-first line of the window showing the editing buffer.
-When nil, the message will only be shown intermittently in the echo area."
+(defcustom org-edit-src-messages '(message header)
+  "Which messages to show when editing src examples.
+If 'header is a member of this list, then a message is shown in
+the header-line, which will be created in the first line of the
+window showing the editing buffer. If 'message is in the list,
+then a message will be displayed in the echo area."
   :group 'org-edit-structure
-  :type 'boolean)
+  :type '(set :greedy t
+              (const message)
+              (const header)))
 
 (defcustom org-src-window-setup 'reorganize-frame
   "How the source code edit buffer should be displayed.
@@ -320,9 +323,10 @@ buffer."
 	(org-set-local 'org-edit-src-block-indentation block-nindent)
 	(org-src-mode)
 	(set-buffer-modified-p nil)
-	(and org-edit-src-persistent-message
+	(and (memq 'header org-edit-src-messages)
 	     (org-set-local 'header-line-format msg)))
-      (unless quietp (message "%s" msg))
+      (unless (or quietp (not (memq 'message org-edit-src-messages)))
+	(message "%s" msg))
       t)))
 
 (defun org-edit-src-continue (e)
#+end_src





> I'm going to submit a patch
> to control that in a subsequent email.
>
> Oh no. You got me editing elisp with paredit mode turned on. Maybe it
> will last more than 5 minutes this time :)
>
> Dan
>
>>>
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2011-02-01 11:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-31 10:04 Overlays and elisp code Andrea Crotti
2011-01-31 20:04 ` Jeff Horn
2011-02-01  8:08   ` Andrea Crotti
2011-02-01 10:51   ` Dan Davison
2011-02-01 11:01     ` Dan Davison [this message]
2011-02-01 11:08       ` Carsten Dominik
2011-02-01 11:22         ` Dan Davison
2011-02-01 11:30           ` Carsten Dominik
2011-02-01 11:47             ` Dan Davison

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

  List information: https://www.orgmode.org/

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

  git send-email \
    --in-reply-to=m1sjw8588y.fsf@gmail.com \
    --to=dandavison7@gmail.com \
    --cc=andrea.crotti.0@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=jrhorn424@gmail.com \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).