aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorGravatar Pierre Courtieu <Pierre.Courtieu@cnam.fr>2017-03-08 15:49:39 +0100
committerGravatar Pierre Courtieu <Pierre.Courtieu@cnam.fr>2017-03-08 15:49:39 +0100
commit06fd76163b857a056ac44e7437efa17656f06e5b (patch)
tree41b32a03e3af6a46c5fa65420f6ef46230d58fc4 /lib
parent4bcac92df46da9e68b5e3d565bb118fb63b4feb4 (diff)
Fixing unicode tokens in generic code and in coq.
Diffstat (limited to 'lib')
-rw-r--r--lib/unicode-tokens.el19
1 files changed, 11 insertions, 8 deletions
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