* Bugs in org-cycle-internal-local?
@ 2012-12-17 21:43 Rémi Vanicat
2012-12-18 15:06 ` Bastien
0 siblings, 1 reply; 6+ messages in thread
From: Rémi Vanicat @ 2012-12-17 21:43 UTC (permalink / raw)
To: emacs-orgmode
Hello,
I've tried to use visibility cycling in outline minor mode[1] with ruby,
and I've a problem with when hiding some subtree: when the next subtree
on the same level begin with space char, its heading is put on the same
line than the current one:
Something like:
def get(info, attr, default=nil)
end
def initialize
become
def get(info, attr, default=nil)... def initialize
when I expect
def get(info, attr, default=nil)...
def initialize
The problem seem to come from the org-cycle-internal-local function that
wrongly put the end of the subtree in the middle of a line, if the
beginning of this line is all white character.
Here is the code I use to setup ruby-mode for interesting integration
with outline-minor-mode and org cycling facilities:
#+begin_src emacs-lisp
(defvar my-ruby-outline-regexp "### \\| *def\\>\\| *module\\>\\| *class\\>")
(defun my-ruby-outline-level ()
"compute the level of a outline for ruby"
(save-match-data
(cond
((looking-at "###") 1)
((looking-at "\\( *\\)")
(+ 2 (length (match-string 1)))))))
(defun define-ruby-outline ()
(make-local-variable 'outline-regexp)
(setq outline-regexp my-ruby-outline-regexp)
(make-local-variable 'outline-level)
(setq outline-level #'my-ruby-outline-level)
(outline-minor-mode))
(add-hook 'ruby-mode-hook 'define-ruby-outline)
(eval-after-load 'outline
'(progn
(define-key outline-minor-mode-map [(control tab)] 'org-cycle)
(define-key outline-minor-mode-map [(backtab)] 'org-global-cycle)))
#+end_src
[1]:http://orgmode.org/worg/org-faq.html#use-visibility-cycling-in-outline-mode
--
Rémi Vanicat
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bugs in org-cycle-internal-local?
2012-12-17 21:43 Bugs in org-cycle-internal-local? Rémi Vanicat
@ 2012-12-18 15:06 ` Bastien
2012-12-18 18:57 ` Rémi Vanicat
0 siblings, 1 reply; 6+ messages in thread
From: Bastien @ 2012-12-18 15:06 UTC (permalink / raw)
To: Rémi Vanicat; +Cc: emacs-orgmode
Hi Rémi,
Rémi Vanicat <vanicat@debian.org> writes:
> I've tried to use visibility cycling in outline minor mode[1] with ruby,
I tried your minor mode with the minimal snippet you gave and it works
well here. Could it be the version of org-mode you're using?
--
Bastien
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bugs in org-cycle-internal-local?
2012-12-18 15:06 ` Bastien
@ 2012-12-18 18:57 ` Rémi Vanicat
2012-12-25 3:21 ` Bastien
0 siblings, 1 reply; 6+ messages in thread
From: Rémi Vanicat @ 2012-12-18 18:57 UTC (permalink / raw)
To: Bastien; +Cc: emacs-orgmode
Bastien <bzg@altern.org> writes:
> Hi Rémi,
>
> Rémi Vanicat <vanicat@debian.org> writes:
>
>> I've tried to use visibility cycling in outline minor mode[1] with ruby,
>
> I tried your minor mode with the minimal snippet you gave and it works
> well here.
did you let the two space before the both def? Without those space,
every thing work find:
the full snipet is like
class XmmsInteract
def get(info, attr, default=nil)
info[attr].to_a[0][1]
end
def initialize
@looking_for_medialib_list = []
end
end
and the hide fail on the " def get"
I admit that the importance of the space could be not obvious in my
first email.
> Could it be the version of org-mode you're using?
It's stock org-mode from Emacs
--
Rémi Vanicat
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bugs in org-cycle-internal-local?
2012-12-18 18:57 ` Rémi Vanicat
@ 2012-12-25 3:21 ` Bastien
2012-12-27 15:44 ` Rémi Vanicat
0 siblings, 1 reply; 6+ messages in thread
From: Bastien @ 2012-12-25 3:21 UTC (permalink / raw)
To: Rémi Vanicat; +Cc: emacs-orgmode
Rémi Vanicat <vanicat@debian.org> writes:
> did you let the two space before the both def? Without those space,
> every thing work find:
>
> the full snipet is like
>
> class XmmsInteract
> def get(info, attr, default=nil)
> info[attr].to_a[0][1]
> end
>
> def initialize
> @looking_for_medialib_list = []
> end
> end
>
> and the hide fail on the " def get"
>
> I admit that the importance of the space could be not obvious in my
> first email.
Well, it was, I just skipped it inadvertantly.
I can reproduce the problem, but don't have an easy fix
at hand. If you find one, please let us know.
Thanks,
--
Bastien
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Bugs in org-cycle-internal-local?
2012-12-25 3:21 ` Bastien
@ 2012-12-27 15:44 ` Rémi Vanicat
2012-12-28 11:43 ` Bastien
0 siblings, 1 reply; 6+ messages in thread
From: Rémi Vanicat @ 2012-12-27 15:44 UTC (permalink / raw)
To: Bastien; +Cc: Rémi Vanicat, emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 279 bytes --]
Bastien <bzg@altern.org> writes:
> Rémi Vanicat <vanicat@debian.org> writes:
>
[...]
> Well, it was, I just skipped it inadvertantly.
> I can reproduce the problem, but don't have an easy fix
> at hand. If you find one, please let us know.
This seem to do it
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: move to beggining of line for end of section --]
[-- Type: text/x-diff, Size: 937 bytes --]
From e7344cd512af57fc9c85205876d6e3bfed2e53fe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Vanicat?= <vanicat@debian.org>
Date: Thu, 27 Dec 2012 16:41:28 +0100
Subject: [PATCH] Find end of section only at beginning of line when cycling
When hiding a section in non org-mode using outline-minor-mode, if the
next section begin with white space, its header line used to appeared
on the same line as the one we hide.
---
lisp/org.el | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lisp/org.el b/lisp/org.el
index ee4c70e..b1ffb8f 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -6399,7 +6399,8 @@ in special contexts.
(setq eos (save-excursion
(org-end-of-subtree t)
(unless (eobp)
- (skip-chars-forward " \t\n"))
+ (skip-chars-forward " \t\n")
+ (forward-line 0))
(if (eobp) (point) (1- (point)))))
(setq has-children
(or (save-excursion
--
1.7.10.4
[-- Attachment #3: Type: text/plain, Size: 26 bytes --]
--
Rémi Vanicat
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: Bugs in org-cycle-internal-local?
2012-12-27 15:44 ` Rémi Vanicat
@ 2012-12-28 11:43 ` Bastien
0 siblings, 0 replies; 6+ messages in thread
From: Bastien @ 2012-12-28 11:43 UTC (permalink / raw)
To: Rémi Vanicat; +Cc: emacs-orgmode
Hi Rémi,
Rémi Vanicat <vanicat@debian.org> writes:
> This seem to do it
Yes it does, but I implemented the fix another way.
I've taken the time to double-check the fix does not
slow down org-cycle, which is the main concern when
changing org-cycle-internal-* functions.
Thanks,
--
Bastien
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-12-28 17:40 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-17 21:43 Bugs in org-cycle-internal-local? Rémi Vanicat
2012-12-18 15:06 ` Bastien
2012-12-18 18:57 ` Rémi Vanicat
2012-12-25 3:21 ` Bastien
2012-12-27 15:44 ` Rémi Vanicat
2012-12-28 11:43 ` Bastien
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).