emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Re: BUG: Navigating table to change fields
Date: Tue, 21 Apr 2009 09:44:53 +0200	[thread overview]
Message-ID: <7535DA7F-33B6-4732-A12F-9F7BDE742CBE@gmail.com> (raw)
In-Reply-To: <m2tz4jdlw5.fsf@gmail.com>


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 <carsten.dominik@gmail.com> 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 <carsten.dominik@gmail.com> 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 <bernt@norang.ca> 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 <bernt@norang.ca> 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.
>>>>>>> Emacs-orgmode@gnu.org
>>>>>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Emacs-orgmode mailing list
>>>>>> Remember: 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
>>>>> Remember: 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
>>>> Remember: 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
>>> Remember: use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode

  reply	other threads:[~2009-04-21  8:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-20 18:11 Table changes - entering new fields Bernt Hansen
2009-04-20 18:17 ` BUG: Navigating table to change fields (was: Table changes - entering new fields) Bernt Hansen
2009-04-20 19:43   ` BUG: Navigating table to change fields Bernt Hansen
2009-04-20 20:35     ` Carsten Dominik
2009-04-20 21:02       ` Eric Schulte
2009-04-20 21:09         ` Carsten Dominik
2009-04-20 22:02           ` Eric Schulte
2009-04-21  7:44             ` Carsten Dominik [this message]
2009-04-20 22:51       ` Bernt Hansen
2009-04-21  7:51         ` Carsten Dominik

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=7535DA7F-33B6-4732-A12F-9F7BDE742CBE@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@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).