@ 261105.1

210627.1.1 · 1f3d5bf205cb0c37b8464a1d7cd75352e7e62c1a

add basic PureScript coverage

reading declarations

Changes to langDefs/purescript.lang. All files

langDefs/purescript.lang

new file mode 100644@@ -0,0 +1,52 @@+-- vim: filetype=lua+Description="PureScript"++Categories = {"source"}++Keywords={+  -- Type-level keywords + booleans+  { Id=1,+    List={"class", "data", "instance", "kind", "newtype", "type", "forall", "\xE2\x88\x80", "true", "false"}+  },+  -- Module-level keywords+  { Id=2,+    List={"module", "import", "where", "foreign", "as", "infixl", "infixr", "infix", "derive"}+  },+  -- Expression-level keywords+  { Id=4,+    List={"if", "then", "else", "case", "of", "do", "ado", "let", "in"}+  }+}++Strings={+  Delimiter=[["|']],+}++-- Borrowed from the Haskell language definition+-- Escape sequences only occur inside strings+-- strings ending with ' should not be confused with identifiers+-- TODO: check ' and "+function OnStateChange(oldState, newState, token, kwgroup)+  if newState==HL_ESC_SEQ and oldState~=HL_STRING or string.match(token, "%a+'" ) and oldState==HL_STRING then+    return HL_REJECT+  end++  return newState+end++-- FIXME: :lower: doesn’t work as expected for PureScript+Identifiers=[[ [a-zа-яαβγδεζηθικλμνξοπρςστυφχψω][\wА-Яа-яΑ-Ωα-ω0-9_']* ]]++IgnoreCase=false++Comments={+  { Block=false,+    Delimiter= { [[--]] },+  },+  { Block=true,+    Nested=false,+    Delimiter= { [[\{\-]],[[\-\}]],}+  }+}++Operators=[[ [^\s\w]+ ]]