From a81756029291d6e21295687515a3e58499c19b33 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Fri, 1 Jan 2021 17:09:30 +0100 Subject: Add support for gleam, closes #655 Co-authored-by: Jeff Kreeftmeijer --- syntax/gleam.vim | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 syntax/gleam.vim (limited to 'syntax/gleam.vim') diff --git a/syntax/gleam.vim b/syntax/gleam.vim new file mode 100644 index 00000000..cc667893 --- /dev/null +++ b/syntax/gleam.vim @@ -0,0 +1,58 @@ +if has_key(g:polyglot_is_disabled, 'gleam') + finish +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +let b:current_syntax = "gleam" + +" Keywords +syntax keyword gleamKeyword + \ module import pub external + \ type let as if else todo const + \ case assert tuple try opaque +highlight link gleamKeyword Keyword + +" Function definition +syntax keyword gleamDef fn nextgroup=gleamFunctionDef skipwhite skipempty +highlight link gleamDef Keyword + +syntax match gleamFunctionDef "[a-z_-][0-9a-z_-]*" contained skipwhite skipnl +highlight link gleamFunctionDef Function + +" Int +syntax match gleamInt '\<[0-9][0-9_]*\>' +highlight link gleamInt Number + +" Float +syntax match gleamFloat '\<[0-9][0-9_]*\.[0-9_]*\>' +highlight link gleamFloat Float + +" Operators +syntax match gleamOperator "\([-!#$%`&\*\+./<=>@\\^|~:]\|\<\>\)" +highlight link gleamOperator Operator + +" Type +syntax match gleamType "\([a-z]\)\@