[-- Attachment #1.1: Type: text/plain, Size: 2220 bytes --] Hi all-- In normal org buffers, creating a new list item works fine at the end of a multi-line list item, or on the line following a multi-line list item, even if the multi-line item covers lots of lines. In orgstruct-mode, it seems that new items can't be inserted unless the current line is a list item. Can orgstruct-mode be made to be as good as org-mode at recognizing when it's in a plain list? It'd be nice to be able to create a new list item after a multi-line item in orgstruct-mode. Steps to reproduce: 1. emacs -Q -nw test.txt 2. `M-:' (require 'org-install) 3. `M-x orgstruct-mode' 4. Create a list item like --8<---------------cut here---------------start------------->8--- - item 1 --8<---------------cut here---------------end--------------->8--- 5. `M-return' to get a new list item 6. `C-u C-4 C-0 x SPC C-u C-4 C-0 x' to get two long "words" 7. `M-q' to wrap the long list item. Now looks like: --8<---------------cut here---------------start------------->8--- - item 1 - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --8<---------------cut here---------------end--------------->8--- 8a. At the end of the third line, try to add a new list item with `M-return'. I get the message: #v+ orgstruct-error: This key has no function outside structure elements #v- 8b. At the beginning of a new line below the third line, hit `M-return'. Same error. Expected behavior: Following the same sequence in org-mode, steps 8a and 8b will both result in a new list item being created correctly. This took me longer to figure out than it should have, but this also has an unpleasant interaction with the default keybindings for message-mode. If I am writing an email and try to insert a new list item after a wrapped like using `M-return' I end up invoking `message-newline-and-reformat', which moves me down a line and then inserts four blank lines-- not what I wanted to do! If orgstruct-mode learns to recognize when it's in plain list context, this problem will disappear :) Thanks! /au -- Austin Frank http://aufrank.net GPG Public Key (D7398C2F): http://aufrank.net/personal.asc [-- Attachment #1.2: Type: application/pgp-signature, Size: 193 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ 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
[-- Attachment #1.1: Type: text/plain, Size: 3445 bytes --] Hi Austin, yes, this is something I have been missing myself. However, the problem is the following: orgstruct-mode is a mode that steals away bindings from the major mode and overrules them in certain contexts. In general, it does make sense to keep the regions where this applies small, so that the normal functions bound to the same keys can do there thing everywhere else. You are describing here a case, where you actually never want to use the original function of that key M-RET, right? In this case you can just totally rebind that key with something like (defun org-run-insert-heading () (interactive) (run-like-in-org-mode 'org-insert-heading)) and binding it to M-RET in the major mode map. What I have now done as well is to extend orgstruct++-mode so that it will do what you ask for. You neet to pull the git version for this change. - Carsten On Feb 22, 2009, at 12:23 AM, Austin Frank wrote: > Hi all-- > > In normal org buffers, creating a new list item works fine at the > end of > a multi-line list item, or on the line following a multi-line list > item, > even if the multi-line item covers lots of lines. In orgstruct- > mode, it > seems that new items can't be inserted unless the current line is a > list > item. > > Can orgstruct-mode be made to be as good as org-mode at recognizing > when > it's in a plain list? It'd be nice to be able to create a new list > item > after a multi-line item in orgstruct-mode. > > Steps to reproduce: > 1. emacs -Q -nw test.txt > 2. `M-:' (require 'org-install) > 3. `M-x orgstruct-mode' > 4. Create a list item like > > --8<---------------cut here---------------start------------->8--- > - item 1 > --8<---------------cut here---------------end--------------->8--- > > 5. `M-return' to get a new list item > 6. `C-u C-4 C-0 x SPC C-u C-4 C-0 x' to get two long "words" > 7. `M-q' to wrap the long list item. Now looks like: > > --8<---------------cut here---------------start------------->8--- > - item 1 > - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > --8<---------------cut here---------------end--------------->8--- > > 8a. At the end of the third line, try to add a new list item with > `M-return'. I get the message: > > #v+ > orgstruct-error: This key has no function outside structure elements > #v- > > 8b. At the beginning of a new line below the third line, hit > `M-return'. Same error. > > Expected behavior: > Following the same sequence in org-mode, steps 8a and 8b will both > result in a new list item being created correctly. > > > This took me longer to figure out than it should have, but this also > has > an unpleasant interaction with the default keybindings for message- > mode. > If I am writing an email and try to insert a new list item after a > wrapped like using `M-return' I end up invoking > `message-newline-and-reformat', which moves me down a line and then > inserts four blank lines-- not what I wanted to do! If orgstruct-mode > learns to recognize when it's in plain list context, this problem will > disappear :) > > Thanks! > /au > > > -- > Austin Frank > http://aufrank.net > GPG Public Key (D7398C2F): http://aufrank.net/personal.asc > _______________________________________________ > 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 [-- Attachment #1.2: Type: text/html, Size: 4147 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ 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
[-- Attachment #1.1: Type: text/plain, Size: 1612 bytes --] On Sun, Feb 22 2009, Carsten Dominik wrote: > yes, this is something I have been missing myself. Glad it wasn't just me. I feel guilty if I'm the only one requesting the feature. Now that you've implemented it, are you using orgstruct++-mode? > orgstruct-mode is a mode that steals away bindings from the major mode > and overrules them in certain contexts. In general, it does make > sense to keep the regions where this applies small, so that the normal > functions bound to the same keys can do there thing everywhere else. Maybe it makes sense for people who still cling to the idea that there are useful modes outside of org-mode ;) > You are describing here a case, where you actually never want to use > the original function of that key M-RET, right? Yes, I almost never want to use `message-newline-and-reformat'. > (defun org-run-insert-heading () > (interactive) > (run-like-in-org-mode 'org-insert-heading)) Did not know about `run-like-in-org-mode'. Very cool. > What I have now done as well is to extend orgstruct++-mode so that it > will do what you ask for. You neet to pull the git version for this > change. I use this full time in text-based modes now. It's especially great for composing emails (message-mode) and editing commit messages (magit-log-edit-mode). Thanks for adding this feature. I understand why it can't be the default, but I would encourage folks to try it. It works really well for me. Have a good one, /au -- Austin Frank http://aufrank.net GPG Public Key (D7398C2F): http://aufrank.net/personal.asc [-- Attachment #1.2: Type: application/pgp-signature, Size: 193 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ 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
Hi Austin, On Feb 26, 2009, at 5:57 AM, Austin Frank wrote: > On Sun, Feb 22 2009, Carsten Dominik wrote: > >> yes, this is something I have been missing myself. > > Glad it wasn't just me. I feel guilty if I'm the only one requesting > the feature. Now that you've implemented it, are you using > orgstruct++-mode? I only added the checking for plain list item context newly to orgstruct++-mode. The rest was there before, largely undocumented, I believe. And yes, I am using it a lot, like you in magit log mode for example. orgstruct-mode I use in programming modes when I write docstrings etc, but in any text-like mode, I would also prefer the ++ version. - Carsten > > >> orgstruct-mode is a mode that steals away bindings from the major >> mode >> and overrules them in certain contexts. In general, it does make >> sense to keep the regions where this applies small, so that the >> normal >> functions bound to the same keys can do there thing everywhere else. > > Maybe it makes sense for people who still cling to the idea that there > are useful modes outside of org-mode ;) > >> You are describing here a case, where you actually never want to use >> the original function of that key M-RET, right? > > Yes, I almost never want to use `message-newline-and-reformat'. > >> (defun org-run-insert-heading () >> (interactive) >> (run-like-in-org-mode 'org-insert-heading)) > > Did not know about `run-like-in-org-mode'. Very cool. > >> What I have now done as well is to extend orgstruct++-mode so that it >> will do what you ask for. You neet to pull the git version for this >> change. > > I use this full time in text-based modes now. It's especially great > for > composing emails (message-mode) and editing commit messages > (magit-log-edit-mode). > > Thanks for adding this feature. I understand why it can't be the > default, but I would encourage folks to try it. It works really well > for me. > > Have a good one, > /au > > -- > Austin Frank > http://aufrank.net > GPG Public Key (D7398C2F): http://aufrank.net/personal.asc > _______________________________________________ > 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