emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] question about org-region-active-p


From: Carsten Dominik
Subject: Re: [Orgmode] question about org-region-active-p
Date: Wed, 17 Dec 2008 09:13:55 +0100

Hi Robert,

no, I do not think this would make sense, to step out with
an error, because all the commands that need a region will
also work without one.  This is how regions work in Emacs.

If you find places in the documentation where this could
be made clearer, let me know.

Thanks.

- Carsten

On Dec 16, 2008, at 4:43 PM, Robert Goldman wrote:

Carsten Dominik wrote:
Hi Robert,

Samuel has it right, let me add this:

In Emacs, you do never remove the mark from the buffer, it is always
there, wherever you or some command last left it. The only way to tell
if the user intends to apply a command to a region is therefore the
state of a flag that says if the mark is "active".  Setting the mark
activates the mark, most commands besides cursor motion and search
deactivate it.
The state flag does only exist if transient-mark-mode is active.

Thank you both for the clarification.  Here's a question:  would it be
worth adding a message to warn a user when org-region-active-p is called
and transient-mark-mode is off?

So should we have something like

(and (or transient-mark-mode
(error "Transient mark mode must be active for this command to work.")
    mark-active)

Error is likely not the right thing here, but on the other hand it seems
to me that the user should somehow know that the current command will
not work as expected, because an expectation of the org-mode code has
been violated.

As I said, I discovered this because I was trying to publish a subtree
of an org file as HTML, and instead of publishing the subtree, I got the
whole file, and the output went to an unexpected location (because my
export file setting, attached to the heading, was ignored).

So the above is a case where the software quietly does something
radically different from what I expected (and what was documented)
because an expectation (really a code precondition) was violated. That
seems to me to be an exception condition that should be brought to the
user's attention.

A complicating issue is that the system should just go ahead and publish the whole file if there is no region selected, but there doesn't seem to
me to be any way for the system to tell that the user intended to
publish only a region if transient-mark-mode is off.

Maybe the user should just be told not to use org-mode without t-m-m?
Even this seems too extreme, because the user might never intend to
publish anything.... Or the user might never intend to publish anything
except a whole file, in which case who cares if tmm is off?

A very knotty issue....

Best,
r


- Carsten

On Dec 16, 2008, at 2:51 AM, Robert Goldman wrote:

The definition of org-region-active-p in my copy of org-mode is as
follows:


(defun org-region-active-p ()
"Is `transient-mark-mode' on and the region active?
Works on both Emacs and XEmacs."
(if org-ignore-region
    nil
  (if (featurep 'xemacs)
   (and zmacs-regions (region-active-p))
    (if (fboundp 'use-region-p)
     (use-region-p)
   (and transient-mark-mode mark-active)))))

What seems odd to me is that this command will only work on an emacs 22 (like my Aquamacs) if transient-mark-mode is enabled. Is that correct,
and is that what's desired?

[I found this because I tried to publish a subtree of an org file, and I
found that org-region-active-p was NIL even after C-c @
(outline-mark-subtree).]

This may be an oddity of aquamacs -- it seems to prefer cua-mode and
turn off transient-mark-mode by default.  I confess to not really
understanding that decision or its implications.

thanks,
r


_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode







reply via email to

[Prev in Thread] Current Thread [Next in Thread]