* Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode
@ 2015-11-08 15:02 Jonas Bernoulli
2015-11-08 15:24 ` Nicolas Goaziou
0 siblings, 1 reply; 14+ messages in thread
From: Jonas Bernoulli @ 2015-11-08 15:02 UTC (permalink / raw)
To: emacs-orgmode
Hello,
Until a few months ago I was able to use `org-cycle' in
`emacs-lisp-mode' buffers, and it just worked after turning on
`outline-minor-mode' but not `orgstruct-mode'. I am using the
development versions of both Emacs (25.0.50) and Org (9.0).
But somewhere along the way `org-cycle' partially broke when used like
this. When switching to the CHILDREN state I now see this:
;;; heading
...
;;; next heading
instead of (when there is only code in the section)
;;; heading
(defun foo ()...
(defun bar ()...
;;; next heading
or (when there are subheadings)
;;; heading
;;;; sub-heading one...
;;;; sub-heading two...
;;; next heading
I would like to use `orgstruct-mode' in `emacs-lisp-mode' but I cannot
get it to work at all. So for now I would be happy if I could just use
`org-cycle' as I used to.
Finally I have gotten around to investigate this and came across this:
;; This is done in `emacs-lisp-mode':
(setq-local outline-regexp ";;;\\(;* [^ \t\n]\\|###autoload\\)\\|(")
(defun lisp-outline-level ()
"Lisp mode `outline-level' function."
(let ((len (- (match-end 0) (match-beginning 0))))
(if (looking-at "(\\|;;;###autoload")
1000
len)))
This doesn't make any sense to me. Maybe these values now take the
needs of `orgstruct-mode' into account, but when thinking just of
`outline-minor-mode', then I would expect something like this instead:
(setq-local outline-regexp "\\(;;;+ \\)\\|(")
(defun lisp-outline-level ()
(cond ((match-beginning 1) (- (length (match-string 1)) 2))
((match-beginning 0) 6)))
In addition to that I also had to add this for `org-cycle' to work in
`emacs-lisp-mode' again.
(add-hook 'org-cycle-hook 'org-cycle-elisp-kludge)
(defun org-cycle-elisp-kludge (state)
(when (and (eq state 'children)
(derived-mode-p 'emacs-lisp-mode))
(save-excursion
(goto-char eoh)
(beginning-of-line)
(outline-show-branches))))
(defun org-before-first-heading-p ()
(if (derived-mode-p 'emacs-lisp-mode)
nil ; in that mode the below always return t
(save-excursion
(end-of-line)
(null (re-search-backward org-outline-regexp-bol nil t)))))
Now, I am probably barking at the wrong tree here, but since I also
couldn't get `orgstruct-mode' to work at all, I just investigated the
code which I still somewhat understood, `orgstruct-setup' et al is
beyond me.
So I guess my questions are:
1. In what way does the default value of `outline-regexp' and the
definition of `lisp-outline-level' make sense?
2. How do I get from `emacs -Q' to TAB on a heading in `emacs-lisp-mode'
cycling though the tree states (with or without `orgstruct-mode').
The Org manual sais this:
> You can also use Org structure editing to fold and unfold headlines
> in _any_ file, provided you defined ‘orgstruct-heading-prefix-regexp’:
> the regular expression must match the local prefix to use before Org’s
> headlines. For example, if you set this variable to ‘";; "’ in Emacs
> Lisp files, you will be able to fold and unfold headlines in Emacs Lisp
> commented lines. Some commands like ‘org-demote’ are disabled when the
> prefix is set, but folding/unfolding will work correctly.
At least for me that wasn't the case at all (what keys do I have to
press to do the folding/unfolding?).
Thanks for your help,
Jonas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 15:02 Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode Jonas Bernoulli @ 2015-11-08 15:24 ` Nicolas Goaziou 2015-11-08 15:48 ` Jonas Bernoulli 0 siblings, 1 reply; 14+ messages in thread From: Nicolas Goaziou @ 2015-11-08 15:24 UTC (permalink / raw) To: Jonas Bernoulli; +Cc: emacs-orgmode Hello, Jonas Bernoulli <jonas@bernoul.li> writes: > I would like to use `orgstruct-mode' in `emacs-lisp-mode' but I cannot > get it to work at all. So for now I would be happy if I could just use > `org-cycle' as I used to. Thank you for the report. `orgstruct-mode' really needs some love. Being to much linked with Org's innards, it prevents us from using faster algorithms in pure Org buffers. Anyway, I pushed a fix for the issue. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 15:24 ` Nicolas Goaziou @ 2015-11-08 15:48 ` Jonas Bernoulli 2015-11-08 17:34 ` Aaron Ecay ` (2 more replies) 0 siblings, 3 replies; 14+ messages in thread From: Jonas Bernoulli @ 2015-11-08 15:48 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > `orgstruct-mode' really needs some love. It's really hard to understand what is going on for someone not familiar with the Org code. Furthermore I am not using the default Emacs bindings (but I also tested with emacs -Q), so code that generates commands and bindings, like `outstruct-setup' does, always makes me uncomfortable, as it usually isn't flexible enough to deal with heavily modified bindings. > Anyway, I pushed a fix for the issue. Thanks. But could you please change it to (if (or outline-minor-mode orgstruct-mode) (call-interactively #'show-children) ...) `outline-minor-mode' combined with `org-cycle' gives me the feature I *really* want/need. `orgstruct-mode' sounds like it could be really useful too, but as I mentioned it doesn't work for me at all. So for now I would like to stick to just `outline-minor-mode'. Thanks Jonas Ps: I am still not sure whether I am just doing something stupid or why else `orgstruct-mode' doesn't work for me. So I would apprechiate a little tutorial starting from emacs -Q that demonstrates what setup is required and what keys I have to press for things to happen. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 15:48 ` Jonas Bernoulli @ 2015-11-08 17:34 ` Aaron Ecay 2015-11-09 23:40 ` Jonas Bernoulli 2015-11-08 17:36 ` Jorge A. Alfaro-Murillo 2015-11-14 8:37 ` Nicolas Goaziou 2 siblings, 1 reply; 14+ messages in thread From: Aaron Ecay @ 2015-11-08 17:34 UTC (permalink / raw) To: Jonas Bernoulli, Nicolas Goaziou; +Cc: emacs-orgmode Hi Jonas, 2015ko azaroak 8an, Jonas Bernoulli-ek idatzi zuen: > > `outline-minor-mode' combined with `org-cycle' gives me the feature I > *really* want/need. Thorsten Jolitz wrote the outshine library to provide something like this. Sadly it’s not actively maintained ATM, but I believe it still works fine, and it may be an alternative route towards the features you are looking for. The package is on github: <https://github.com/tj64/outshine>. It’s also available through melpa. -- Aaron Ecay ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 17:34 ` Aaron Ecay @ 2015-11-09 23:40 ` Jonas Bernoulli 2015-11-10 10:54 ` Rasmus 2015-12-01 20:06 ` Thorsten Jolitz 0 siblings, 2 replies; 14+ messages in thread From: Jonas Bernoulli @ 2015-11-09 23:40 UTC (permalink / raw) To: Aaron Ecay; +Cc: emacs-orgmode, Nicolas Goaziou Aaron Ecay <aaronecay@gmail.com> writes: > Thorsten Jolitz wrote the outshine library I know. I used it for a while and contributed a few commits. But I pretty much only used the cycling functionality at the time and when I discovered that `org-cycle' worked for that too, I stopped using outshine. It also felt a bit like re-inventing the wheel. > Sadly it’s not actively maintained ATM, but I believe it still works > fine, That's a bit of an understatement; if I remember correctly Thorsten stopped using Emacs. > and it may be an alternative route towards the features you are > looking for. Well currently I am just using `org-cycle' + `outline-minor-mode', which works well enough for now. But eventually I would like to also start using Org's navigational commands. Unfortunately `orgstruct-mode' only supports org-like headings (;; * heading\n;; ** subheadng) and not standard Emacs headings (;;; heading\n;;;; subheading). I hope someone teaches `orgstruct-mode' to support the latter too. Otherwise I will probably give `outshine' another chance. But thanks for the tip :-) Jonas ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-09 23:40 ` Jonas Bernoulli @ 2015-11-10 10:54 ` Rasmus 2015-12-01 20:06 ` Thorsten Jolitz 1 sibling, 0 replies; 14+ messages in thread From: Rasmus @ 2015-11-10 10:54 UTC (permalink / raw) To: emacs-orgmode Hi Jonas, Jonas Bernoulli <jonas@bernoul.li> writes: > Well currently I am just using `org-cycle' + `outline-minor-mode', which > works well enough for now. But eventually I would like to also start > using Org's navigational commands. Unfortunately `orgstruct-mode' only > supports org-like headings (;; * heading\n;; ** subheadng) and not > standard Emacs headings (;;; heading\n;;;; subheading). I hope someone > teaches `orgstruct-mode' to support the latter too. Otherwise I will > probably give `outshine' another chance. My init file is structured like this, and I mainly use org-cycle as well. Note that there’s an outstanding bug related to orgstruct and org-show-children (as I remember). ;;* TEXT MODES ;;** AUCTeX ;; ... ;;** Reftex ;; ... ;;* PROG MODES ;; ... ;;** Magit ;;... ;;... ;; Local Variables: ;; outline-regexp: ";;\\*+\\|\\`" ;; orgstruct-heading-prefix-regexp: ";;\\*+\\|\\`" ;; eval: (when after-init-time (orgstruct-mode) (org-global-cycle 3)) ;; End: Rasmus -- Vote for Dick Taid in an election near you! ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-09 23:40 ` Jonas Bernoulli 2015-11-10 10:54 ` Rasmus @ 2015-12-01 20:06 ` Thorsten Jolitz 1 sibling, 0 replies; 14+ messages in thread From: Thorsten Jolitz @ 2015-12-01 20:06 UTC (permalink / raw) To: emacs-orgmode Jonas Bernoulli <jonas@bernoul.li> writes: Hi List, > Aaron Ecay <aaronecay@gmail.com> writes: > >> Thorsten Jolitz wrote the outshine library > > I know. I used it for a while and contributed a few commits. But I > pretty much only used the cycling functionality at the time and when > I discovered that `org-cycle' worked for that too, I stopped using > outshine. It also felt a bit like re-inventing the wheel. > >> Sadly it’s not actively maintained ATM, but I believe it still works >> fine, When I was a heavy outshine user myself it was feature rich and very stable, and I think it still should be. So being unmaintained does not mean you can or should not use it, it only means that I did not add any new features the last year (and sometimes miss a bug report, unfortunately). But the three libraries of the outshine-suite (outshine.el, outorg.el and navi-mode.el) already have so many features that even the main author could not remember all of them ... > That's a bit of an understatement; if I remember correctly Thorsten > stopped using Emacs. Its true that events in my life kicked me out of the (enjoyable) Emacs universe, but now I actually use Emacs again once in a while, and hope more frequently in the future. >> and it may be an alternative route towards the features you are >> looking for. > > Well currently I am just using `org-cycle' + `outline-minor-mode', which > works well enough for now. But eventually I would like to also start > using Org's navigational commands. Unfortunately `orgstruct-mode' only > supports org-like headings (;; * heading\n;; ** subheadng) and not > standard Emacs headings (;;; heading\n;;;; subheading). I hope someone > teaches `orgstruct-mode' to support the latter too. Otherwise I will > probably give `outshine' another chance. When there are problems with orgstruct - while waiting for a new implementation based on outline-minor-mode, why not use an existing, much more powerfull and very stable alternative based on outline-minor-mode? When writing an org-minor-mode (orgstruct, outshine, ...) the most frequent FAQ is by definition: "I want Org-mode feature XYZ in org-minor-mode too." The org-minor-mode author then figures out quickly that - Org-mode is not a library engineered for reuse by other applications. Org functions do many things, and its often hard or impossible to just call them for a result or even copy&paste them for reuse. - he does not want to rewrite Org-mode My solution for outshine was ,----[ C-h f outshine-use-outorg RET ] | outshine-use-outorg is a Lisp function in `outshine.el'. | | (outshine-use-outorg FUN &optional WHOLE-BUFFER-P &rest FUNARGS) | | Use outorg to call FUN with FUNARGS on subtree or thing at point. | | FUN should be an Org-mode function that acts on the subtree or | org-element at point. Optionally, with WHOLE-BUFFER-P non-nil, | `outorg-edit-as-org' can be called on the whole buffer. | | Sets the variable `outshine-use-outorg-last-headline-marker' so | that it always contains a point-marker to the last headline this | function was called upon. `---- With this function potentially all Org-mode commands can easily be made available in outshine. In practise, some Org functions are really tricky and need some extra care, but many work out of the box. Here is what I more or less implemented already. Especially clocking was tricky, don't remember if it really worked in the end: ,---- | 39 matches for "^[[:space:]]*(def[maus][^eltu][a-z]*\*? " in buffer: outshine.el | 30:(defun outshine-deadline (&optional arg) | 40:(defun outshine-export-dispatch (&optional arg) | 59:(defun outshine-insert-link () | 67:(defun outshine-open-at-point (&optional whole-buffer-p arg reference-buffer) | 84:(defun outshine-set-tags-command () | 97:(defun outshine-schedule (&optional arg) | 108:(defun outshine-todo (&optional arg) | 148:(defun outshine-time-stamp-inactive (&optional arg) | 213:(defun outshine-priority () | 228:(defun outshine-time-stamp (&optional arg) | 254:(defun outshine-toggle-fixed-width () | 260:(defun outshine-toggle-comment () | 304:(defun outshine-sort-entries (&optional arg) | 366:(defun outshine-previous-block () | 373:(defun outshine-next-block () | 379:(defun outshine-insert-last-stored-link () | 571:(defun outshine-toggle-checkbox (&optional arg) | 596:(defun outshine-clock-in () | 606:(defun outshine-clock-goto () | 625:(defun outshine-next-link () | 632:(defun outshine-clock-out () | 644:(defun outshine-previous-link () | 651:(defun outshine-clock-cancel () | 662:(defun outshine-clock-report (&optional arg) | 732:(defun outshine-timer-pause-or-continue (&optional arg) | 738:(defun outshine-timer-item () | 744:(defun outshine-timer () | 750:(defun outshine-timer-start () | 756:(defun outshine-timer-cancel-timer () | 762:(defun outshine-timer-set-timer () | 768:(defun outshine-agenda-set-restriction-lock (&optional arg) | 780:(defun outshine-agenda-remove-restriction-lock (&optional include-org-p) | 797:(defun outshine-inc-effort () | 818:(defun outshine-set-property-and-value () | 847:(defun outshine-toggle-archive-tag () | 865:(defun outshine-insert-drawer () | 871:(defun outshine-set-effort (&optional arg) | 878:(defun outshine-footnote-action (&optional special) | 906:(defun outshine-set-property () `---- There are much more outcommented function skeletons waiting for (your?) implementation in section ,---- | ;;; Use Outorg for calling Org `---- of outshine.el. Here are a few implementation examples to show how easy this is: ,---- | ;; C-c C-x d org-insert-drawer | (defun outshine-insert-drawer () | "Call outorg to trigger `org-insert-drawer'." | (interactive) | (outshine-use-outorg 'org-insert-drawer)) | | ;; C-c C-x e org-set-effort | (defun outshine-set-effort (&optional arg) | "Call outorg to trigger `org-set-effort'." | (interactive "p") | (outshine-use-outorg | 'org-set-effort nil arg)) | | ;; C-c C-x f org-footnote-action | (defun outshine-footnote-action (&optional special) | "Call outorg to trigger `org-footnote-action'." | (interactive "P") | (outshine-use-outorg | 'org-footnote-action 'WHOLE-BUFFER-P special)) | | ;; C-c C-x p org-set-property | (defun outshine-set-property () | "Call outorg to trigger `org-set-property'." | (interactive) | (outshine-use-outorg 'org-set-property)) `---- With these commands, you can call Org-mode functionality directly in comment sections of programming modes like emacs-lisp-mode, e.g. add TODOs, TAGS, Properties, timestamps, (maybe) even clock-in and out. Here I added, as an example, some Org-mode headline stuff to org.el, directly in the elisp buffer (with outline-minor-mode and outshine activated): ,---- | ;;; TODO [#C] Commentary: :urgent: | ;; :PROPERTIES: | ;; :CATEGORY: office | ;; :END: | | ;; Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing | ;; project planning with a fast and effective plain-text system. `---- -- cheers, Thorsten ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 15:48 ` Jonas Bernoulli 2015-11-08 17:34 ` Aaron Ecay @ 2015-11-08 17:36 ` Jorge A. Alfaro-Murillo 2015-11-09 23:30 ` Jonas Bernoulli 2015-11-14 8:37 ` Nicolas Goaziou 2 siblings, 1 reply; 14+ messages in thread From: Jorge A. Alfaro-Murillo @ 2015-11-08 17:36 UTC (permalink / raw) To: emacs-orgmode Jonas Bernoulli writes: > `orgstruct-mode' sounds like it could be really useful too, but > as I mentioned it doesn't work for me at all. So for now I > would like to stick to just `outline-minor-mode'. > > Thanks > Jonas > > Ps: I am still not sure whether I am just doing something stupid > or why else `orgstruct-mode' doesn't work for me. So I would > apprechiate a little tutorial starting from emacs -Q that > demonstrates what setup is required and what keys I have to > press for things to happen. Generally it is enough to set orgstruct-heading-prefix-regexp and turn-on-orgstruct. I do this on a per mode basis, for example: #+BEGIN_SRC emacs-lisp (add-hook 'elisp-mode-hook 'turn-on-orgtbl) (add-hook 'elisp-mode-hook (lambda () (setq-local orgstruct-heading-prefix-regexp ";; "))) #+END_SRC Then you can organize your code using ;; * section-name ;; ** subsection-name and folding with TAB, shift-TAB, etc will work when you are in those lines. To use lists you just have to start a line with -, +, 1., etc and then lists keybindings work, for example M-C-m for new items. I do not know why lists do not respect orgstruct-heading-prefix-regexp, it has always seem weird to me that I cannot gain orgstruct functionality with something like: ;; - first item ;; - second item -- Jorge. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 17:36 ` Jorge A. Alfaro-Murillo @ 2015-11-09 23:30 ` Jonas Bernoulli 0 siblings, 0 replies; 14+ messages in thread From: Jonas Bernoulli @ 2015-11-09 23:30 UTC (permalink / raw) To: Jorge A. Alfaro-Murillo; +Cc: emacs-orgmode > #+BEGIN_SRC emacs-lisp > (add-hook 'elisp-mode-hook 'turn-on-orgtbl) > (add-hook 'elisp-mode-hook > (lambda () > (setq-local orgstruct-heading-prefix-regexp > ";; "))) > #+END_SRC It appears the stupid thing I did was that I used ";;" instead. Thanks for the help. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-08 15:48 ` Jonas Bernoulli 2015-11-08 17:34 ` Aaron Ecay 2015-11-08 17:36 ` Jorge A. Alfaro-Murillo @ 2015-11-14 8:37 ` Nicolas Goaziou 2015-11-18 9:57 ` Jonas Bernoulli 2 siblings, 1 reply; 14+ messages in thread From: Nicolas Goaziou @ 2015-11-14 8:37 UTC (permalink / raw) To: Jonas Bernoulli; +Cc: emacs-orgmode Hello, Jonas Bernoulli <jonas@bernoul.li> writes: > Thanks. But could you please change it to > > (if (or outline-minor-mode orgstruct-mode) > (call-interactively #'show-children) > ...) You could set `orgstruct-mode' to a non-nil value whenever `outline-minor-mode' is enabled. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-14 8:37 ` Nicolas Goaziou @ 2015-11-18 9:57 ` Jonas Bernoulli 2015-11-19 8:39 ` Nicolas Goaziou 0 siblings, 1 reply; 14+ messages in thread From: Jonas Bernoulli @ 2015-11-18 9:57 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Hello, > > Jonas Bernoulli <jonas@bernoul.li> writes: > >> Thanks. But could you please change it to >> >> (if (or outline-minor-mode orgstruct-mode) >> (call-interactively #'show-children) >> ...) > > You could set `orgstruct-mode' to a non-nil value whenever > `outline-minor-mode' is enabled. I could (instead I am currently just maintaining a local patch), but what is the reasoning for not just doing what I suggested? ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-18 9:57 ` Jonas Bernoulli @ 2015-11-19 8:39 ` Nicolas Goaziou 2015-11-19 19:50 ` Jonas Bernoulli 0 siblings, 1 reply; 14+ messages in thread From: Nicolas Goaziou @ 2015-11-19 8:39 UTC (permalink / raw) To: Jonas Bernoulli; +Cc: emacs-orgmode Hello, Jonas Bernoulli <jonas@bernoul.li> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> Jonas Bernoulli <jonas@bernoul.li> writes: >> >>> Thanks. But could you please change it to >>> >>> (if (or outline-minor-mode orgstruct-mode) >>> (call-interactively #'show-children) >>> ...) >> >> You could set `orgstruct-mode' to a non-nil value whenever >> `outline-minor-mode' is enabled. > > I could (instead I am currently just maintaining a local patch), > but what is the reasoning for not just doing what I suggested? There is no reason for Org's core to know about `outline-minor-mode', or any other minor mode in the wild. IMO, using a hook is much more simple than maintaining a local patch. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-19 8:39 ` Nicolas Goaziou @ 2015-11-19 19:50 ` Jonas Bernoulli 2015-11-19 21:47 ` Rasmus 0 siblings, 1 reply; 14+ messages in thread From: Jonas Bernoulli @ 2015-11-19 19:50 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Jonas Bernoulli <jonas@bernoul.li> writes: > >> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >> >>> Jonas Bernoulli <jonas@bernoul.li> writes: >>> >>>> Thanks. But could you please change it to >>>> >>>> (if (or outline-minor-mode orgstruct-mode) >>>> (call-interactively #'show-children) >>>> ...) >>> >>> You could set `orgstruct-mode' to a non-nil value whenever >>> `outline-minor-mode' is enabled. >> >> I could (instead I am currently just maintaining a local patch), >> but what is the reasoning for not just doing what I suggested? > > There is no reason for Org's core to know about `outline-minor-mode', or > any other minor mode in the wild. I wouldn't group `outline-minor-mode' among "any other minor mode in the wild", after all it was Outline which gave birth to Org and `outline-minor-mode' is part of `outline.el'. Didn't Carsten write `outline-magic.el' (containing `outline-cycle') before moving on to greater things? Unfortunately though `outline-magic.el' does not appear to have aged so well (at least that's how I remember it from when I last checked). Anyway I think `outline-minor-mode' deserves some special attention, but of course that's the call of the maintainers. > IMO, using a hook is much more simple than maintaining a local patch. Not for me. I install all packages using Git submodules, which is very convenient because I contribute to most packages I use, at least in some minor way like addressing compilation warnings. If a patch isn't accepted upstream, then the only additional work required is to call `git config branch.master.rebase true' once and then occasionally `git push tarsius master'. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode 2015-11-19 19:50 ` Jonas Bernoulli @ 2015-11-19 21:47 ` Rasmus 0 siblings, 0 replies; 14+ messages in thread From: Rasmus @ 2015-11-19 21:47 UTC (permalink / raw) To: emacs-orgmode Hi Jonas, Jonas Bernoulli <jonas@bernoul.li> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> Jonas Bernoulli <jonas@bernoul.li> writes: >> >>> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >>> >>>> Jonas Bernoulli <jonas@bernoul.li> writes: >>>> >>>>> Thanks. But could you please change it to >>>>> >>>>> (if (or outline-minor-mode orgstruct-mode) >>>>> (call-interactively #'show-children) >>>>> ...) >>>> >>>> You could set `orgstruct-mode' to a non-nil value whenever >>>> `outline-minor-mode' is enabled. >>> >>> I could (instead I am currently just maintaining a local patch), >>> but what is the reasoning for not just doing what I suggested? >> >> There is no reason for Org's core to know about `outline-minor-mode', or >> any other minor mode in the wild. > > I wouldn't group `outline-minor-mode' among "any other minor mode > in the wild", after all it was Outline which gave birth to Org and > `outline-minor-mode' is part of `outline.el'. Didn't Carsten write > `outline-magic.el' (containing `outline-cycle') before moving on to > greater things? Unfortunately though `outline-magic.el' does not appear > to have aged so well (at least that's how I remember it from when I last > checked). orgstruct-mode is a mess and we plan to address it. When someone finds the time to do so. Indeed, there was a thread about the issue of org-show-children some time ago. Cheers, Rasmus -- Dung makes an excellent fertilizer ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-12-01 20:06 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-11-08 15:02 Using orgstruct-mode (or just org-cycle) in emacs-lisp-mode Jonas Bernoulli 2015-11-08 15:24 ` Nicolas Goaziou 2015-11-08 15:48 ` Jonas Bernoulli 2015-11-08 17:34 ` Aaron Ecay 2015-11-09 23:40 ` Jonas Bernoulli 2015-11-10 10:54 ` Rasmus 2015-12-01 20:06 ` Thorsten Jolitz 2015-11-08 17:36 ` Jorge A. Alfaro-Murillo 2015-11-09 23:30 ` Jonas Bernoulli 2015-11-14 8:37 ` Nicolas Goaziou 2015-11-18 9:57 ` Jonas Bernoulli 2015-11-19 8:39 ` Nicolas Goaziou 2015-11-19 19:50 ` Jonas Bernoulli 2015-11-19 21:47 ` Rasmus
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).