From a70018bcc444775ab053b5fd1fef014ec40b9125 Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Tue, 13 Jan 2009 01:44:22 +0100 Subject: [PATCH] FUEL: Correct font-lock for string literals (no multiline). --- misc/fuel/fuel-font-lock.el | 7 ++++--- misc/fuel/fuel-syntax.el | 8 ++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/misc/fuel/fuel-font-lock.el b/misc/fuel/fuel-font-lock.el index 7b129eef2a..99a7c7b8fb 100644 --- a/misc/fuel/fuel-font-lock.el +++ b/misc/fuel/fuel-font-lock.el @@ -66,7 +66,8 @@ (symbol variable-name "name of symbol being defined") (type-name type "type names") (vocabulary-name constant "vocabulary names") - (word function-name "word, generic or method being defined"))) + (word function-name "word, generic or method being defined") + (invalid-syntax warning "syntactically invalid constructs"))) ;;; Font lock: @@ -92,8 +93,8 @@ (,fuel-syntax--constructor-regex . 'factor-font-lock-constructor) (,fuel-syntax--setter-regex . 'factor-font-lock-setter-word) (,fuel-syntax--getter-regex . 'factor-font-lock-getter-word) - (,fuel-syntax--symbol-definition-regex 2 'factor-font-lock-symbol)) - "Font lock keywords definition for Factor mode.") + (,fuel-syntax--symbol-definition-regex 2 'factor-font-lock-symbol) + (,fuel-syntax--bad-string-regex . 'factor-font-lock-invalid-syntax))) (defun fuel-font-lock--font-lock-setup (&optional keywords no-syntax) (set (make-local-variable 'comment-start) "! ") diff --git a/misc/fuel/fuel-syntax.el b/misc/fuel/fuel-syntax.el index be7293f181..7f0fa313c2 100644 --- a/misc/fuel/fuel-syntax.el +++ b/misc/fuel/fuel-syntax.el @@ -93,6 +93,9 @@ (defconst fuel-syntax--float-regex "\\_<-?[0-9]+\\.[0-9]*\\([eE][+-]?[0-9]+\\)?\\_>") +(defconst fuel-syntax--bad-string-regex + "\"[^\"]*$") + (defconst fuel-syntax--word-definition-regex (fuel-syntax--second-word-regex '(":" "::" "GENERIC:" "DEFER:" "HOOK:" "MAIN:" "MATH:" "POSTPONE:" @@ -211,8 +214,7 @@ (modify-syntax-entry ?\ " " table) (modify-syntax-entry ?\n " " table) - ;; Strings - (modify-syntax-entry ?\" "\"" table) + ;; Char quote (modify-syntax-entry ?\\ "/" table) table)) @@ -223,6 +225,8 @@ ("\\_<\\(#?!\\)\\(\n\\|$\\)" (1 "<") (2 ">")) ;; CHARs: ("CHAR: \\(.\\)\\( \\|$\\)" (1 "w")) + ;; Strings + ("\\(\"\\)[^\n\r\f]*\\(\"\\)" (1 "\"") (2 "\"")) ;; Let and lambda: ("\\_<\\(!(\\) .* \\()\\)" (1 "<") (2 ">")) ("\\(\\[\\)\\(let\\|wlet\\|let\\*\\)\\( \\|$\\)" (1 "(]"))