FUEL: more consistent font-locking of strings
parent
94e285e6de
commit
3dd40b5ef3
|
@ -742,14 +742,25 @@ With prefix, non-existing files will be created."
|
||||||
(modify-syntax-entry ?\] ")[" table)
|
(modify-syntax-entry ?\] ")[" table)
|
||||||
table))
|
table))
|
||||||
|
|
||||||
|
(defun factor-setup-buffer-font-lock ()
|
||||||
|
(setq-local comment-start "! ")
|
||||||
|
(setq-local comment-end "")
|
||||||
|
(setq-local comment-column factor-comment-column)
|
||||||
|
(setq-local comment-start-skip "!+ *")
|
||||||
|
(setq-local parse-sexp-ignore-comments t)
|
||||||
|
(setq-local parse-sexp-lookup-properties t)
|
||||||
|
(setq-local font-lock-defaults '(factor-font-lock-keywords))
|
||||||
|
;; Some syntactic constructs are often split over multiple lines so
|
||||||
|
;; we need to setup multiline font-lock.
|
||||||
|
(setq-local font-lock-multiline t)
|
||||||
|
(add-hook 'font-lock-extend-region-functions 'factor-font-lock-extend-region)
|
||||||
|
(setq-local syntax-propertize-function 'factor-syntax-propertize))
|
||||||
|
|
||||||
(defun factor-font-lock-string (str)
|
(defun factor-font-lock-string (str)
|
||||||
"Fontify STR as if it was Factor code."
|
"Fontify STR as if it was Factor code."
|
||||||
(with-temp-buffer
|
(with-temp-buffer
|
||||||
(set-syntax-table factor-mode-syntax-table)
|
(set-syntax-table factor-mode-syntax-table)
|
||||||
(setq-local parse-sexp-ignore-comments t)
|
(factor-setup-buffer-font-lock)
|
||||||
(setq-local parse-sexp-lookup-properties t)
|
|
||||||
(setq-local font-lock-defaults '(factor-font-lock-keywords nil nil nil nil))
|
|
||||||
|
|
||||||
(insert str)
|
(insert str)
|
||||||
(let ((font-lock-verbose nil))
|
(let ((font-lock-verbose nil))
|
||||||
(font-lock-fontify-buffer))
|
(font-lock-fontify-buffer))
|
||||||
|
@ -765,20 +776,7 @@ With prefix, non-existing files will be created."
|
||||||
(define-derived-mode factor-mode prog-mode "Factor"
|
(define-derived-mode factor-mode prog-mode "Factor"
|
||||||
"A mode for editing programs written in the Factor programming language.
|
"A mode for editing programs written in the Factor programming language.
|
||||||
\\{factor-mode-map}"
|
\\{factor-mode-map}"
|
||||||
|
(factor-setup-buffer-font-lock)
|
||||||
(setq-local comment-start "! ")
|
|
||||||
(setq-local comment-end "")
|
|
||||||
(setq-local comment-column factor-comment-column)
|
|
||||||
(setq-local comment-start-skip "!+ *")
|
|
||||||
(setq-local parse-sexp-ignore-comments t)
|
|
||||||
(setq-local parse-sexp-lookup-properties t)
|
|
||||||
(setq-local font-lock-defaults '(factor-font-lock-keywords))
|
|
||||||
;; Some syntactic constructs are often split over multiple lines so
|
|
||||||
;; we need to setup multiline font-lock.
|
|
||||||
(setq-local font-lock-multiline t)
|
|
||||||
(add-hook 'font-lock-extend-region-functions 'factor-font-lock-extend-region)
|
|
||||||
(setq-local syntax-propertize-function 'factor-syntax-propertize)
|
|
||||||
|
|
||||||
(define-key factor-mode-map [remap ff-get-other-file]
|
(define-key factor-mode-map [remap ff-get-other-file]
|
||||||
'factor-visit-other-file)
|
'factor-visit-other-file)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue