blob: f7bfcb203ad7da5c3a470b6b750dc24ad092e4b8 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Interactive Data Language syntax file (IDL, too [:-)]
2" Maintainer: Aleksandar Jelenak <ajelenak AT yahoo.com>
Joe Sappfc72a2f2024-09-10 21:46:54 +02003" Created By: Hermann Rochholz <Hermann.Rochholz AT gmx.de>
4" Last Change: 2011 Apr 11
5" 2024 Sep 10 by Vim Project: update syntax script, #15419
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
7" Remove any old syntax stuff hanging around
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02008" quit when a syntax file was already loaded
9if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000010 finish
11endif
12
13syntax case ignore
14
15syn match idlangStatement "^\s*pro\s"
16syn match idlangStatement "^\s*function\s"
17syn keyword idlangStatement return continue mod do break
18syn keyword idlangStatement compile_opt forward_function goto
19syn keyword idlangStatement begin common end of
Joe Sappfc72a2f2024-09-10 21:46:54 +020020syn keyword idlangStatement inherits on_error on_ioerror begin
Bram Moolenaar071d4272004-06-13 20:20:40 +000021
22syn keyword idlangConditional if else then for while case switch
23syn keyword idlangConditional endcase endelse endfor endswitch
24syn keyword idlangConditional endif endrep endwhile repeat until
25
26syn match idlangOperator "\ and\ "
27syn match idlangOperator "\ eq\ "
28syn match idlangOperator "\ ge\ "
29syn match idlangOperator "\ gt\ "
30syn match idlangOperator "\ le\ "
31syn match idlangOperator "\ lt\ "
32syn match idlangOperator "\ ne\ "
33syn match idlangOperator /\(\ \|(\)not\ /hs=e-3
34syn match idlangOperator "\ or\ "
35syn match idlangOperator "\ xor\ "
36
37syn keyword idlangStop stop pause
38
39syn match idlangStrucvar "\h\w*\(\.\h\w*\)\+"
40syn match idlangStrucvar "[),\]]\(\.\h\w*\)\+"hs=s+1
41
42syn match idlangSystem "\!\a\w*\(\.\w*\)\="
43
44syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=/\h\w*"
45syn match idlangKeyword "\([(,]\s*\(\$\_s*\)\=\)\@<=\h\w*\s*="
46
47syn keyword idlangTodo contained TODO
48
49syn region idlangString start=+"+ end=+"+
50syn region idlangString start=+'+ end=+'+
51
52syn match idlangPreCondit "^\s*@\w*\(\.\a\{3}\)\="
53
54syn match idlangRealNumber "\<\d\+\(\.\=\d*e[+-]\=\d\+\|\.\d*d\|\.\d*\|d\)"
55syn match idlangRealNumber "\.\d\+\(d\|e[+-]\=\d\+\)\="
56
57syn match idlangNumber "\<\.\@!\d\+\.\@!\(b\|u\|us\|s\|l\|ul\|ll\|ull\)\=\>"
58
59syn match idlangComment "[\;].*$" contains=idlangTodo
60
61syn match idlangContinueLine "\$\s*\($\|;\)"he=s+1 contains=idlangComment
62syn match idlangContinueLine "&\s*\(\h\|;\)"he=s+1 contains=ALL
63
64syn match idlangDblCommaError "\,\s*\,"
65
66" List of standard routines as of IDL version 5.4.
67syn match idlangRoutine "EOS_\a*"
68syn match idlangRoutine "HDF_\a*"
69syn match idlangRoutine "CDF_\a*"
70syn match idlangRoutine "NCDF_\a*"
71syn match idlangRoutine "QUERY_\a*"
72syn match idlangRoutine "\<MAX\s*("he=e-1
73syn match idlangRoutine "\<MIN\s*("he=e-1
74
75syn keyword idlangRoutine A_CORRELATE ABS ACOS ADAPT_HIST_EQUAL ALOG ALOG10
76syn keyword idlangRoutine AMOEBA ANNOTATE ARG_PRESENT ARRAY_EQUAL ARROW
77syn keyword idlangRoutine ASCII_TEMPLATE ASIN ASSOC ATAN AXIS BAR_PLOT
78syn keyword idlangRoutine BESELI BESELJ BESELK BESELY BETA BILINEAR BIN_DATE
79syn keyword idlangRoutine BINARY_TEMPLATE BINDGEN BINOMIAL BLAS_AXPY BLK_CON
80syn keyword idlangRoutine BOX_CURSOR BREAK BREAKPOINT BROYDEN BYTARR BYTE
81syn keyword idlangRoutine BYTEORDER BYTSCL C_CORRELATE CALDAT CALENDAR
82syn keyword idlangRoutine CALL_EXTERNAL CALL_FUNCTION CALL_METHOD
83syn keyword idlangRoutine CALL_PROCEDURE CATCH CD CEIL CHEBYSHEV CHECK_MATH
84syn keyword idlangRoutine CHISQR_CVF CHISQR_PDF CHOLDC CHOLSOL CINDGEN
85syn keyword idlangRoutine CIR_3PNT CLOSE CLUST_WTS CLUSTER COLOR_CONVERT
Joe Sappfc72a2f2024-09-10 21:46:54 +020086syn keyword idlangRoutine COLOR_QUAN COLORMAP_APPLICABLE COMFIT
Bram Moolenaar071d4272004-06-13 20:20:40 +000087syn keyword idlangRoutine COMPLEX COMPLEXARR COMPLEXROUND
88syn keyword idlangRoutine COMPUTE_MESH_NORMALS COND CONGRID CONJ
89syn keyword idlangRoutine CONSTRAINED_MIN CONTOUR CONVERT_COORD CONVOL
90syn keyword idlangRoutine COORD2TO3 CORRELATE COS COSH CRAMER CREATE_STRUCT
91syn keyword idlangRoutine CREATE_VIEW CROSSP CRVLENGTH CT_LUMINANCE CTI_TEST
92syn keyword idlangRoutine CURSOR CURVEFIT CV_COORD CVTTOBM CW_ANIMATE
93syn keyword idlangRoutine CW_ANIMATE_GETP CW_ANIMATE_LOAD CW_ANIMATE_RUN
94syn keyword idlangRoutine CW_ARCBALL CW_BGROUP CW_CLR_INDEX CW_COLORSEL
95syn keyword idlangRoutine CW_DEFROI CW_FIELD CW_FILESEL CW_FORM CW_FSLIDER
96syn keyword idlangRoutine CW_LIGHT_EDITOR CW_LIGHT_EDITOR_GET
97syn keyword idlangRoutine CW_LIGHT_EDITOR_SET CW_ORIENT CW_PALETTE_EDITOR
98syn keyword idlangRoutine CW_PALETTE_EDITOR_GET CW_PALETTE_EDITOR_SET
99syn keyword idlangRoutine CW_PDMENU CW_RGBSLIDER CW_TMPL CW_ZOOM DBLARR
100syn keyword idlangRoutine DCINDGEN DCOMPLEX DCOMPLEXARR DEFINE_KEY DEFROI
101syn keyword idlangRoutine DEFSYSV DELETE_SYMBOL DELLOG DELVAR DERIV DERIVSIG
Joe Sappfc72a2f2024-09-10 21:46:54 +0200102syn keyword idlangRoutine DETERM DEVICE DFPMIN DIAG_MATRIX DIALOG_MESSAGE
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103syn keyword idlangRoutine DIALOG_PICKFILE DIALOG_PRINTERSETUP
104syn keyword idlangRoutine DIALOG_PRINTJOB DIALOG_READ_IMAGE
105syn keyword idlangRoutine DIALOG_WRITE_IMAGE DIGITAL_FILTER DILATE DINDGEN
106syn keyword idlangRoutine DISSOLVE DIST DLM_LOAD DLM_REGISTER
107syn keyword idlangRoutine DO_APPLE_SCRIPT DOC_LIBRARY DOUBLE DRAW_ROI EFONT
108syn keyword idlangRoutine EIGENQL EIGENVEC ELMHES EMPTY ENABLE_SYSRTN EOF
109syn keyword idlangRoutine ERASE ERODE ERRORF ERRPLOT EXECUTE EXIT EXP EXPAND
110syn keyword idlangRoutine EXPAND_PATH EXPINT EXTRAC EXTRACT_SLICE F_CVF
111syn keyword idlangRoutine F_PDF FACTORIAL FFT FILE_CHMOD FILE_DELETE
112syn keyword idlangRoutine FILE_EXPAND_PATH FILE_MKDIR FILE_TEST FILE_WHICH
113syn keyword idlangRoutine FILEPATH FINDFILE FINDGEN FINITE FIX FLICK FLOAT
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200114syn keyword idlangRoutine FLOOR FLOW3 FLTARR FLUSH FORMAT_AXIS_VALUES
Bram Moolenaar071d4272004-06-13 20:20:40 +0000115syn keyword idlangRoutine FORWARD_FUNCTION FREE_LUN FSTAT FULSTR FUNCT
116syn keyword idlangRoutine FV_TEST FX_ROOT FZ_ROOTS GAMMA GAMMA_CT
117syn keyword idlangRoutine GAUSS_CVF GAUSS_PDF GAUSS2DFIT GAUSSFIT GAUSSINT
118syn keyword idlangRoutine GET_DRIVE_LIST GET_KBRD GET_LUN GET_SCREEN_SIZE
119syn keyword idlangRoutine GET_SYMBOL GETENV GOTO GRID_TPS GRID3 GS_ITER
120syn keyword idlangRoutine H_EQ_CT H_EQ_INT HANNING HEAP_GC HELP HILBERT
121syn keyword idlangRoutine HIST_2D HIST_EQUAL HISTOGRAM HLS HOUGH HQR HSV
122syn keyword idlangRoutine IBETA IDENTITY IDL_Container IDLanROI
123syn keyword idlangRoutine IDLanROIGroup IDLffDICOM IDLffDXF IDLffLanguageCat
124syn keyword idlangRoutine IDLffShape IDLgrAxis IDLgrBuffer IDLgrClipboard
125syn keyword idlangRoutine IDLgrColorbar IDLgrContour IDLgrFont IDLgrImage
126syn keyword idlangRoutine IDLgrLegend IDLgrLight IDLgrModel IDLgrMPEG
127syn keyword idlangRoutine IDLgrPalette IDLgrPattern IDLgrPlot IDLgrPolygon
128syn keyword idlangRoutine IDLgrPolyline IDLgrPrinter IDLgrROI IDLgrROIGroup
129syn keyword idlangRoutine IDLgrScene IDLgrSurface IDLgrSymbol
130syn keyword idlangRoutine IDLgrTessellator IDLgrText IDLgrView
131syn keyword idlangRoutine IDLgrViewgroup IDLgrVolume IDLgrVRML IDLgrWindow
132syn keyword idlangRoutine IGAMMA IMAGE_CONT IMAGE_STATISTICS IMAGINARY
133syn keyword idlangRoutine INDGEN INT_2D INT_3D INT_TABULATED INTARR INTERPOL
134syn keyword idlangRoutine INTERPOLATE INVERT IOCTL ISHFT ISOCONTOUR
135syn keyword idlangRoutine ISOSURFACE JOURNAL JULDAY KEYWORD_SET KRIG2D
136syn keyword idlangRoutine KURTOSIS KW_TEST L64INDGEN LABEL_DATE LABEL_REGION
137syn keyword idlangRoutine LADFIT LAGUERRE LEEFILT LEGENDRE LINBCG LINDGEN
138syn keyword idlangRoutine LINFIT LINKIMAGE LIVE_CONTOUR LIVE_CONTROL
139syn keyword idlangRoutine LIVE_DESTROY LIVE_EXPORT LIVE_IMAGE LIVE_INFO
140syn keyword idlangRoutine LIVE_LINE LIVE_LOAD LIVE_OPLOT LIVE_PLOT
141syn keyword idlangRoutine LIVE_PRINT LIVE_RECT LIVE_STYLE LIVE_SURFACE
142syn keyword idlangRoutine LIVE_TEXT LJLCT LL_ARC_DISTANCE LMFIT LMGR LNGAMMA
143syn keyword idlangRoutine LNP_TEST LOADCT LOCALE_GET LON64ARR LONARR LONG
144syn keyword idlangRoutine LONG64 LSODE LU_COMPLEX LUDC LUMPROVE LUSOL
145syn keyword idlangRoutine M_CORRELATE MACHAR MAKE_ARRAY MAKE_DLL MAP_2POINTS
146syn keyword idlangRoutine MAP_CONTINENTS MAP_GRID MAP_IMAGE MAP_PATCH
147syn keyword idlangRoutine MAP_PROJ_INFO MAP_SET MATRIX_MULTIPLY MD_TEST MEAN
148syn keyword idlangRoutine MEANABSDEV MEDIAN MEMORY MESH_CLIP MESH_DECIMATE
149syn keyword idlangRoutine MESH_ISSOLID MESH_MERGE MESH_NUMTRIANGLES MESH_OBJ
150syn keyword idlangRoutine MESH_SMOOTH MESH_SURFACEAREA MESH_VALIDATE
151syn keyword idlangRoutine MESH_VOLUME MESSAGE MIN_CURVE_SURF MK_HTML_HELP
152syn keyword idlangRoutine MODIFYCT MOMENT MORPH_CLOSE MORPH_DISTANCE
153syn keyword idlangRoutine MORPH_GRADIENT MORPH_HITORMISS MORPH_OPEN
154syn keyword idlangRoutine MORPH_THIN MORPH_TOPHAT MPEG_CLOSE MPEG_OPEN
155syn keyword idlangRoutine MPEG_PUT MPEG_SAVE MSG_CAT_CLOSE MSG_CAT_COMPILE
156syn keyword idlangRoutine MSG_CAT_OPEN MULTI N_ELEMENTS N_PARAMS N_TAGS
157syn keyword idlangRoutine NEWTON NORM OBJ_CLASS OBJ_DESTROY OBJ_ISA OBJ_NEW
158syn keyword idlangRoutine OBJ_VALID OBJARR ON_ERROR ON_IOERROR ONLINE_HELP
Joe Sappfc72a2f2024-09-10 21:46:54 +0200159syn keyword idlangRoutine OPEN OPENR OPENW OPENU OPLOT OPLOTERR P_CORRELATE
Bram Moolenaar071d4272004-06-13 20:20:40 +0000160syn keyword idlangRoutine PARTICLE_TRACE PCOMP PLOT PLOT_3DBOX PLOT_FIELD
161syn keyword idlangRoutine PLOTERR PLOTS PNT_LINE POINT_LUN POLAR_CONTOUR
162syn keyword idlangRoutine POLAR_SURFACE POLY POLY_2D POLY_AREA POLY_FIT
163syn keyword idlangRoutine POLYFILL POLYFILLV POLYSHADE POLYWARP POPD POWELL
164syn keyword idlangRoutine PRIMES PRINT PRINTF PRINTD PROFILE PROFILER
165syn keyword idlangRoutine PROFILES PROJECT_VOL PS_SHOW_FONTS PSAFM PSEUDO
166syn keyword idlangRoutine PTR_FREE PTR_NEW PTR_VALID PTRARR PUSHD QROMB
167syn keyword idlangRoutine QROMO QSIMP R_CORRELATE R_TEST RADON RANDOMN
168syn keyword idlangRoutine RANDOMU RANKS RDPIX READ READF READ_ASCII
169syn keyword idlangRoutine READ_BINARY READ_BMP READ_DICOM READ_IMAGE
170syn keyword idlangRoutine READ_INTERFILE READ_JPEG READ_PICT READ_PNG
171syn keyword idlangRoutine READ_PPM READ_SPR READ_SRF READ_SYLK READ_TIFF
172syn keyword idlangRoutine READ_WAV READ_WAVE READ_X11_BITMAP READ_XWD READS
173syn keyword idlangRoutine READU REBIN RECALL_COMMANDS RECON3 REDUCE_COLORS
174syn keyword idlangRoutine REFORM REGRESS REPLICATE REPLICATE_INPLACE
175syn keyword idlangRoutine RESOLVE_ALL RESOLVE_ROUTINE RESTORE RETALL RETURN
176syn keyword idlangRoutine REVERSE REWIND RK4 ROBERTS ROT ROTATE ROUND
177syn keyword idlangRoutine ROUTINE_INFO RS_TEST S_TEST SAVE SAVGOL SCALE3
178syn keyword idlangRoutine SCALE3D SEARCH2D SEARCH3D SET_PLOT SET_SHADING
179syn keyword idlangRoutine SET_SYMBOL SETENV SETLOG SETUP_KEYS SFIT
180syn keyword idlangRoutine SHADE_SURF SHADE_SURF_IRR SHADE_VOLUME SHIFT SHOW3
181syn keyword idlangRoutine SHOWFONT SIN SINDGEN SINH SIZE SKEWNESS SKIPF
182syn keyword idlangRoutine SLICER3 SLIDE_IMAGE SMOOTH SOBEL SOCKET SORT SPAWN
183syn keyword idlangRoutine SPH_4PNT SPH_SCAT SPHER_HARM SPL_INIT SPL_INTERP
184syn keyword idlangRoutine SPLINE SPLINE_P SPRSAB SPRSAX SPRSIN SPRSTP SQRT
185syn keyword idlangRoutine STANDARDIZE STDDEV STOP STRARR STRCMP STRCOMPRESS
186syn keyword idlangRoutine STREAMLINE STREGEX STRETCH STRING STRJOIN STRLEN
187syn keyword idlangRoutine STRLOWCASE STRMATCH STRMESSAGE STRMID STRPOS
188syn keyword idlangRoutine STRPUT STRSPLIT STRTRIM STRUCT_ASSIGN STRUCT_HIDE
189syn keyword idlangRoutine STRUPCASE SURFACE SURFR SVDC SVDFIT SVSOL
190syn keyword idlangRoutine SWAP_ENDIAN SWITCH SYSTIME T_CVF T_PDF T3D
191syn keyword idlangRoutine TAG_NAMES TAN TANH TAPRD TAPWRT TEK_COLOR
192syn keyword idlangRoutine TEMPORARY TETRA_CLIP TETRA_SURFACE TETRA_VOLUME
193syn keyword idlangRoutine THIN THREED TIME_TEST2 TIMEGEN TM_TEST TOTAL TRACE
194syn keyword idlangRoutine TRANSPOSE TRI_SURF TRIANGULATE TRIGRID TRIQL
195syn keyword idlangRoutine TRIRED TRISOL TRNLOG TS_COEF TS_DIFF TS_FCAST
196syn keyword idlangRoutine TS_SMOOTH TV TVCRS TVLCT TVRD TVSCL UINDGEN UINT
197syn keyword idlangRoutine UINTARR UL64INDGEN ULINDGEN ULON64ARR ULONARR
198syn keyword idlangRoutine ULONG ULONG64 UNIQ USERSYM VALUE_LOCATE VARIANCE
199syn keyword idlangRoutine VAX_FLOAT VECTOR_FIELD VEL VELOVECT VERT_T3D VOIGT
200syn keyword idlangRoutine VORONOI VOXEL_PROJ WAIT WARP_TRI WATERSHED WDELETE
201syn keyword idlangRoutine WEOF WF_DRAW WHERE WIDGET_BASE WIDGET_BUTTON
202syn keyword idlangRoutine WIDGET_CONTROL WIDGET_DRAW WIDGET_DROPLIST
203syn keyword idlangRoutine WIDGET_EVENT WIDGET_INFO WIDGET_LABEL WIDGET_LIST
204syn keyword idlangRoutine WIDGET_SLIDER WIDGET_TABLE WIDGET_TEXT WINDOW
205syn keyword idlangRoutine WRITE_BMP WRITE_IMAGE WRITE_JPEG WRITE_NRIF
206syn keyword idlangRoutine WRITE_PICT WRITE_PNG WRITE_PPM WRITE_SPR WRITE_SRF
207syn keyword idlangRoutine WRITE_SYLK WRITE_TIFF WRITE_WAV WRITE_WAVE WRITEU
208syn keyword idlangRoutine WSET WSHOW WTN WV_APPLET WV_CW_WAVELET WV_CWT
209syn keyword idlangRoutine WV_DENOISE WV_DWT WV_FN_COIFLET WV_FN_DAUBECHIES
210syn keyword idlangRoutine WV_FN_GAUSSIAN WV_FN_HAAR WV_FN_MORLET WV_FN_PAUL
211syn keyword idlangRoutine WV_FN_SYMLET WV_IMPORT_DATA WV_IMPORT_WAVELET
212syn keyword idlangRoutine WV_PLOT3D_WPS WV_PLOT_MULTIRES WV_PWT
213syn keyword idlangRoutine WV_TOOL_DENOISE XBM_EDIT XDISPLAYFILE XDXF XFONT
214syn keyword idlangRoutine XINTERANIMATE XLOADCT XMANAGER XMNG_TMPL XMTOOL
215syn keyword idlangRoutine XOBJVIEW XPALETTE XPCOLOR XPLOT3D XREGISTERED XROI
216syn keyword idlangRoutine XSQ_TEST XSURFACE XVAREDIT XVOLUME XVOLUME_ROTATE
217syn keyword idlangRoutine XVOLUME_WRITE_IMAGE XYOUTS ZOOM ZOOM_24
218
219" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200220" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000221
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200222hi def link idlangConditional Conditional
223hi def link idlangRoutine Type
224hi def link idlangStatement Statement
225hi def link idlangContinueLine Todo
226hi def link idlangRealNumber Float
227hi def link idlangNumber Number
228hi def link idlangString String
229hi def link idlangOperator Operator
230hi def link idlangComment Comment
231hi def link idlangTodo Todo
232hi def link idlangPreCondit Identifier
233hi def link idlangDblCommaError Error
234hi def link idlangStop Error
235hi def link idlangStrucvar PreProc
236hi def link idlangSystem Identifier
237hi def link idlangKeyword Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000238
Bram Moolenaar071d4272004-06-13 20:20:40 +0000239
240let b:current_syntax = "idlang"
241" vim: ts=18