| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:	Smalltalk | 
					
						
							|  |  |  | " Maintainer:	Arndt Hesse <hesse@self.de> | 
					
						
							| 
									
										
										
										
											2012-02-13 00:05:22 +01:00
										 |  |  | " Last Change:	2012 Feb 12 by Thilo Six | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-02-13 00:05:22 +01:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " some Smalltalk keywords and standard methods | 
					
						
							|  |  |  | syn keyword	stKeyword	super self class true false new not | 
					
						
							|  |  |  | syn keyword	stKeyword	notNil isNil inspect out nil | 
					
						
							|  |  |  | syn match	stMethod	"\<do\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<whileTrue\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<whileFalse\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<ifTrue\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<ifFalse\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<put\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<to\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<at\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<add\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<new\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<for\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<methods\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<methodsFor\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<instanceVariableNames\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<classVariableNames\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<poolDictionaries\>:" | 
					
						
							|  |  |  | syn match	stMethod	"\<subclass\>:" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " the block of local variables of a method | 
					
						
							|  |  |  | syn region stLocalVariables	start="^[ \t]*|" end="|" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " the Smalltalk comment | 
					
						
							|  |  |  | syn region stComment	start="\"" end="\"" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " the Smalltalk strings and single characters | 
					
						
							|  |  |  | syn region stString	start='\'' skip="''" end='\'' | 
					
						
							|  |  |  | syn match  stCharacter	"$." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case ignore | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-09 21:55:11 +02:00
										 |  |  | " the symbols prefixed by a '#' | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match  stSymbol	"\(#\<[a-z_][a-z0-9_]*\>\)" | 
					
						
							|  |  |  | syn match  stSymbol	"\(#'[^']*'\)" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " the variables in a statement block for loops | 
					
						
							|  |  |  | syn match  stBlockVariable "\(:[ \t]*\<[a-z_][a-z0-9_]*\>[ \t]*\)\+|" contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " some representations of numbers | 
					
						
							|  |  |  | syn match  stNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>" | 
					
						
							|  |  |  | syn match  stFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" | 
					
						
							|  |  |  | syn match  stFloat	"\<\d\+e[-+]\=\d\+[fl]\=\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case match | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-09 21:55:11 +02:00
										 |  |  | " a try to highlight paren mismatches | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn region stParen	transparent start='(' end=')' contains=ALLBUT,stParenError | 
					
						
							|  |  |  | syn match  stParenError	")" | 
					
						
							|  |  |  | syn region stBlock	transparent start='\[' end='\]' contains=ALLBUT,stBlockError | 
					
						
							|  |  |  | syn match  stBlockError	"\]" | 
					
						
							|  |  |  | syn region stSet	transparent start='{' end='}' contains=ALLBUT,stSetError | 
					
						
							|  |  |  | syn match  stSetError	"}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi link stParenError stError | 
					
						
							|  |  |  | hi link stSetError stError | 
					
						
							|  |  |  | hi link stBlockError stError | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " synchronization for syntax analysis | 
					
						
							|  |  |  | syn sync minlines=50 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | hi def link stKeyword		Statement | 
					
						
							|  |  |  | hi def link stMethod		Statement | 
					
						
							|  |  |  | hi def link stComment		Comment | 
					
						
							|  |  |  | hi def link stCharacter		Constant | 
					
						
							|  |  |  | hi def link stString		Constant | 
					
						
							|  |  |  | hi def link stSymbol		Special | 
					
						
							|  |  |  | hi def link stNumber		Type | 
					
						
							|  |  |  | hi def link stFloat		Type | 
					
						
							|  |  |  | hi def link stError		Error | 
					
						
							|  |  |  | hi def link stLocalVariables	Identifier | 
					
						
							|  |  |  | hi def link stBlockVariable	Identifier | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "st" | 
					
						
							| 
									
										
										
										
											2012-02-13 00:05:22 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save |