diff options
author | Pierre Courtieu <Pierre.Courtieu@cnam.fr> | 2017-03-08 15:49:39 +0100 |
---|---|---|
committer | Pierre Courtieu <Pierre.Courtieu@cnam.fr> | 2017-03-08 15:49:39 +0100 |
commit | 06fd76163b857a056ac44e7437efa17656f06e5b (patch) | |
tree | 41b32a03e3af6a46c5fa65420f6ef46230d58fc4 | |
parent | 4bcac92df46da9e68b5e3d565bb118fb63b4feb4 (diff) |
Fixing unicode tokens in generic code and in coq.
-rw-r--r-- | coq/coq-unicode-tokens.el | 23 | ||||
-rw-r--r-- | lib/unicode-tokens.el | 19 |
2 files changed, 25 insertions, 17 deletions
diff --git a/coq/coq-unicode-tokens.el b/coq/coq-unicode-tokens.el index d02ea70b..faa02458 100644 --- a/coq/coq-unicode-tokens.el +++ b/coq/coq-unicode-tokens.el @@ -36,7 +36,7 @@ (require 'proof-unicode-tokens) -(defconst coq-token-format "%s") ; plain tokens +(defconst coq-token-format "") ; Let generic code do the job (defconst coq-token-match nil) (defconst coq-hexcode-match nil) @@ -253,24 +253,29 @@ meaning to be useful." (defconst coq-control-char-format-regexp ;; FIXME: fix Coq identifier syntax below - "\\(\s*%s\s*\\)\\([a-zA-Z0-9']+\\)") + ;; "\\(\s_*%s\s_*\\)\\([a-zA-Z0-9']+\\)" + "\\(%s\\)\\(\\sw*\\)" + ) -(defconst coq-control-char-format " %s ") +;; (defconst coq-control-char-format " %s ") (defconst coq-control-characters '(("Subscript" "__" sub) ("Superscript" "^^" sup))) -(defconst coq-control-region-format-regexp "\\(\s*%s\{\\)\\([^}]*\\)\\(\}\s*\\)") +;(defconst coq-control-region-format-regexp "\\(\s*%s\{\\)\\([^}]*\\)\\(\}\s*\\)") +(defconst coq-control-region-format-regexp "\\(%s\{\\)\\([^}]*\\)\\(\}\\)") (defconst coq-control-regions '(("Subscript" "," "" sub) + ("Subscript" "_" "" sub) ("Superscript" "^" "" sup) - ("Bold" "BOLD" "" bold) - ("Italic" "ITALIC" "" italic) - ("Script" "SCRIPT" "" script) - ("Frakt" "FRACT" "" frakt) - ("Roman" "ROMAN" "" serif))) +; ("Bold" "BOLD" "" bold) +; ("Italic" "ITALIC" "" italic) +; ("Script" "SCRIPT" "" script) +; ("Frakt" "FRACT" "" frakt) +; ("Roman" "ROMAN" "" serif) +)) diff --git a/lib/unicode-tokens.el b/lib/unicode-tokens.el index b52d035a..ba3d036a 100644 --- a/lib/unicode-tokens.el +++ b/lib/unicode-tokens.el @@ -427,16 +427,19 @@ This function also initialises the important tables for the mode." ;; hairy logic based on Coq-style vs Isabelle-style configs (if (string= "" (format unicode-tokens-token-format "")) ;; no special token format, parse separate words/symbols - (let* ((optoks - (remove* "^\\(?:\\sw\\|\\s_\\)+$" - toks :test 'string-match)) - (idtoks - (set-difference toks optoks)) + (let* ((tokextra (remove* "^\\(?:\\sw\\|\\s_\\)+$" toks :test 'string-match)) + (toksymbwrd (set-difference toks tokextra)) + ;; indentifier that are not pure words + (toksymb (remove* "^\\(?:\\sw\\)+$" toksymbwrd :test 'string-match)) + ;; pure words + (tokwrd (set-difference toksymbwrd toksymb)) (idorop (concat "\\(\\_<" - (regexp-opt idtoks) - "\\_>\\|\\(?:\\B" - (regexp-opt optoks) + (regexp-opt toksymb) + "\\_>\\|\\(?:\\<" + (regexp-opt tokwrd) + "\\>\\)\\|\\(?:\\B" + (regexp-opt tokextra) "\\B\\)\\)"))) (if unicode-tokens-token-variant-format-regexp (format unicode-tokens-token-variant-format-regexp |