[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Patch: option to not hide brackets in org links
From: |
Paul Sexton |
Subject: |
Re: [O] Patch: option to not hide brackets in org links |
Date: |
Thu, 10 May 2012 08:56:51 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Sean O'Halpin <sean.ohalpin <at> gmail.com> writes:
> Is that publicly available anywhere?
Here you go. To use, add orgl-enable to the relevant mode-hook, eg:
(add-hook 'python-mode-hook 'orgl-enable)
--------
(defface orgl-target-face
'((t (:foreground "cyan" :background "royalblue4" :weight normal)))
;; '((t (:weight bold :box (:line-width 1 :color "red"))))
"The face used to emphasise org-mode <<targets>>.")
(make-face 'orgl-target-face)
(setq orgl-target-face 'orgl-target-face)
(defvar *orgl-link-abbrevs*
'((lisp-mode ("defun" . "(defun %s (")
("class" . "(defclass %s (")
("wwdoc" . "file:../TODO::%s")))
"Define link abbreviations for each major mode.
The variable contains a list, each element of which has the
form (MAJOR-MODE (ABBREV . EXPANSION) .....)
ABBREV is a short string. Links of the form '[[ABBREV:TEXT]]' will
be expanded into EXPANSION. See the documentation for
org-link-abbrev-alist for more details.")
(defun orgl-do-font-lock (add-or-remove)
"Add or remove font-lock rules for org hyperlinks."
(funcall add-or-remove nil '((org-activate-bracket-links (0 'org-link t))))
(funcall add-or-remove nil `((,org-target-regexp (0 'orgl-target-face t)))))
(defun orgl-enable ()
"Enable fontification of org-style hyperlinks in the current buffer."
(interactive)
;; The following variable has to be bound to a string, or following links
;; will not work.
;; There is probably a more elegant solution.
(unless org-todo-line-tags-regexp
(set (make-local-variable 'org-todo-line-tags-regexp)
"address@hidden"))
(orgl-do-font-lock 'font-lock-add-keywords)
;; Stop org links from having invisible [[ brackets ]].
(remove-text-properties (point-min) (point-max) '(invisible nil))
(font-lock-fontify-buffer)
;; Add special link abbreviations.
(unless org-link-abbrev-alist-local
(make-local-variable 'org-link-abbrev-alist-local))
(dolist (pair (cdr (assoc major-mode *orgl-link-abbrevs*)))
(pushnew pair org-link-abbrev-alist-local)))
(defun orgl-disable ()
"Disable fontification of org-style hyperlinks in the current buffer."
(interactive)
(remove-text-properties
(point-min) (point-max)
'(mouse-face t keymap t org-linked-text t
invisible t intangible t
org-no-flyspell t))
(orgl-do-font-lock 'font-lock-remove-keywords)
(font-lock-fontify-buffer)
;; Remove special link abbreviations
(dolist (pair (cdr (assoc major-mode *orgl-link-abbrevs*)))
(setq org-link-abbrev-alist-local
(delete pair org-link-abbrev-alist-local))))