[Orgmode] Re: [BABEL] Two minor issues
Hi Jambunathan, Sorry to be so slow to get to these, Jambunathan K writes: > 1. Improper fontification of Babel blocks > >With babel native fontification on, I see that the commented elisp >code down below is not fontified. The problem persists if I kill the >buffer and find it again. > > #+begin_src emacs-lisp > ;; (message "Hello World") > #+end_src err, and I haven't had the energy to investigate this one yet! (While we're at it, here's another org-src fontification minibug that I expect others have noticed: the closing parenthesis here comes up fontified with what looks like the string face #+begin_src emacs-lisp (defvar x nil "string") #+end_src ) > 2. C-c C-v C-M-h and C-c C-v C-x interaction > >In the block below do > >1. C-c C-v C-M-h, C-c C-v C-x C-M-\ >2. Mark (just) the code-block with C-SPC etc etc. C-c C-v C-x C-M-\ > >See the difference in behaviour. OK, but I've just fixed that one. Dan > > #+begin_src xml > This is a xref to > text:ref-name="__RefHeading__1669_1684552201">Heading8 > . > #+end_src > > I have transient mark mode on. > > Jambunathan K. > > > > > > > > > > > > > > > > > ___ > 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
[Orgmode] Re: [BABEL] Two minor issues
Hi Dan, Dan Davison wrote: >> #+begin_src emacs-lisp >> ;; (message "Hello World") >> #+end_src > > err, and I haven't had the energy to investigate this one yet! Another minibug, when natively fontifying, is that the line #+begin_src is no more fontified up to the end of the screen (well to the end of the line): choose a font with a background color, and you will notice the difference immediately. The line #+end_src is well correctly fontified from begin of a line to end of screen. By end of screen, I mean the "whole line", even after the last character of that line... Am I clear? Thanks. Best regards, Seb -- Sébastien Vauban ___ 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
[Orgmode] Re: [BABEL] Two minor issues
Sébastien Vauban writes: > Hi Dan, > > Dan Davison wrote: >>> #+begin_src emacs-lisp >>> ;; (message "Hello World") >>> #+end_src >> >> err, and I haven't had the energy to investigate this one yet! > > Another minibug, when natively fontifying, is that the line #+begin_src is no > more fontified up to the end of the screen (well to the end of the line): > choose a font with a background color, and you will notice the difference > immediately. Hi Seb, I do remember you reported this before, but I don't use faces with background colors and didn't get round to working out how to set the fonts. Could you provide a reproducible example with code to set up the necessary faces? The three changes you made in commit ff1b5de478e8575b2d8 to support fontification to end of line are marked below. I'm not totally clear which line is responsible for fontifying begin_src up the right-hand edge of the page. Is it this one? (add-text-properties beg beg1 '(face org-meta-line)) The thing is that your patch didn't change that line, which confuses me. But anyway, in the let binding at the top we have (beg1 (line-beginning-position 2)) which worries me slightly -- does that mean that your functionality relies on fontifying the first character of the *body* of the code block as org-meta-line? If so then isn't that incompatible with also fontifying the block contents as code? Your 3rd change is inside the cond, and org-src-fontify-natively comes earlier in the cond, so seb change 3 is not being evaluated when org-src-fontify-natively is turned on. But I guess that is not the problem as that code is dealing with the inside of the block, right? Dan #+begin_src emacs-lisp ;;; begin seb change 1 (add-text-properties (match-beginning 6) (+ (match-end 6) 1) '(font-lock-fontified t face org-block)) ; for backend-specific code ;;; end seb change 1 t) ((and (match-end 4) (equal dc3 "begin")) ;; Truly a block (setq block-type (downcase (match-string 5)) quoting (member block-type org-protecting-blocks)) (when (re-search-forward (concat "^[ \t]*#\\+end" (match-string 4) "\\>.*") nil t) ;; on purpose, we look further than LIMIT (setq end (match-end 0) end1 (1- (match-beginning 0))) (setq block-end (match-beginning 0)) (when quoting (remove-text-properties beg end '(display t invisible t intangible t))) (add-text-properties beg end '(font-lock-fontified t font-lock-multiline t)) (add-text-properties beg beg1 '(face org-meta-line)) ;;; begin seb change 2 (add-text-properties end1 (+ end 1) '(face org-meta-line)) ; for end_src ;;; end seb change 2 (cond ((and lang org-src-fontify-natively) (org-src-font-lock-fontify-block lang block-start block-end)) (quoting ;;; begin seb change 3 (add-text-properties beg1 (+ end1 1) '(face org-block))) ; end of source block ;;; end seb change 3 ((not org-fontify-quote-and-verse-blocks)) ((string= block-type "quote") (add-text-properties beg1 end1 '(face org-quote))) ((string= block-type "verse") (add-text-properties beg1 end1 '(face org-verse t)) #+end_src > > The line #+end_src is well correctly fontified from begin of a line to end of > screen. > > By end of screen, I mean the "whole line", even after the last character of > that line... Am I clear? > > Thanks. > > Best regards, > Seb ___ 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
[Orgmode] Re: [BABEL] Two minor issues
Hi Dan, (resending this, as it seems to never have reached the ML) Dan Davison wrote: > Sébastien Vauban writes: >> Dan Davison wrote: #+begin_src emacs-lisp ;; (message "Hello World") #+end_src >>> >>> err, and I haven't had the energy to investigate this one yet! >> >> Another minibug, when natively fontifying, is that the line #+begin_src is >> no more fontified up to the end of the screen (well to the end of the >> line): choose a font with a background color, and you will notice the >> difference immediately. > > I do remember you reported this before, but I don't use faces with > background colors and didn't get round to working out how to set the fonts. > Could you provide a reproducible example with code to set up the necessary > faces? #+TITLE: Native fontification minibug #+DATE: 2010-11-20 #+LANGUAGE: en_US * Faces with background To set up Org faces with a background color, choose 1 of the 2 following solutions: ** Install my color-theme 1. Download http://orgmode.org/worg/color-themes/color-theme-sva.el, putting it in a directory that's part of your =load-path=. 2. Insert the following somewhere in your =.emacs= file: #+begin_src emacs-lisp ;; the real color theme functions (when (require 'color-theme) ;; initialize the color theme package (if (fboundp 'color-theme-initialize) (color-theme-initialize)) ;; color themes will be installed for all frames (setq color-theme-is-global t) ;; set my default color theme (when (try-require 'color-theme-sva) (color-theme-sva))) #+end_src Doing so, you'll benefit of all customizations I've done (and re-done... and re-re-done...) around faces in general, and Org faces in particular. You may like it, or hate it, but you shouldn't stay indifferent to it... ** Customize some Org faces Alternatively, you can just update the two most important faces (regarding this question), directly from here, by executing this code: #+begin_src emacs-lisp (set-face-attribute 'org-meta-line nil :foreground "#008ED1" :background "#EAEAFF") (set-face-attribute 'org-block nil :foreground "blue1" :background "#EA") #+end_src #+results: * Example The above code already is an example of the way faces are applied. Here is another. ** Don't fontify natively Execute the following, answering =yes= to the revert buffer question. #+begin_src emacs-lisp ;; don't fontify code in code blocks (setq org-src-fontify-natively nil) (revert-buffer) (org-shifttab) #+end_src #+results: ** What do you see? #+begin_src emacs-lisp ;; (message "Hello World") (message "Hello World") #+end_src ** Fontify natively Execute the following, answering =yes= to the revert buffer question. #+begin_src emacs-lisp ;; do fontify code in code blocks (setq org-src-fontify-natively t) (revert-buffer) (org-shifttab) #+end_src #+results: What do you see? Notice that, when in native fontification, the open parenthesis of the =setq= line (second line of the last code block) is wrongly fontified. > The three changes you made in commit ff1b5de478e8575b2d8 to support > fontification to end of line are marked below. > > I'm not totally clear which line is responsible for fontifying begin_src up > the right-hand edge of the page. Is it this one? > > (add-text-properties beg beg1 '(face org-meta-line)) > > The thing is that your patch didn't change that line, which confuses me. The "native fontification" has been introduced a couple of weeks *after* my patch. Maybe someone reverted the change in that line, which could explain, well, a lot... > But anyway, in the let binding at the top we have > > (beg1 (line-beginning-position 2)) > > which worries me slightly -- does that mean that your functionality relies > on fontifying the first character of the *body* of the code block as > org-meta-line? If so then isn't that incompatible with also fontifying the > block contents as code? > > Your 3rd change is inside the cond, and org-src-fontify-natively comes > earlier in the cond, so seb change 3 is not being evaluated when > org-src-fontify-natively is turned on. But I guess that is not the problem > as that code is dealing with the inside of the block, right? > > Dan > > #+begin_src emacs-lisp > ;;; begin seb change 1 > (add-text-properties (match-beginning 6) (+ (match-end 6) 1) >'(font-lock-fontified t face org-block)) > ; for backend-specific code > ;;; end seb change 1 > t) > ((and (match-end 4) (equal dc3 "begin")) > ;; Truly a block > (setq block-type (downcase (match-string 5)) > quoting (member block-type org-protecting-blocks)) > (when (re-search-forward > (concat "^[ \t]*#\\+end" (match-string 4) "\\>.*") > nil t) ;
[Orgmode] Re: [BABEL] Two minor issues
Sébastien Vauban writes: > Hi Dan, > > (resending this, as it seems to never have reached the ML) Could you tell me what I should do with the random characters in the addresses that appear in your emails? I've deleted the addresses and just sending to emacs-orgmode@gnu.org, is that OK? > Dan Davison wrote: >> Sébastien Vauban writes: >>> Dan Davison wrote: <...> > Honestly, the way I update that code has been mainly done by sequences of > trials and errors. The above code is, for me, still quite complex to > understand with vars such as beg, beg1, end, end1 for which I hadn't > completely understood the meaning. This seems to work -- could you try it out? --8<---cut here---start->8--- diff --git a/lisp/org.el b/lisp/org.el index e2de48e..0b082da 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5102,9 +5102,6 @@ will be prompted for." (add-text-properties beg end '(font-lock-fontified t font-lock-multiline t)) - (add-text-properties beg beg1 '(face org-meta-line)) - (add-text-properties end1 (+ end 1) '(face org-meta-line)) - ; for end_src (cond ((and lang org-src-fontify-natively) (org-src-font-lock-fontify-block lang block-start block-end)) @@ -5117,6 +5114,8 @@ will be prompted for." (add-text-properties beg1 end1 '(face org-quote))) ((string= block-type "verse") (add-text-properties beg1 end1 '(face org-verse + (add-text-properties beg beg1 '(face org-meta-line)) + (add-text-properties (1+ end) (1+ end1) '(face org-meta-line)) t)) ((member dc1 '("title:" "author:" "email:" "date:")) (add-text-properties --8<---cut here---end--->8--- Dan > Otherwise, I would even have proposed a > renaming of some of them. But, I think that whatever we do, such a code will > stay complex to understand and change. > > Find here a picture of what we see (since my patch) without native > fontification. > > http://www.mygooglest.com/sva/No-Native-Fontification.png > > Also, a picture with the "new" setting of native fontification. > > http://www.mygooglest.com/sva/Native-Fontification-Minibug.png > > Hope this helps. If you need help, I'm willing to take a look back a it (still > trying and testing the effect of changes), but it won't be before a couple of > days. > > Best regards, > Seb ___ 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
[Orgmode] Re: [BABEL] Two minor issues
Hi Dan, Dan Davison wrote: > S=C3=A9bastien Vauban > writes: > Could you tell me what I should do with the random characters in the > addresses that appear in your emails? I think it's the "encryption" done by Gmane, isn't it? Do you currently have a problem with them? I did not change anything, though. > I've deleted the addresses and just sending to emacs-orgmode@gnu.org, is > that OK? I always received your mails directly to my inbox up to now, so no need to change your procedure. Anyway, I'm reading thru the newsgroup, so I should always see your answers there as well. >> Dan Davison wrote: >>> S=C3=A9bastien Vauban writes: Dan Davison wrote: > > <...> > >> Honestly, the way I update that code has been mainly done by sequences of >> trials and errors. The above code is, for me, still quite complex to >> understand with vars such as beg, beg1, end, end1 for which I hadn't >> completely understood the meaning. > > This seems to work -- could you try it out? Perfect for me! Thanks a lot... > --8<---cut here---start->8--- > diff --git a/lisp/org.el b/lisp/org.el > index e2de48e..0b082da 100644 > --- a/lisp/org.el > +++ b/lisp/org.el > @@ -5102,9 +5102,6 @@ will be prompted for." > (add-text-properties > beg end > '(font-lock-fontified t font-lock-multiline t)) > - (add-text-properties beg beg1 '(face org-meta-line)) > - (add-text-properties end1 (+ end 1) '(face org-meta-line)) > - ; for end_src > (cond > ((and lang org-src-fontify-natively) > (org-src-font-lock-fontify-block lang block-start block-end)) > @@ -5117,6 +5114,8 @@ will be prompted for." > (add-text-properties beg1 end1 '(face org-quote))) > ((string=3D block-type "verse") > (add-text-properties beg1 end1 '(face org-verse > + (add-text-properties beg beg1 '(face org-meta-line)) > + (add-text-properties (1+ end) (1+ end1) '(face org-meta-line)) > t)) > ((member dc1 '("title:" "author:" "email:" "date:")) > (add-text-properties > --8<---cut here---end--->8--- The only remaining problem (even tinier -- maybe not to find, but for the Orger) is: when in native fontification, the open parenthesis of the =setq= line (second line of the last code block) is wrongly fontified. But that was there before your patch. So, unrelated... Would you, though, have an idea how to introduce a background color for the source block part, I'd take it. If not, its status stays, for me, SOMEDAY ;-) Thanks a lot for your contrib. Best regards, Seb -- Sébastien Vauban ___ 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
[Orgmode] Re: [BABEL] Two minor issues
Hi Dan, Sébastien Vauban wrote: > Dan Davison wrote: >> This seems to work -- could you try it out? > > Perfect for me! Thanks a lot... Just discovered a problem: - right fontification (of everything) when code begins in col 0 - no fontification when col > 0 Example: --8<---cut here---start->8--- #+begin_src emacs-lisp :results wrap :exports both "something else" #+end_src now indented - first - second #+begin_src emacs-lisp :results wrap :exports both "something else" #+end_src --8<---cut here---end--->8--- Best regards, Seb -- Sébastien Vauban ___ 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