From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?S=C3=A9bastien_Vauban?= Subject: Re: Highlight special string Date: Sat, 27 Nov 2010 09:41:30 +0100 Message-ID: <80eia7jgzp.fsf@missioncriticalit.com> References: <20101124092100.92961w5rst4tyeis@webmail.df.eu> <29926_1290779567_oAQDqlho000818_4cefbbaa.1245960a.7fe6.7855@mx.google.com> <20101126190854.93661hlkuwyoopno@webmail.df.eu> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20101126190854.93661hlkuwyoopno-2RFepEojUI1937y/D5i71g@public.gmane.org> (Karl Maihofer's message of "Fri, 26 Nov 2010 19:08:54 +0100") 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-mXXj517/zsQ@public.gmane.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Karl, Karl Maihofer wrote: > Darlan Cavalcante Moreira schrieb: >> Karl Maihofer wrote: >>> I'd like to highlight the strings "(ok)" and "(fail)" in my Org-documen= t. >>> Ok should get a green background, fail a red one. I think highlighting = in >>> emacs should last, but it would be great to have these strings highligh= ted >>> in HTML-export, too, if this is no problem. >> >> Not exactly what you want, but for temporary highlights (useful for >> instance to see if you are repeating the same word too much in a text) y= ou >> can use hi-lock-mode. >> >> Turn hi-lock-mode on with M-x hi-lock-mode. Then you can highlight a word >> with "C-x w h" (highlight-regexp) or a the line containing a word with "= C-x >> w l" (highlight-lines-matching-regexp). Remove highlights with "C-x w r". Please find the *lasting* solution that I'm using, hence IMHO better than hi-lock. The only thing you would still miss is the ability to get those highlighted words exported to HTML or PDF. #+begin_src emacs-lisp ;; special words (setq my/keywords-error-pattern "\\(BUG\\|FIXME\\|XXX\\|TODO\\|[Ee]rror\\|ERROR\\|[Ww]arning\\|= [Mm]issing\\|[Ii]nvalid\\|[Ff]ailed\\|[Cc]orrupted\\|[Ff]atal\\|FATAL\\|[Uu= ]ndefined\\|[Dd]enied\\)") (make-face 'my/keywords-error-face) (GNUEmacs (set-face-attribute 'my/keywords-error-face nil ;; :family "Serif" ;; :height 0.9 :weight 'normal :slant 'normal :box '(:line-width 1 :color "#CC0000") :foreground "#CC0000" :background "#FFFF88" )) (setq my/keywords-org-error-pattern "\\(BUG\\|FIXME\\|XXX\\|[^*] TODO\\|[Ee]rror\\|[Ww]arning\\|[Mm= ]issing\\|[Ii]nvalid\\|[Ff]ailed\\|[Cc]orrupted\\|[Ff]atal\\|[Uu]ndefined\\= )") ; smaller subset of keywords for ; ensuring no conflict with Org mode ; TODO keywords ;; FIXME Highlighting all special keywords but "TODO" in Org mode is ;; already a good step. Though, a nicer integration would be that "TO= DO" ;; strings in the headings are not touched by this code, and that only ;; "TODO" strings in the text body would be. Don't know (yet) how to = do ;; that... ;; FIXME TODO should be highlighted in Org, even when at beginning of ;; line -- of course, without * in front of it. ;; set up highlighting of special words for proper selected major mod= es ;; only (dolist (mode '(fundamental-mode svn-log-view-mode text-mode)) ; no interference with Org mode (wh= ich ; derives from text-mode) (font-lock-add-keywords mode `((,my/keywords-error-pattern 1 'my/keywords-error-face prepend)))) ;; set up highlighting of special words for Org mode only (dolist (mode '(org-mode)) (font-lock-add-keywords mode `((,my/keywords-org-error-pattern 1 'my/keywords-error-face prepen= d)))) ;; add fontification patterns (even in comments) to a selected major ;; mode *and* all major modes derived from it (defun fontify-keywords () (interactive) ;; (font-lock-mode -1) ;; (font-lock-mode 1) (font-lock-add-keywords nil `((,my/keywords-error-pattern 1 'my/keywords-error-face prepend)))) ;; FIXME 0 t ;; set up highlighting of special words for selected major modes *and* ;; all major modes derived from them (dolist (hook '(c++-mode-hook c-mode-hook change-log-mode-hook cperl-mode-hook css-mode-hook emacs-lisp-mode-hook html-mode-hook java-mode-hook latex-mode-hook lisp-mode-hook makefile-mode-hook message-mode-hook php-mode-hook python-mode-hook sh-mode-hook shell-mode-hook ;; works in *shell* buffers! ssh-config-mode-hook)) (add-hook hook 'fontify-keywords)) #+end_src As signaled in my comments, the only problem I have is that when such a word appears in a Org heading, the Org heading fontification is disabled -- only for that single line! Would someone be able to fix that last tiny feature... Best regards, Seb --=20 S=C3=A9bastien Vauban _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode-mXXj517/zsQ@public.gmane.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode