From 6649e4a426183a285c749151dcbbfcb1170170e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Thu, 6 Jul 2017 00:33:22 +0200 Subject: [PATCH] FUEL: ensures fuel-listener-mode and factor-mode has the same syntax table --- misc/fuel/factor-mode.el | 38 +------------------------------------ misc/fuel/fuel-base.el | 39 +++++++++++++++++++++++++++++++++++++- misc/fuel/fuel-listener.el | 3 ++- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/misc/fuel/factor-mode.el b/misc/fuel/factor-mode.el index 1c3b0e0158..52374c3fc7 100644 --- a/misc/fuel/factor-mode.el +++ b/misc/fuel/factor-mode.el @@ -704,43 +704,7 @@ With prefix, non-existing files will be created." ;;; factor-mode: -;; I think it is correct to put almost all punctuation characters in -;; the word class because Factor words can be made up of almost -;; anything. Otherwise you get incredibly annoying regexps. -(defvar factor-mode-syntax-table - (let ((table (make-syntax-table prog-mode-syntax-table))) - (modify-syntax-entry ?\" "\"" table) - (modify-syntax-entry ?# "_" table) - (modify-syntax-entry ?! "_" table) - (modify-syntax-entry ?\n "> " table) - (modify-syntax-entry ?$ "_" table) - (modify-syntax-entry ?@ "_" table) - (modify-syntax-entry ?? "_" table) - (modify-syntax-entry ?_ "_" table) - (modify-syntax-entry ?: "_" table) - (modify-syntax-entry ?< "_" table) - (modify-syntax-entry ?> "_" table) - (modify-syntax-entry ?. "_" table) - (modify-syntax-entry ?, "_" table) - (modify-syntax-entry ?& "_" table) - (modify-syntax-entry ?| "_" table) - (modify-syntax-entry ?% "_" table) - (modify-syntax-entry ?= "_" table) - (modify-syntax-entry ?/ "_" table) - (modify-syntax-entry ?+ "_" table) - (modify-syntax-entry ?* "_" table) - (modify-syntax-entry ?- "_" table) - (modify-syntax-entry ?\; "_" table) - (modify-syntax-entry ?\' "_" table) - (modify-syntax-entry ?^ "_" table) - (modify-syntax-entry ?~ "_" table) - (modify-syntax-entry ?\( "()" table) - (modify-syntax-entry ?\) ")(" table) - (modify-syntax-entry ?\{ "(}" table) - (modify-syntax-entry ?\} "){" table) - (modify-syntax-entry ?\[ "(]" table) - (modify-syntax-entry ?\] ")[" table) - table)) +(defvar factor-mode-syntax-table (fuel-syntax-table)) (defun factor-setup-buffer-font-lock () (setq-local comment-start "! ") diff --git a/misc/fuel/fuel-base.el b/misc/fuel/fuel-base.el index 841f5869f3..8044b11102 100644 --- a/misc/fuel/fuel-base.el +++ b/misc/fuel/fuel-base.el @@ -80,7 +80,44 @@ (save-buffer buffer)) (cons file buffer))) - +;; I think it is correct to put almost all punctuation characters in +;; the word class because Factor words can be made up of almost +;; anything. Otherwise you get incredibly annoying regexps. +(defun fuel-syntax-table () + (let ((table (make-syntax-table prog-mode-syntax-table))) + (modify-syntax-entry ?\" "\"" table) + (modify-syntax-entry ?# "_" table) + (modify-syntax-entry ?! "_" table) + (modify-syntax-entry ?\n "> " table) + (modify-syntax-entry ?$ "_" table) + (modify-syntax-entry ?@ "_" table) + (modify-syntax-entry ?? "_" table) + (modify-syntax-entry ?_ "_" table) + (modify-syntax-entry ?: "_" table) + (modify-syntax-entry ?< "_" table) + (modify-syntax-entry ?> "_" table) + (modify-syntax-entry ?. "_" table) + (modify-syntax-entry ?, "_" table) + (modify-syntax-entry ?& "_" table) + (modify-syntax-entry ?| "_" table) + (modify-syntax-entry ?% "_" table) + (modify-syntax-entry ?= "_" table) + (modify-syntax-entry ?/ "_" table) + (modify-syntax-entry ?+ "_" table) + (modify-syntax-entry ?* "_" table) + (modify-syntax-entry ?- "_" table) + (modify-syntax-entry ?\; "_" table) + (modify-syntax-entry ?\' "_" table) + (modify-syntax-entry ?^ "_" table) + (modify-syntax-entry ?~ "_" table) + (modify-syntax-entry ?\( "()" table) + (modify-syntax-entry ?\) ")(" table) + (modify-syntax-entry ?\{ "(}" table) + (modify-syntax-entry ?\} "){" table) + (modify-syntax-entry ?\[ "(]" table) + (modify-syntax-entry ?\] ")[" table) + table)) + (provide 'fuel-base) ;;; fuel-base.el ends here diff --git a/misc/fuel/fuel-listener.el b/misc/fuel/fuel-listener.el index 2d1b182a75..2339b623f8 100644 --- a/misc/fuel/fuel-listener.el +++ b/misc/fuel/fuel-listener.el @@ -266,7 +266,8 @@ the vocabulary name." (setq-local comint-use-prompt-regexp nil) (setq-local comint-prompt-read-only fuel-listener-prompt-read-only-p) (fuel-listener--setup-completion) - (fuel-listener--setup-stack-mode)) + (fuel-listener--setup-stack-mode) + (set-syntax-table (fuel-syntax-table))) (define-key fuel-listener-mode-map "\C-a" 'fuel-listener--bol)