emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [Orgmode] Re: BUG: Navigating table to change fields


From: Carsten Dominik
Subject: Re: [Orgmode] Re: BUG: Navigating table to change fields
Date: Tue, 21 Apr 2009 09:44:53 +0200


On Apr 21, 2009, at 12:02 AM, Eric Schulte wrote:

Maybe a list rather than a hook, say `org-cycle-actions'. Each element
of the list could be called in the current context until one returns a
non-nil result.  Something like...

(let ((pending org-cycle-actions)
     finished)
 (while (not finished)
   (setq finished (funcall (car pending)))
   (setq pending (cdr pending))))

If the existing org-cycle actions (fold headline, org-cycle-table,
etc...) were implemented using the list then users could have the
options of putting their actions before or after (after being good if
say they have a very expensive check which shouldn't be run every time
tab is hit).

Does that sound appropriate? -- Eric

This would be a very general solution. However, maybe this is more than we need, it is not so easy to implement because org-cycle handles a number of special cases which have grown into it over the years.

I guess a good solution will to to make several hooks which I have done now. I believe yasnippet should hook itself into the third one. Here are the hooks:


(defvar org-tab-first-hook nil
  "Hook for functions to attach themselves to TAB.
See `org-ctrl-c-ctrl-c-hook' for more information.
This hook runs as the first action when TAB is pressed.
If any function in this hook returns t, not other actions like table
field motion visibility cycling will be done.")

(defvar org-tab-after-check-for-table-hook nil
  "Hook for functions to attach themselves to TAB.
See `org-ctrl-c-ctrl-c-hook' for more information.
This hook runs after it has been established that the cursor is not in a
table, but before checking if the cursor is in a headline or if global cycling
should be done.
If any function in this hook returns t, not other actions like visibility
cycling will be done.")

(defvar org-tab-after-check-for-cycling-hook nil
  "Hook for functions to attach themselves to TAB.
See `org-ctrl-c-ctrl-c-hook' for more information.
This hook runs after it has been established that not table field motion and not visibility should be done because of current context. This is probably
the place where a package like yasnippets can hook in.")



Carsten Dominik <address@hidden> writes:

So what would be the right place to call it?  Which context checks
should com before the hook, and which after?

- Carsten

On Apr 20, 2009, at 11:02 PM, Eric Schulte wrote:

A hook in org-cycle could be useful aside from yasnippets. I recently found myself writing a defadvice for org-cycle in a situation where a
hook would have been preferable. -- Eric

Carsten Dominik <address@hidden> writes:

Maybe we should have a hook in org-cycle where yasnippet can
hook into, instead of overruling the TAB key......

- Carsten

On Apr 20, 2009, at 9:43 PM, Bernt Hansen wrote:

Nevermind.  It works.

Gah. Sorry for the noise.  This turns out to be my yasnippet setup
messing up the TAB key in tables. :/  It works fine for a minimal
emacs
test.

-Bernt

Bernt Hansen <address@hidden> writes:

Okay I think this is a bug. If I traverse the table FORWARDS with
TAB
and type it inserts in front of the field that is there.  If I
traverse
it BACKWARDS with S-TAB it clears the field when I type.

This seems inconsistent (and I really like the blank the field as
soon
as you type behaviour)

-Bernt


Bernt Hansen <address@hidden> writes:

Hi,

Did the user interface for tables change recently?  When I TAB
between
fields in a table entering anything normally blanks out the field
and
replaces it with whatever new I am typing.

Today it always seems to insert in front of whatever is already
there.

I'm just wondering if this was an intentional change or if it's a
bug.
I didn't notice anything in the release notes about this (but
maybe I
just missed it).

-Bernt


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


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


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



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


_______________________________________________
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]