aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPaul Steckler2017-03-08 10:49:09 -0500
committerPaul Steckler2017-03-08 10:49:09 -0500
commit6c703907b192bc903ca9897e17424e58e2003692 (patch)
treeaa42d5b9a292e09a31d36bf44a867dbd48b979fb /lib
parent915ad2578489919e169fdcf4fe76a4f070268073 (diff)
parent06fd76163b857a056ac44e7437efa17656f06e5b (diff)
Merge commit '06fd76163b857a056ac44e7437efa17656f06e5b'
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