xref: /vim-8.2.3635/runtime/syntax/st.vim (revision 6c391a74)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Smalltalk
3071d4279SBram Moolenaar" Maintainer:	Arndt Hesse <[email protected]>
45dc6252dSBram Moolenaar" Last Change:	2012 Feb 12 by Thilo Six
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
115dc6252dSBram Moolenaarlet s:cpo_save = &cpo
125dc6252dSBram Moolenaarset cpo&vim
135dc6252dSBram Moolenaar
14071d4279SBram Moolenaar" some Smalltalk keywords and standard methods
15071d4279SBram Moolenaarsyn keyword	stKeyword	super self class true false new not
16071d4279SBram Moolenaarsyn keyword	stKeyword	notNil isNil inspect out nil
17071d4279SBram Moolenaarsyn match	stMethod	"\<do\>:"
18071d4279SBram Moolenaarsyn match	stMethod	"\<whileTrue\>:"
19071d4279SBram Moolenaarsyn match	stMethod	"\<whileFalse\>:"
20071d4279SBram Moolenaarsyn match	stMethod	"\<ifTrue\>:"
21071d4279SBram Moolenaarsyn match	stMethod	"\<ifFalse\>:"
22071d4279SBram Moolenaarsyn match	stMethod	"\<put\>:"
23071d4279SBram Moolenaarsyn match	stMethod	"\<to\>:"
24071d4279SBram Moolenaarsyn match	stMethod	"\<at\>:"
25071d4279SBram Moolenaarsyn match	stMethod	"\<add\>:"
26071d4279SBram Moolenaarsyn match	stMethod	"\<new\>:"
27071d4279SBram Moolenaarsyn match	stMethod	"\<for\>:"
28071d4279SBram Moolenaarsyn match	stMethod	"\<methods\>:"
29071d4279SBram Moolenaarsyn match	stMethod	"\<methodsFor\>:"
30071d4279SBram Moolenaarsyn match	stMethod	"\<instanceVariableNames\>:"
31071d4279SBram Moolenaarsyn match	stMethod	"\<classVariableNames\>:"
32071d4279SBram Moolenaarsyn match	stMethod	"\<poolDictionaries\>:"
33071d4279SBram Moolenaarsyn match	stMethod	"\<subclass\>:"
34071d4279SBram Moolenaar
35071d4279SBram Moolenaar" the block of local variables of a method
36071d4279SBram Moolenaarsyn region stLocalVariables	start="^[ \t]*|" end="|"
37071d4279SBram Moolenaar
38071d4279SBram Moolenaar" the Smalltalk comment
39071d4279SBram Moolenaarsyn region stComment	start="\"" end="\""
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" the Smalltalk strings and single characters
42071d4279SBram Moolenaarsyn region stString	start='\'' skip="''" end='\''
43071d4279SBram Moolenaarsyn match  stCharacter	"$."
44071d4279SBram Moolenaar
45071d4279SBram Moolenaarsyn case ignore
46071d4279SBram Moolenaar
47*6c391a74SBram Moolenaar" the symbols prefixed by a '#'
48071d4279SBram Moolenaarsyn match  stSymbol	"\(#\<[a-z_][a-z0-9_]*\>\)"
49071d4279SBram Moolenaarsyn match  stSymbol	"\(#'[^']*'\)"
50071d4279SBram Moolenaar
51071d4279SBram Moolenaar" the variables in a statement block for loops
52071d4279SBram Moolenaarsyn match  stBlockVariable "\(:[ \t]*\<[a-z_][a-z0-9_]*\>[ \t]*\)\+|" contained
53071d4279SBram Moolenaar
54071d4279SBram Moolenaar" some representations of numbers
55071d4279SBram Moolenaarsyn match  stNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
56071d4279SBram Moolenaarsyn match  stFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
57071d4279SBram Moolenaarsyn match  stFloat	"\<\d\+e[-+]\=\d\+[fl]\=\>"
58071d4279SBram Moolenaar
59071d4279SBram Moolenaarsyn case match
60071d4279SBram Moolenaar
61*6c391a74SBram Moolenaar" a try to highlight paren mismatches
62071d4279SBram Moolenaarsyn region stParen	transparent start='(' end=')' contains=ALLBUT,stParenError
63071d4279SBram Moolenaarsyn match  stParenError	")"
64071d4279SBram Moolenaarsyn region stBlock	transparent start='\[' end='\]' contains=ALLBUT,stBlockError
65071d4279SBram Moolenaarsyn match  stBlockError	"\]"
66071d4279SBram Moolenaarsyn region stSet	transparent start='{' end='}' contains=ALLBUT,stSetError
67071d4279SBram Moolenaarsyn match  stSetError	"}"
68071d4279SBram Moolenaar
69071d4279SBram Moolenaarhi link stParenError stError
70071d4279SBram Moolenaarhi link stSetError stError
71071d4279SBram Moolenaarhi link stBlockError stError
72071d4279SBram Moolenaar
73071d4279SBram Moolenaar" synchronization for syntax analysis
74071d4279SBram Moolenaarsyn sync minlines=50
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" Define the default highlighting.
7789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
78071d4279SBram Moolenaar
79f37506f6SBram Moolenaarhi def link stKeyword		Statement
80f37506f6SBram Moolenaarhi def link stMethod		Statement
81f37506f6SBram Moolenaarhi def link stComment		Comment
82f37506f6SBram Moolenaarhi def link stCharacter		Constant
83f37506f6SBram Moolenaarhi def link stString		Constant
84f37506f6SBram Moolenaarhi def link stSymbol		Special
85f37506f6SBram Moolenaarhi def link stNumber		Type
86f37506f6SBram Moolenaarhi def link stFloat		Type
87f37506f6SBram Moolenaarhi def link stError		Error
88f37506f6SBram Moolenaarhi def link stLocalVariables	Identifier
89f37506f6SBram Moolenaarhi def link stBlockVariable	Identifier
90071d4279SBram Moolenaar
91071d4279SBram Moolenaar
92071d4279SBram Moolenaarlet b:current_syntax = "st"
935dc6252dSBram Moolenaar
945dc6252dSBram Moolenaarlet &cpo = s:cpo_save
955dc6252dSBram Moolenaarunlet s:cpo_save
96