Mercurial > vim
view runtime/syntax/unison.vim @ 33936:bdd408288d95 v9.0.2164
patch 9.0.2164: Vim9: can use type a func arg/return value
Commit: https://github.com/vim/vim/commit/b077b58809f6bd1078f409829cc1964b8475f9fc
Author: Ernie Rael <errael@raelity.com>
Date: Thu Dec 14 20:11:44 2023 +0100
patch 9.0.2164: Vim9: can use type a func arg/return value
Problem: Vim9: can use type a func arg/return value
Solution: Check if using type as function argument or return value
closes: #13675
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Dec 2023 20:15:10 +0100 |
parents | 2200e4e8b3ae |
children |
line wrap: on
line source
" Vim syntax file " " Language: unison " Maintainer: Anton Parkhomenko <anton@chuwy.me> " Last Change: Aug 7, 2023 " Original Author: John Williams, Paul Chiusano and Rúnar Bjarnason if exists("b:current_syntax") finish endif syntax include @markdown $VIMRUNTIME/syntax/markdown.vim syn cluster markdownLikeDocs contains=markdownBold,markdownItalic,markdownLinkText,markdownListMarker,markdownOrderedListMarker,markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6 syn match unisonOperator "[-!#$%&\*\+/<=>\?@\\^|~]" syn match unisonDelimiter "[\[\](){},.]" " Strings and constants syn match unisonSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)" syn match unisonSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)" syn match unisonSpecialCharError contained "\\&\|'''\+" syn region unisonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=unisonSpecialChar syn match unisonCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=unisonSpecialChar,unisonSpecialCharError syn match unisonCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=unisonSpecialChar,unisonSpecialCharError syn match unisonNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" syn match unisonFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" " Keyword definitions. These must be patterns instead of keywords " because otherwise they would match as keywords at the start of a " "literate" comment (see lu.vim). syn match unisonModule "\<namespace\>" syn match unisonImport "\<use\>" syn match unisonTypedef "\<\(unique\|structural\|∀\|forall\)\>" syn match unisonStatement "\<\(ability\|do\|type\|where\|match\|cases\|;\|let\|with\|handle\)\>" syn match unisonConditional "\<\(if\|else\|then\)\>" syn match unisonBoolean "\<\(true\|false\)\>" syn match unisonType "\<\C[A-Z][0-9A-Za-z_'!]*\>" syn match unisonName "\<\C[a-z_][0-9A-Za-z_'!]*\>" " Comments syn match unisonLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" syn region unisonBlockComment start="{-" end="-}" contains=unisonBlockComment syn region unisonBelowFold start="^---" skip="." end="." contains=unisonBelowFold " Docs syn region unisonDocBlock matchgroup=unisonDoc start="{{" end="}}" contains=unisonDocTypecheck,unisonDocQuasiquote,unisonDocDirective,unisonDocCode,unisonDocCodeInline,unisonDocCodeRaw,unisonDocMono,@markdownLikeDocs syn region unisonDocQuasiquote contained matchgroup=unisonDocQuote start="{{" end= "}}" contains=TOP syn region unisonDocCode contained matchgroup=unisonDocCode start="^\s*```\s*$" end="^\s*```\s*$" contains=TOP syn region unisonDocTypecheck contained matchgroup=unisonDocCode start="^\s*@typecheck\s*```\s*$" end="^\s*```\s*$" contains=TOP syn region unisonDocCodeRaw contained matchgroup=unisonDocCode start="^\s*```\s*raw\s*$" end="^\s*```\s*$" contains=NoSyntax syn region unisonDocCodeInline contained matchgroup=unisonDocCode start="`\@<!``" end="`\@<!``" contains=TOP syn match unisonDocMono "''[^']*''" syn region unisonDocDirective contained matchgroup=unisonDocDirective start="\(@\([a-zA-Z0-9_']*\)\)\?{{\@!" end="}" contains=TOP syn match unisonDebug "\<\(todo\|bug\|Debug.trace\|Debug.evalToText\)\>" " things like " > my_func 1 3 " test> Function.tap.tests.t1 = check let " use Nat == + " ( 99, 100 ) === (withInitialValue 0 do " : : : syn match unisonWatch "^[A-Za-z]*>" hi def link unisonWatch Debug hi def link unisonDocMono Delimiter hi def link unisonDocDirective Import hi def link unisonDocQuote Delimiter hi def link unisonDocCode Delimiter hi def link unisonDoc String hi def link unisonBelowFold Comment hi def link unisonBlockComment Comment hi def link unisonBoolean Boolean hi def link unisonCharacter Character hi def link unisonComment Comment hi def link unisonConditional Conditional hi def link unisonConditional Conditional hi def link unisonDebug Debug hi def link unisonDelimiter Delimiter hi def link unisonDocBlock String hi def link unisonDocDirective Import hi def link unisonDocIncluded Import hi def link unisonFloat Float hi def link unisonImport Include hi def link unisonLineComment Comment hi def link unisonLink Type hi def link unisonName Identifier hi def link unisonNumber Number hi def link unisonOperator Operator hi def link unisonSpecialChar SpecialChar hi def link unisonSpecialCharError Error hi def link unisonStatement Statement hi def link unisonString String hi def link unisonType Type hi def link unisonTypedef Typedef let b:current_syntax = "unison" " Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim