neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

st.vim (2754B)


      1 " Vim syntax file
      2 " Language:	Smalltalk
      3 " Maintainer:	Arndt Hesse <hesse@self.de>
      4 " Last Change:	2012 Feb 12 by Thilo Six
      5 
      6 " quit when a syntax file was already loaded
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 let s:cpo_save = &cpo
     12 set cpo&vim
     13 
     14 " some Smalltalk keywords and standard methods
     15 syn keyword	stKeyword	super self class true false new not
     16 syn keyword	stKeyword	notNil isNil inspect out nil
     17 syn match	stMethod	"\<do\>:"
     18 syn match	stMethod	"\<whileTrue\>:"
     19 syn match	stMethod	"\<whileFalse\>:"
     20 syn match	stMethod	"\<ifTrue\>:"
     21 syn match	stMethod	"\<ifFalse\>:"
     22 syn match	stMethod	"\<put\>:"
     23 syn match	stMethod	"\<to\>:"
     24 syn match	stMethod	"\<at\>:"
     25 syn match	stMethod	"\<add\>:"
     26 syn match	stMethod	"\<new\>:"
     27 syn match	stMethod	"\<for\>:"
     28 syn match	stMethod	"\<methods\>:"
     29 syn match	stMethod	"\<methodsFor\>:"
     30 syn match	stMethod	"\<instanceVariableNames\>:"
     31 syn match	stMethod	"\<classVariableNames\>:"
     32 syn match	stMethod	"\<poolDictionaries\>:"
     33 syn match	stMethod	"\<subclass\>:"
     34 
     35 " the block of local variables of a method
     36 syn region stLocalVariables	start="^[ \t]*|" end="|"
     37 
     38 " the Smalltalk comment
     39 syn region stComment	start="\"" end="\""
     40 
     41 " the Smalltalk strings and single characters
     42 syn region stString	start='\'' skip="''" end='\''
     43 syn match  stCharacter	"$."
     44 
     45 syn case ignore
     46 
     47 " the symbols prefixed by a '#'
     48 syn match  stSymbol	"\(#\<[a-z_][a-z0-9_]*\>\)"
     49 syn match  stSymbol	"\(#'[^']*'\)"
     50 
     51 " the variables in a statement block for loops
     52 syn match  stBlockVariable "\(:[ \t]*\<[a-z_][a-z0-9_]*\>[ \t]*\)\+|" contained
     53 
     54 " some representations of numbers
     55 syn match  stNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>"
     56 syn match  stFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
     57 syn match  stFloat	"\<\d\+e[-+]\=\d\+[fl]\=\>"
     58 
     59 syn case match
     60 
     61 " a try to highlight paren mismatches
     62 syn region stParen	transparent start='(' end=')' contains=ALLBUT,stParenError
     63 syn match  stParenError	")"
     64 syn region stBlock	transparent start='\[' end='\]' contains=ALLBUT,stBlockError
     65 syn match  stBlockError	"\]"
     66 syn region stSet	transparent start='{' end='}' contains=ALLBUT,stSetError
     67 syn match  stSetError	"}"
     68 
     69 hi link stParenError stError
     70 hi link stSetError stError
     71 hi link stBlockError stError
     72 
     73 " synchronization for syntax analysis
     74 syn sync minlines=50
     75 
     76 " Define the default highlighting.
     77 " Only when an item doesn't have highlighting yet
     78 
     79 hi def link stKeyword		Statement
     80 hi def link stMethod		Statement
     81 hi def link stComment		Comment
     82 hi def link stCharacter		Constant
     83 hi def link stString		Constant
     84 hi def link stSymbol		Special
     85 hi def link stNumber		Type
     86 hi def link stFloat		Type
     87 hi def link stError		Error
     88 hi def link stLocalVariables	Identifier
     89 hi def link stBlockVariable	Identifier
     90 
     91 
     92 let b:current_syntax = "st"
     93 
     94 let &cpo = s:cpo_save
     95 unlet s:cpo_save