emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: Fontification of blocks


From: Sébastien Vauban
Subject: [Orgmode] Re: Fontification of blocks
Date: Thu, 03 Feb 2011 21:44:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (windows-nt)

Hi Eric(s),

Here is the patch I intended to write:

diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index c237a0e..2e9d2a3 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -1,6 +1,6 @@
 ;;; org-faces.el --- Face definitions for Org-mode.
 
-;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
@@ -511,6 +511,16 @@ follows a #+DATE:, #+AUTHOR: or #+EMAIL: keyword."
   :group 'org-faces
   :version "22.1")
 
+(defface org-block-background
+  '((t (:background "#FFFFEA")))
+  "Face used for the source block background.")
+
+(org-copy-face 'org-meta-line 'org-block-begin-line
+  "Face used for the line delimiting the begin of source blocks.")
+
+(org-copy-face 'org-meta-line 'org-block-begin-line
+  "Face used for the line delimiting the end of source blocks.")
+
 (defface org-verbatim
   (org-compatible-face 'shadow
     '((((class color grayscale) (min-colors 88) (background light))
diff --git a/lisp/org.el b/lisp/org.el
index 8acf5a9..70fda86 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -1,6 +1,6 @@
 ;;; org.el --- Outline-based notes management and organizer
 ;; Carstens outline-mode for keeping track of everything.
-;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 ;;   Free Software Foundation, Inc.
 ;;
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
@@ -5146,16 +5146,19 @@ will be prompted for."
                                        ; for end_src
              (cond
               ((and lang org-src-fontify-natively)
-               (org-src-font-lock-fontify-block lang block-start block-end))
+               (org-src-font-lock-fontify-block lang block-start block-end)
+                (overlay-put (make-overlay beg1 block-end)
+                             'face 'org-block-background))
               (quoting
-               (add-text-properties beg1 (+ end1 1) '(face
-                                                      org-block)))
+               (add-text-properties beg1 (+ end1 1) '(face org-block)))
                                        ; end of source block
               ((not org-fontify-quote-and-verse-blocks))
               ((string= block-type "quote")
-               (add-text-properties beg1 end1 '(face org-quote)))
+               (add-text-properties beg1 (1+ end1) '(face org-quote)))
               ((string= block-type "verse")
-               (add-text-properties beg1 end1 '(face org-verse))))
+               (add-text-properties beg1 (1+ end1) '(face org-verse))))
+             (add-text-properties beg beg1 '(face org-block-begin-line))
+             (add-text-properties (1+ end) (1+ end1) '(face 
org-block-end-line))
              t))
           ((member dc1 '("title:" "author:" "email:" "date:"))
            (add-text-properties
@@ -5171,7 +5174,7 @@ will be prompted for."
           ((not (member (char-after beg) '(?\  ?\t)))
            ;; just any other in-buffer setting, but not indented
            (add-text-properties
-            beg (match-end 0)
+            beg (1+ (match-end 0))
             '(font-lock-fontified t face org-meta-line))
            t)
           ((or (member dc1 '("begin:" "end:" "caption:" "label:"
Here the effect of applying it: http://i.imgur.com/3lPjH.png
with the following setting in my color-theme[1]:

--8<---------------cut here---------------start------------->8---
(org-block-begin-line ((t (:underline "light grey" :foreground "#008ED1" 
:background "#EAEAFF"))))
(org-block-end-line ((t (:overline "light grey" :foreground "#008ED1" 
:background "#EAEAFF"))))
--8<---------------cut here---------------end--------------->8---

The only thing that you *should* change in my patch is the color of the
background you want, by default, in a dark theme.

Is the above working for you, guys?

Best regards,
  Seb

Footnotes:
[1] It should work without any customization. But, of course, if I did "need"
    2 new faces, it is well to customize them...
-- 
Sébastien Vauban

reply via email to

[Prev in Thread] Current Thread [Next in Thread]