From e8f56823eb56bcb52d412afd6a62864f90c4b29a Mon Sep 17 00:00:00 2001 From: Josef Vlach Date: Tue, 23 Jun 2020 21:14:18 +0100 Subject: [PATCH] Use gdscript-mode-syntax-table instead of gdscript-syntax-table Highlight '$' operator constant similar to Godot editor --- gdscript-mode.el | 6 +++--- gdscript-syntax.el | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gdscript-mode.el b/gdscript-mode.el index a529f98..d1530ac 100644 --- a/gdscript-mode.el +++ b/gdscript-mode.el @@ -110,9 +110,9 @@ the last command event was a string delimiter." (setq-local tab-width gdscript-tab-width) (setq-local indent-tabs-mode gdscript-use-tab-indents) - (set-syntax-table gdscript-syntax-table) - (modify-syntax-entry ?\# "\<" gdscript-syntax-table) - (modify-syntax-entry ?\n ">" gdscript-syntax-table) + (set-syntax-table gdscript-mode-syntax-table) + (modify-syntax-entry ?\# "\<" gdscript-mode-syntax-table) + (modify-syntax-entry ?\n ">" gdscript-mode-syntax-table) (setq-local comment-start "# ") (setq-local comment-start-skip "#+\\s-*") diff --git a/gdscript-syntax.el b/gdscript-syntax.el index 5260e68..66265bd 100644 --- a/gdscript-syntax.el +++ b/gdscript-syntax.el @@ -56,7 +56,11 @@ (_ form)))) ;; Controls font-face mappings or colors to highlight groups of keywords -(defvar gdscript-font-lock `((,(gdscript-syntax-regex-maker gdscript-keywords) +(defvar gdscript-font-lock `((,(rx (and "$" (one-or-more (or "/" (one-or-more word))))) + (0 font-lock-constant-face)) + (,(rx (and (group "$") "\"" (zero-or-more nonl) "\"")) + (1 font-lock-constant-face)) + (,(gdscript-syntax-regex-maker gdscript-keywords) 1 font-lock-keyword-face) (,(gdscript-syntax-regex-maker (append gdscript-built-in-constants @@ -82,8 +86,6 @@ "(") (1 font-lock-function-name-face)))) -(defvar gdscript-syntax-table (make-syntax-table)) - (defun gdscript-syntax-context (type &optional syntax-ppss) "Return non-nil if point is on TYPE using SYNTAX-PPSS. TYPE can be `comment', `string' or `paren'. It returns the start