Estou tentando inserir um comando Latex ou um símbolo UTF-8 em um buffer, mas está pcase
me dando "No Match"
ao selecionar
"bigodot"
.
grafm
esperado para mim modificado removendo o UTF-8
símbolo, tomando a primeira palavra antes do primeiro espaço e usando apenas o descritor de string "bigodot"
para uso com a pcase
cláusula.
(defun imprint (selector kmstr &optional grapheme)
"Insert Latex Command or the equivalent UTF-8 grapheme."
(if (or (not grapheme) (equal selector "Command"))
(insert kmstr)
(insert grapheme)))
;;-------------------------------------
(defun bigops (grafm seltr)
"Binary Operations."
(interactive
(let ( (csel '("Symbol" "Command"))
(cseq '("bigodot ⨀" "bigoplus ⨁︁" "bigotimes ⨂︁")) )
(list
(completing-read "Grapheme: " cseq nil t "bigcap ⋂")
(completing-read "Selector: " csel nil t "Command")) ))
(setq grafm (car (split-string grafm)))
(message "Grafm: .%S." grafm)
(pcase grafm
("bigodot" (imprint seltr "\\bigodot" "⨀"))
("bigoplus︁" (imprint seltr "\\bigoplus" "⨁︁"))
("bigotimes︁" (imprint seltr "\\bigotimes" "⨂︁"))
(_ (message "%s" "No Match")) ))
Existem caracteres ocultos, ponto de código 65025, em vários lugares nas strings que você inseriu como
pcase
correspondências que estão causando as falhas inesperadas de correspondência.Você pode visualizá-los com