FUEL: ensures fuel-listener-mode and factor-mode has the same syntax table

modern-harvey2
Björn Lindqvist 2017-07-06 00:33:22 +02:00
parent 3dd40b5ef3
commit 6649e4a426
3 changed files with 41 additions and 39 deletions

View File

@ -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 "! ")

View File

@ -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

View File

@ -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)