From 3dd40b5ef30db24add5b371f2d179822594800e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Thu, 6 Jul 2017 00:24:47 +0200 Subject: [PATCH] FUEL: more consistent font-locking of strings --- misc/fuel/factor-mode.el | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/misc/fuel/factor-mode.el b/misc/fuel/factor-mode.el index 8eac0d4fc0..1c3b0e0158 100644 --- a/misc/fuel/factor-mode.el +++ b/misc/fuel/factor-mode.el @@ -742,14 +742,25 @@ With prefix, non-existing files will be created." (modify-syntax-entry ?\] ")[" 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) "Fontify STR as if it was Factor code." (with-temp-buffer (set-syntax-table factor-mode-syntax-table) - (setq-local parse-sexp-ignore-comments t) - (setq-local parse-sexp-lookup-properties t) - (setq-local font-lock-defaults '(factor-font-lock-keywords nil nil nil nil)) - + (factor-setup-buffer-font-lock) (insert str) (let ((font-lock-verbose nil)) (font-lock-fontify-buffer)) @@ -765,20 +776,7 @@ With prefix, non-existing files will be created." (define-derived-mode factor-mode prog-mode "Factor" "A mode for editing programs written in the Factor programming language. \\{factor-mode-map}" - - (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) - + (factor-setup-buffer-font-lock) (define-key factor-mode-map [remap ff-get-other-file] 'factor-visit-other-file)