]> gitweb.factorcode.org Git - factor.git/commitdiff
FUEL: more consistent font-locking of strings
authorBjörn Lindqvist <bjourne@gmail.com>
Wed, 5 Jul 2017 22:24:47 +0000 (00:24 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Wed, 5 Jul 2017 22:34:11 +0000 (00:34 +0200)
misc/fuel/factor-mode.el

index 8eac0d4fc0b0c49f25a9a59b41ac2049d693b90b..1c3b0e01588b83798dea595c33aabbf3478763f2 100644 (file)
@@ -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)