From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Fantin Subject: Re: Src blocks fontification issue Date: Fri, 3 Sep 2010 17:50:22 +0200 Message-ID: References: <87eidb224b.fsf@stats.ox.ac.uk> <87hbi6hmvk.fsf@stats.ox.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from [140.186.70.92] (port=46190 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrYXi-0004F1-2o for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:51:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrYXf-0000GE-OU for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:51:05 -0400 Received: from mail-iw0-f169.google.com ([209.85.214.169]:40693) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrYXf-0000G6-Il for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 11:51:03 -0400 Received: by iwn33 with SMTP id 33so2352760iwn.0 for ; Fri, 03 Sep 2010 08:51:02 -0700 (PDT) In-Reply-To: <87hbi6hmvk.fsf@stats.ox.ac.uk> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Dan Davison Cc: emacs-orgmode@gnu.org I'm sorry if I implied that this issue appeared since your changes Dan, as it's not the case indeed. I tried un-indenting the scr block headers, and the problem goes away, so I'd say it's definitely related to the handling of indented headers. I looked at that commit and the regexps do take care of detecting them, but I'm afraid the code is too involved for me to be of any help... I hope this can get fixed, if not I might consider sticking to col 0 for src blocks... Cheers On Fri, Sep 3, 2010 at 5:23 PM, Dan Davison wrote: > Julien Fantin writes: > >> I tried opening the file with a bare emacs and the problem persists. >> >> I use true indentation in my files, which I think isn't what most >> people do, so maybe the parser gets confused by a combination of >> blocks not starting at column 0, and some other formatting, but I'm >> failing to see the pattern... > > Me too. While you may well be right that I have broken something, first > let's concentrate on what appears to be a long-standing bug; in fact I > think it has never worked correctly. Basic fontification of src blocks > elements was introduced over a year ago at this commit > > --8<---------------cut here---------------start------------->8--- > commit 476493d3b300b8dc379ea7e42c974461d6f3dfb5 > Author: Carsten Dominik > Date: =C2=A0 Sat May 23 22:58:38 2009 +0200 > > =C2=A0 =C2=A0Fontification: Better treatment of #+ lines and blocks > > =C2=A0 =C2=A0The content of blocks like #+begin_example will be marked wi= th a > =C2=A0 =C2=A0separate face. =C2=A0That same face is also used for single = lines > =C2=A0 =C2=A0introducing text for specific backends. > --8<---------------cut here---------------end--------------->8--- > > Priot to that commit the whole block, and the begin_src end_src lines > had no special fontification. After that commit, a test file (below) > based on yours is not correctly fontified on startup. It is correctly > fontified when font-lock is triggered subsequently by some keyborad > input nearby. But it seems very sensitive to changes in the test file > and I haven't worked out what's going on. > > Test file: the final code block is not fontified, nor are the BEGIN_SRC > and END_SRC lines. (emacs 24, org commit 476493d3b300 and subsequent) > > --8<---------------cut here---------------start------------->8--- > * Setup > =C2=A0#+BEGIN_SRC emacs-lisp > =C2=A0 =C2=A0(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|t= xt\\)$" . org-mode)) > =C2=A0 =C2=A0(add-hook 'org-mode-hook > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0'(lambda () > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (auto-fill-mode t= ) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (define-key org-m= ode-map (kbd "RET") 'org-return-indent) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (flyspell-mode 1)= )) > > > =C2=A0 =C2=A0;; windmove fix > =C2=A0 =C2=A0(add-hook 'org-shiftup-final-hook 'windmove-up) > =C2=A0 =C2=A0(add-hook 'org-shiftleft-final-hook 'windmove-left) > =C2=A0 =C2=A0(add-hook 'org-shiftdown-final-hook 'windmove-down) > =C2=A0 =C2=A0(add-hook 'org-shiftright-final-hook 'windmove-right) > =C2=A0#+END_SRC > ** Helpers > =C2=A0#+BEGIN_SRC emacs-lisp > =C2=A0 (defun is-bogus-file-p (file) > =C2=A0 =C2=A0 "Return t if file is a temporary file as in .#foo or a . ..= reference returned by directory-files" > =C2=A0 =C2=A0 (or (member file '("." "..")) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 (string-match "^.#.+" file))) > =C2=A0#+END_SRC > * Customization > =C2=A0#+BEGIN_SRC emacs-lisp > =C2=A0(setq org-return-follows-link t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-special-ctrl-a/e t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-special-ctrl-k t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-completion-use-ido t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-log-into-drawer t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-startup-indented nil > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-hide-leading-stars t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-startup-folded t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-empty-line-terminates-plain-lists t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-adapt-indentation t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-yank-folded-subtrees t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-M-RET-may-split-line nil > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-enforce-todo-dependencies t > =C2=A0 =C2=A0 =C2=A0 =C2=A0org-enforce-todo-checkbox-dependencies t) > > =C2=A0;; (setq org-blank-before-new-entry '((heading . always) > =C2=A0;; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(plain-list-i= tem . always))) > =C2=A0#+END_SRC > --8<---------------cut here---------------end--------------->8--- > > > Dan > >> >> Here is one of the incriminated files: >> >> http://pastebin.com/raw.php?i=3DyxdUmpKx >> >> Hope this is any help... >> >> Cheers >> >> On Fri, Sep 3, 2010 at 12:48 AM, Dan Davison wr= ote: >>> Julien Fantin writes: >>> >>>> First congratulations on adding in-line fontification to source >>>> blocks, that's a great addition. >>>> >>>> However, since I pulled those changes, a recurring issue I've been >>>> having has become even more annoying. >>>> >>>> When opening an org file, some src blocks headers don't seem to get >>>> parsed properly, and now as a result, don't get fontified. >>>> They are functional though, since they properly get tangled, and C-c ' >>>> performs as expected. >>>> If I edit the header line, or the ones directly before and after it, >>>> the block gets back to normal. >>>> >>>> Here is a screenshot to make things clearer, as you can see there are >>>> no differences in formatting, and those properties drawer don't have >>>> anything weird, just a single ID. >>>> >>>> http://imagebin.org/112413 >>>> >>>> I was meaning to post a screenshot with whitespace-mode on to stress >>>> that there are no apparent formatting differences, but it turned out >>>> activating it fixed the issue ! >>>> >>>> Not sure what I can do to further help debugging this ? >>> >>> Hi Julien, >>> >>> I don't have any clever ideas about this, so I'm just going to suggest >>> the obvious: first a sanity check that it doesn't occur with emacs >>> -Q. Then some sort of quasi-binary search through your emacs >>> customisations. It looks like you're storing your emacs customisation i= n >>> an Org file, so you can knock out entire trees with :tangle: no >>> properties. >>> >>> Dan >>> >>> p.s. On a completely unrelated note, if you haven't already tried it: >>> >>> (add-hook 'emacs-lisp-mode-hook 'pretty-lambdas) >>> >>> where the `pretty-lambdas' function is in starter-kit-defuns.org at >>> git://github.com/eschulte/emacs-starter-kit.git >>> >>> (defun pretty-lambdas () >>> =C2=A0(font-lock-add-keywords >>> =C2=A0 nil `(("(?\\(lambda\\>\\)" >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(0 (progn (compose-region (match-begi= nning 1) (match-end 1) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0,(make-char 'greek-i= so8859-7 107)) >>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ni= l)))))) >>> >>>> >>>> Cheers >>>> >>>> _______________________________________________ >>>> Emacs-orgmode mailing list >>>> Please 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 >> Please use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode >