Sébastien Vauban <wxhgmqzgwmuf-genee64ty+gs+fvcfc7...@public.gmane.org>
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

Reply via email to