Carsten Dominik <[EMAIL PROTECTED]> writes: Hi Carsten,
> "?..." is not a correct regular expression in Emacs. You are using > wildcard synax, it seems. No, I used (concat comment-starter "?...") to make the comment starter optional. But that's not fully correct. In elisp the comment starter may be there multiple times. So now I go with this: --8<---------------cut here---------------start------------->8--- (defun org-context-p (&rest contexts) (let* ((pos (point)) (comment-starter (replace-regexp-in-string "[ ]+$" "" (or comment-start ""))) (regexp-start (if (string= "" comment-start) "" (concat comment-start "*")))) (goto-char (point-at-bol)) (let ((ret (prog1 (or (and (memq 'table contexts) (looking-at (concat regexp-start "[ \t]*|"))) (and (memq 'headline contexts) (looking-at (concat regexp-start "\\*+"))) (and (memq 'item contexts) (looking-at (concat regexp-start "[ \t]*\\([-+*] \\|[0-9]+[.)] \\)")))) (goto-char pos)))) (message "org-context-p with regexp-start = %s ==> %s" regexp-start ret)))) --8<---------------cut here---------------end--------------->8--- Here's a short elisp test file: --8<---------------cut here---------------start------------->8--- ;;* First Headline ; org-context-p ==> t, no visible action ; org-context-p ==> nil, no visible action (defun foo () nil) ; org-context-p ==> nil, TAB deletes indentation! ; org-context-p ==> nil, TAB indents to nil's column ;;** Level2 ; org-context-p ==> t, TAB indents heading to nil's column (+ 1 2 3) ;;** Another Level2 (- 1 1) ;;*** Three ;;* Second part (progn (list 1 2 3) ; org-context-p ==> nil, TAB deletes indentation! (* 1 2 3)) ; org-context-p ==> nil, TAB deletes indentation! ;;* Third part ; org-context-p ==> t, TAB indents heading to ; column of (* 1 2 3) --8<---------------cut here---------------end--------------->8--- Behind the lines I've written what my redefinition of `org-context-p' returns and what TAB does (*without* these comments). As you can see `org-context-p' seems to work correctly, but TAB doesn't cycle through the visibility states but instead breakes indentation. And if I invoke `M-x org-cycle' on a headline nothing happens. As it seems, `org-context-p' is not the only function which has to be adapted to do the right thing if headlines are inside comments. > If you want to allow extra characters # and ; at the begin of the line, try > something like > > "[;#]*..." Yes, see the code above. > I am not sure if this will work, in particular if it will make > structure editing work. Sadly, it's not that easy. > Give it a try and send us a report, ok? Done! Bye, Tassilo _______________________________________________ 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