updated for multimonitor setup with bar and screen
[dotfiles.git] / .vim / ftplugin / praat.vim
1 " Vim syntax file
2 " Filename: praat.vim
3 " Language: Praat - doing phonetics by computer (www.praat.org)
4 " Maintainer: Pablo Arantes - parantes(at)fastmail(dot)fm
5 " Last Change: 2006 Feb 17
6 "
7 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
8
9 syntax clear
10 syntax case match
11
12 " Arguments to form (Manual, section 6.1)
13
14 syntax keyword praatType boolean button choice comment integer
15 syntax keyword praatType natural option optionmenu positive
16 syntax keyword praattype real sentence word text
17
18 " Loops and conditionals
19
20 syntax keyword praatConditional if else elsif elif endif fi
21 syntax keyword praatRepeat for from to endfor repeat until while endwhile
22
23 " Statements
24
25 syntax keyword praatStatement call clearinfo echo execute pause nowarn
26 syntax keyword praatStatement plus minus printline printtab Remove
27 syntax keyword praatStatement select yes all filedelete fileappend
28
29 " Compound statements (like Read from file...)
30
31 syntax match praatDottedStat "[A-Z]\{1\}[A-Za-z \-]*\.\{3\}"
32 syntax match praatCompStat "\W*\*s[A-Z]\{1\}[A-Za-z \-]*$"
33
34 " Environments
35
36 syntax keyword praatEnvironment editor endeditor procedure endproc
37 syntax keyword praatEnvironment form endform
38
39 " Mathematical Functions (Praat Manual, Formulas, section 4)
40
41 syntax keyword praatFunction abs arccos arcosh arcsin arcsinh arctan
42 syntax keyword praatFunction arctan2 arctanh barkToHertz binomialP
43 syntax keyword praatFunction ceiling chiSquareP chiSquareQ cos cosh
44 syntax keyword praatFunction differenceLimensToPhon erb erbToHertz
45 syntax keyword praatFunction erf erfc exp fisherP fisherQ floor
46 syntax keyword praatFunction gaussP gaussQ hertzToBark hertzToErb
47 syntax keyword praatFunction hertzToMel hertzToSemitones imax imin
48 syntax keyword praatFunction invBinomialP invBinomialQ invChiSquareQ
49 syntax keyword praatFunction invFisherQ invGaussQ invStudentQ ln
50 syntax keyword praatFunction lnGamma log10 log2 max melToHertz min
51 syntax keyword praatFunction phonToDifferenceLimens randomGauss
52 syntax keyword praatFunction randomInteger randomPoisson randomUniform
53 syntax keyword praatFunction round semitonesToHertz sigmoid sin sinh
54 syntax keyword praatFunction sort sqrt stundentP studentQ tan tanh nSelected
55
56 " Constants (Praat Manual, Formulas, section 3)
57
58 syntax keyword praatConstant pi e undefined
59
60 " String Functions (Praat Manual, Formulas, section 5)
61
62 syntax keyword praatStrFunc contained left$ right$ mid$
63 syntax keyword praatStrFunc contained fixed$ date$ tab$
64 syntax keyword praatStrFunc contained extractWord$ newline$
65 syntax keyword praatStrFunc contained extractLine$ percent$
66 syntax keyword praatStrSpec colength index rindex startsWith
67 syntax keyword praatStrSpec coendsWith extractNumber
68
69 " Attributes of objects (Praat Manual, Formulas, section 7)
70
71 syntax keyword praatAttribute xmin xmax ncol nrow nx dx ymin ymax ny dy
72
73 " Types of objects (Praat Manual, Types of objects section)
74
75 syntax keyword praatObject ArtWord BarkFilter CC Cepstrum Cochleagram
76 syntax keyword praatObject DurationTier Excitation Formant FormantTier
77 syntax keyword praatObject FormantFilter Harmonicity Intensity
78 syntax keyword praatObject IntensityTier LFCC LPC LongSound Ltas MFCC
79 syntax keyword praatObject Manipulation Matrix MelFilter ParamCurve
80 syntax keyword praatObject Pitch PitchTier PointProcess Polygon Sequence
81 syntax keyword praatObject Sequence Sound Speaker Spectrogram Spectrum
82 syntax keyword praatObject SpellingChecker Strings TableOfReal TextGrid
83 syntax keyword praatObject TextTier Wavelet WordList Table
84
85 " String variables
86
87 syntax match praatStrVar "\l\w*\$" contains=praatStrFunc
88
89 " String Assignment
90 syntax region praatString start=+"+ skip=+\\+ end=+"+
91 syntax region praatString start=+'+ skip=+\\+ end=+'+
92
93 " Delimiters
94
95 syntax match praatDelim "[{}()\\]"
96 syntax match praatDelim "[][]"
97
98 " Operators (Praat Manual, Formulas section 2)
99
100 " syntax keyword praatOperator div mod not
101 syntax keyword praatOperator = / * ^ > <
102
103 " Numbers
104
105 syntax match praatNumber "\d"
106
107 " Comments
108 syntax match praatComment "#.*$"
109 syntax match praatComment "!.*$"
110 syntax match praatComment ";.*$"
111
112 " Define the default highlighting
113 " For version 5.7 and earlier: only when not done already
114 " For version 5.8 and later: only when an item doesn't have
115 " highlighting yet
116
117 if version >= 508 || !exists("did_praat_syn_inits")
118 if version < 508
119 let did_praat_syn_inits = 1
120 command -nargs=+ HiLink hi link <args>
121 else
122 command -nargs=+ HiLink hi def <args>
123 endif
124
125 highlight link praatType Type
126 highlight link praatConditional Conditional
127 highlight link praatRepeat Repeat
128 highlight link praatStatement Statement
129 highlight link praatEnvironment Repeat
130 highlight link praatFunction Function
131 highlight link praatConstant Constant
132 highlight link praatStrFunc Function
133 highlight link praatStrSpec Function
134 highlight link praatAttribute Statement
135 highlight link praatObject Type
136 highlight link praatString String
137 highlight link praatStrVar Identifier
138 highlight link praatDelim Delimiter
139 highlight link praatComment Comment
140 highlight link praatNumber Number
141 highlight link praatDottedStat Statement
142 highlight link praatCompStat Statement
143 highlight link praatOperator Type
144 delcommand HiLink
145 endif
146
147 let b:current_syntax = "praat"