equal
deleted
inserted
replaced
38 major_keywords(k => k != Keyword.THY_END && k != Keyword.PRF_ASM && k != Keyword.PRF_ASM_GOAL) |
38 major_keywords(k => k != Keyword.THY_END && k != Keyword.PRF_ASM && k != Keyword.PRF_ASM_GOAL) |
39 val keywords2 = minor_keywords ::: major_keywords(Set(Keyword.THY_END)) |
39 val keywords2 = minor_keywords ::: major_keywords(Set(Keyword.THY_END)) |
40 val keywords3 = major_keywords(Set(Keyword.PRF_ASM, Keyword.PRF_ASM_GOAL)) |
40 val keywords3 = major_keywords(Set(Keyword.PRF_ASM, Keyword.PRF_ASM_GOAL)) |
41 |
41 |
42 |
42 |
43 def quote_name(a: String): String = |
|
44 if (Symbol.is_ascii_identifier(a)) a else "\\Q" + a + "\\E" |
|
45 |
|
46 def grouped_names(as: List[String]): String = |
43 def grouped_names(as: List[String]): String = |
47 JSON.Format("\\b(" + as.sorted.map(quote_name(_)).mkString("|") + ")\\b") |
44 JSON.Format("\\b(" + as.sorted.map(Library.escape_regex(_)).mkString("|") + ")\\b") |
48 |
45 |
49 """{ |
46 """{ |
50 "name": "Isabelle", |
47 "name": "Isabelle", |
51 "scopeName": "source.isabelle", |
48 "scopeName": "source.isabelle", |
52 "fileTypes": ["thy"], |
49 "fileTypes": ["thy"], |