From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Fantin Subject: Re: Re: Src blocks fontification issue Date: Fri, 3 Sep 2010 20:38:05 +0200 Message-ID: References: <87eidb224b.fsf@stats.ox.ac.uk> <87hbi6hmvk.fsf@stats.ox.ac.uk> <33867E1A-68A7-4891-A7AE-24B73B5EC779@gmail.com> 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=51068 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OrbAK-0007Qh-TH for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 14:40:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OrbA6-00038d-2J for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 14:38:55 -0400 Received: from mail-gw0-f41.google.com ([74.125.83.41]:54671) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OrbA5-00038Y-VA for emacs-orgmode@gnu.org; Fri, 03 Sep 2010 14:38:54 -0400 Received: by gwj16 with SMTP id 16so1112042gwj.0 for ; Fri, 03 Sep 2010 11:38:53 -0700 (PDT) In-Reply-To: <33867E1A-68A7-4891-A7AE-24B73B5EC779@gmail.com> 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: Carsten Dominik Cc: Dan Davison , emacs-orgmode@gnu.org Carsten, I'll look into it when I get a chance, even though I doubt I'll be able to fix it if you describe it as tricky yourself ;) Any pointers on where to start looking though ? Cheers On Fri, Sep 3, 2010 at 7:56 PM, Carsten Dominik wrote: > > On 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 Fontification: Better treatment of #+ lines and blocks >> >> =C2=A0 The content of blocks like #+begin_example will be marked with a >> =C2=A0 separate face. =C2=A0That same face is also used for single lines >> =C2=A0 introducing text for specific backends. >> --8<---------------cut here---------------end--------------->8--- > > I remember that this was quite tricky to implement, lots of problems beca= use > you have to scan outside of the range font-lock wants to look at etc. > Would be great if you could find out how to fix this. > > Before this patch, the text in block would be fontified like org-mode, wh= ich > looked terrible ... :) > > - Carsten > > >> >> 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 (add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)= $" . >> org-mode)) >> =C2=A0 (add-hook 'org-mode-hook >> =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 ;; windmove fix >> =C2=A0 (add-hook 'org-shiftup-final-hook 'windmove-up) >> =C2=A0 (add-hook 'org-shiftleft-final-hook 'windmove-left) >> =C2=A0 (add-hook 'org-shiftdown-final-hook 'windmove-down) >> =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 org-special-ctrl-a/e t >> =C2=A0 =C2=A0 =C2=A0 org-special-ctrl-k t >> =C2=A0 =C2=A0 =C2=A0 org-completion-use-ido t >> =C2=A0 =C2=A0 =C2=A0 org-log-into-drawer t >> =C2=A0 =C2=A0 =C2=A0 org-startup-indented nil >> =C2=A0 =C2=A0 =C2=A0 org-hide-leading-stars t >> =C2=A0 =C2=A0 =C2=A0 org-startup-folded t >> =C2=A0 =C2=A0 =C2=A0 org-empty-line-terminates-plain-lists t >> =C2=A0 =C2=A0 =C2=A0 org-adapt-indentation t >> =C2=A0 =C2=A0 =C2=A0 org-yank-folded-subtrees t >> =C2=A0 =C2=A0 =C2=A0 org-M-RET-may-split-line nil >> =C2=A0 =C2=A0 =C2=A0 org-enforce-todo-dependencies t >> =C2=A0 =C2=A0 =C2=A0 org-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 >>> wrote: >>>> >>>> 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 = in >>>> 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=A0nil `(("(?\\(lambda\\>\\)" >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 (0 (progn (compose-region (match-beginning= 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 ,(make-char 'greek-iso8859= -7 107)) >>>> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 nil))))= )) >>>> >>>>> >>>>> 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 >> >> _______________________________________________ >> 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 > > - Carsten > > > >