src/Tools/VSCode/src/grammar.scala
changeset 64871 2d594dabcca6
parent 64808 81a5473e6d04
child 65138 64dfee6bd243
equal deleted inserted replaced
64870:41e2797af496 64871:2d594dabcca6
    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"],