On 6/1/22 23:58, Max Chernoff via ntg-context wrote: >> Now, I still don’t understand LPEG and don’t know if there’s a general >> “character” class that doesn’t need a list...
Many thanks for your reply, Hraban. > The easiest way that I found was to just cheat and use everything with > a TeX catcode 11 ("letters"): > > local name = (R("az","AZ","09") + S("_-.") + > lpeg.utfchartabletopattern(characters.csletters))^1 Many thanks for your reply, Max, I’m afraid I cannot make your proposed fix work. For the sake of consistency (with buff-imp-xml.lua), I think the patch should read (also attached to the message to avoid wrong line breaking): --- scite-context-lexer-xml.lua 2022-06-01 17:24:38.625976000 +0200 +++ context/tex/texmf-context/context/data/scite/context/lexers/scite-context-lexer-xml.lua 2022-06-02 16:37:30.112824947 +0200 @@ -13,7 +13,7 @@ -- todo: parse entities in attributes local global, string, table, lpeg = _G, string, table, lpeg -local P, R, S, C, Cmt, Cp = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cmt, lpeg.Cp +local P, R, S, C, Cmt, Cp, lpatterns = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cmt, lpeg.Cp, lpeg.patterns local type = type local match, find = string.match, string.find @@ -41,7 +41,8 @@ local equal = P("=") local ampersand = P("&") -local name = (R("az","AZ","09") + S("_-."))^1 +local alsoname = lpatterns.utf8two + lpatterns.utf8three + lpatterns.utf8four +local name = (R("az","AZ","09") + S("_-.") + + alsoname)^1 local openbegin = P("<") local openend = P("</") local closebegin = P("/>") + P(">") But I’m afraid I cannot make it work on my computer (Linux64). On another Win64 computer, both patches worked perfectly fine. Both machines run LMTX current latest. So I have an issue on my installation that I have to fix first. Many thanks for your help, Pablo
--- scite-context-lexer-xml.lua 2022-06-01 17:24:38.625976000 +0200 +++ context/tex/texmf-context/context/data/scite/context/lexers/scite-context-lexer-xml.lua 2022-06-02 16:37:30.112824947 +0200 @@ -13,7 +13,7 @@ -- todo: parse entities in attributes local global, string, table, lpeg = _G, string, table, lpeg -local P, R, S, C, Cmt, Cp = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cmt, lpeg.Cp +local P, R, S, C, Cmt, Cp, lpatterns = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cmt, lpeg.Cp, lpeg.patterns local type = type local match, find = string.match, string.find @@ -41,7 +41,8 @@ local equal = P("=") local ampersand = P("&") -local name = (R("az","AZ","09") + S("_-."))^1 +local alsoname = lpatterns.utf8two + lpatterns.utf8three + lpatterns.utf8four +local name = (R("az","AZ","09") + S("_-.") + + alsoname)^1 local openbegin = P("<") local openend = P("</") local closebegin = P("/>") + P(">")
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________