ui/hl-todo: fix comment detection for some major modes

For major modes with poorly implemented syntax-tables, or simply can't
use them for their comments.
This commit is contained in:
Henrik Lissner 2017-09-14 12:50:54 +02:00
parent fd0b9c8673
commit 4be4756f90
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 21 additions and 1 deletions

View file

@ -0,0 +1,14 @@
;;; ui/hl-todo/autoload.el -*- lexical-binding: t; -*-
;;;###autoload
(defun +hl-todo|use-face-detection ()
"Use a different, more primitive method of locating todo keywords.
This is useful for major modes that don't use or have a valid syntax-table entry
for comment start/end characters."
(set (make-local-variable 'hl-todo-keywords)
`(((lambda (limit)
(let (case-fold-search)
(and (re-search-forward hl-todo-regexp limit t)
(memq 'font-lock-comment-face (doom-enlist (get-text-property (point) 'face)))))
(1 (hl-todo-get-face) t t))))))

View file

@ -7,4 +7,10 @@
(setq hl-todo-keyword-faces
`(("TODO" . ,(face-foreground 'warning))
("FIXME" . ,(face-foreground 'error))
("NOTE" . ,(face-foreground 'success)))))
("NOTE" . ,(face-foreground 'success))))
;; Use a more primitive todo-keyword detection method in major modes that
;; don't use/have a valid syntax table entry for comments.
(add-hook!
(pug-mode haml-mode)
#'+hl-todo|use-face-detection))