mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 11:58:17 +00:00
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
This commit is contained in:
252
runtime/syntax/freebasic.vim
Normal file
252
runtime/syntax/freebasic.vim
Normal file
@@ -0,0 +1,252 @@
|
||||
" Vim syntax file
|
||||
" Language: FreeBasic
|
||||
" Maintainer: Mark Manning <markem@airmail.net>
|
||||
" Updated: 10/22/2006
|
||||
"
|
||||
" Description:
|
||||
"
|
||||
" Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
|
||||
" Updated by Mark Manning <markem@airmail.net>
|
||||
" Applied FreeBasic support to the already excellent support
|
||||
" for standard basic syntax (like QB).
|
||||
"
|
||||
" First version based on Micro$soft QBASIC circa
|
||||
" 1989, as documented in 'Learn BASIC Now' by
|
||||
" Halvorson&Rygmyr. Microsoft Press 1989. This syntax file
|
||||
" not a complete implementation yet. Send suggestions to
|
||||
" the maintainer.
|
||||
"
|
||||
" Quit when a (custom) syntax file was already loaded (Taken from c.vim)
|
||||
"
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
"
|
||||
" Be sure to turn on the "case ignore" since current versions
|
||||
" of freebasic support both upper as well as lowercase
|
||||
" letters. - MEM 10/1/2006
|
||||
"
|
||||
syn case ignore
|
||||
"
|
||||
" This list of keywords is taken directly from the FreeBasic
|
||||
" user's guide as presented by the FreeBasic online site.
|
||||
"
|
||||
syn keyword freebasicArrays ERASE LBOUND REDIM PRESERVE UBOUND
|
||||
|
||||
syn keyword freebasicBitManipulation BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD SHL SHR
|
||||
|
||||
syn keyword freebasicCompilerSwitches DEFBYTE DEFDBL DEFINT DEFLNG DEFLNGINT DEFSHORT DEFSNG DEFSTR
|
||||
syn keyword freebasicCompilerSwitches DEFUBYTE DEFUINT DEFULNGINT DEFUSHORT
|
||||
syn match freebasicCompilerSwitches "\<option\s+\(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|NOKEYWORD\)\>"
|
||||
syn match freebasicCompilerSwitches "\<option\s+\(PRIVATE\|STATIC\)\>"
|
||||
|
||||
syn region freebasicConditional start="\son\s+" skip=".*" end="gosub"
|
||||
syn region freebasicConditional start="\son\s+" skip=".*" end="goto"
|
||||
syn match freebasicConditional "\<select\s+case\>"
|
||||
syn keyword freebasicConditional if iif then case else elseif with
|
||||
|
||||
syn match freebasicConsole "\<open\s+\(CONS\|ERR\|PIPE\|SCRN\)\>"
|
||||
syn keyword freebasicConsole BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB VIEW WIDTH
|
||||
|
||||
syn keyword freebasicDataTypes BYTE AS DIM CONST DOUBLE ENUM INTEGER LONG LONGINT SHARED SHORT STRING
|
||||
syn keyword freebasicDataTypes SINGLE TYPE UBYTE UINTEGER ULONGINT UNION UNSIGNED USHORT WSTRING ZSTRING
|
||||
|
||||
syn keyword freebasicDateTime DATE DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR MINUTE
|
||||
syn keyword freebasicDateTime MONTH MONTHNAME NOW SECOND SETDATE SETTIME TIME TIMESERIAL TIMEVALUE
|
||||
syn keyword freebasicDateTime TIMER YEAR WEEKDAY WEEKDAYNAME
|
||||
|
||||
syn keyword freebasicDebug ASSERT STOP
|
||||
|
||||
syn keyword freebasicErrorHandling ERR ERL ERROR LOCAL RESUME
|
||||
syn match freebasicErrorHandling "\<resume\s+next\>"
|
||||
syn match freebasicErrorHandling "\<on\s+error\>"
|
||||
|
||||
syn match freebasicFiles "\<get\s+#\>"
|
||||
syn match freebasicFiles "\<input\s+#\>"
|
||||
syn match freebasicFiles "\<line\s+input\s+#\>"
|
||||
syn match freebasicFiles "\<put\s+#\>"
|
||||
syn keyword freebasicFiles ACCESS APPEND BINARY BLOAD BSAVE CLOSE EOF FREEFILE INPUT LOC
|
||||
syn keyword freebasicFiles LOCK LOF OPEN OUTPUT RANDOM RESET SEEK UNLOCK WRITE
|
||||
|
||||
syn keyword freebasicFunctions ALIAS ANY BYREF BYVAL CALL CDECL CONSTRUCTOR DESTRUCTOR
|
||||
syn keyword freebasicFunctions DECLARE FUNCTION LIB OVERLOAD PASCAL STATIC SUB STDCALL
|
||||
syn keyword freebasicFunctions VA_ARG VA_FIRST VA_NEXT
|
||||
|
||||
syn match freebasicGraphics "\<palette\s+get\>"
|
||||
syn keyword freebasicGraphics ALPHA CIRCLE CLS COLOR CUSTOM DRAW FLIP GET
|
||||
syn keyword freebasicGraphics IMAGECREATE IMAGEDESTROY LINE PAINT PALETTE PCOPY PMAP POINT
|
||||
syn keyword freebasicGraphics PRESET PSET PUT RGB RGBA SCREEN SCREENCOPY SCREENINFO SCREENLIST
|
||||
syn keyword freebasicGraphics SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC SCREENUNLOCK
|
||||
syn keyword freebasicGraphics TRANS USING VIEW WINDOW
|
||||
|
||||
syn match freebasicHardware "\<open\s+com\>"
|
||||
syn keyword freebasicHardware INP OUT WAIT LPT LPOS LPRINT
|
||||
|
||||
syn keyword freebasicLogical AND EQV IMP OR NOT XOR
|
||||
|
||||
syn keyword freebasicMath ABS ACOS ASIN ATAN2 ATN COS EXP FIX INT LOG MOD RANDOMIZE
|
||||
syn keyword freebasicMath RND SGN SIN SQR TAN
|
||||
|
||||
syn keyword freebasicMemory ALLOCATE CALLOCATE CLEAR DEALLOCATE FIELD FRE PEEK POKE REALLOCATE
|
||||
|
||||
syn keyword freebasicMisc ASM DATA LET TO READ RESTORE SIZEOF SWAP OFFSETOF
|
||||
|
||||
syn keyword freebasicModularizing CHAIN COMMON EXPORT EXTERN DYLIBFREE DYLIBLOAD DYLIBSYMBOL
|
||||
syn keyword freebasicModularizing PRIVATE PUBLIC
|
||||
|
||||
syn keyword freebasicMultithreading MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
|
||||
|
||||
syn keyword freebasicShell CHDIR DIR COMMAND ENVIRON EXEC EXEPATH KILL NAME MKDIR RMDIR RUN
|
||||
|
||||
syn keyword freebasicEnviron SHELL SYSTEM WINDOWTITLE POINTERS
|
||||
|
||||
syn keyword freebasicLoops FOR LOOP WHILE WEND DO CONTINUE STEP UNTIL next
|
||||
|
||||
syn match freebasicInclude "\<#\s*\(inclib\|include\)\>"
|
||||
syn match freebasicInclude "\<\$\s*include\>"
|
||||
|
||||
syn keyword freebasicPointer PROCPTR PTR SADD STRPTR VARPTR
|
||||
|
||||
syn keyword freebasicPredefined __DATE__ __FB_DOS__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__
|
||||
syn keyword freebasicPredefined __FB_SIGNATURE__ __FB_VERSION__ __FB_WIN32__ __FB_VER_MAJOR__
|
||||
syn keyword freebasicPredefined __FB_VER_MINOR__ __FB_VER_PATCH__ __FILE__ __FUNCTION__
|
||||
syn keyword freebasicPredefined __LINE__ __TIME__
|
||||
|
||||
syn match freebasicPreProcessor "\<^#\s*\(define\|undef\)\>"
|
||||
syn match freebasicPreProcessor "\<^#\s*\(ifdef\|ifndef\|else\|elseif\|endif\|if\)\>"
|
||||
syn match freebasicPreProcessor "\<#\s*error\>"
|
||||
syn match freebasicPreProcessor "\<#\s*\(print\|dynamic\|static\)\>"
|
||||
syn keyword freebasicPreProcessor DEFINED ONCE
|
||||
|
||||
syn keyword freebasicProgramFlow END EXIT GOSUB GOTO
|
||||
syn keyword freebasicProgramFlow IS RETURN SCOPE SLEEP
|
||||
|
||||
syn keyword freebasicString INSTR LCASE LEFT LEN LSET LTRIM MID RIGHT RSET RTRIM
|
||||
syn keyword freebasicString SPACE STRING TRIM UCASE ASC BIN CHR CVD CVI CVL CVLONGINT
|
||||
syn keyword freebasicString CVS CVSHORT FORMAT HEX MKD MKI MKL MKLONGINT MKS MKSHORT
|
||||
syn keyword freebasicString OCT STR VAL VALLNG VALINT VALUINT VALULNG
|
||||
|
||||
syn keyword freebasicTypeCasting CAST CBYTE CDBL CINT CLNG CLNGINT CPTR CSHORT CSIGN CSNG
|
||||
syn keyword freebasicTypeCasting CUBYTE CUINT CULNGINT CUNSG CURDIR CUSHORT
|
||||
|
||||
syn match freebasicUserInput "\<line\s+input\>"
|
||||
syn keyword freebasicUserInput GETJOYSTICK GETKEY GETMOUSE INKEY INPUT MULTIKEY SETMOUSE
|
||||
"
|
||||
" Do the Basic variables names first. This is because it
|
||||
" is the most inclusive of the tests. Later on we change
|
||||
" this so the identifiers are split up into the various
|
||||
" types of identifiers like functions, basic commands and
|
||||
" such. MEM 9/9/2006
|
||||
"
|
||||
syn match freebasicIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
|
||||
syn match freebasicGenericFunction "\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
|
||||
"
|
||||
" Function list
|
||||
"
|
||||
syn keyword freebasicTodo contained TODO
|
||||
"
|
||||
" Catch errors caused by wrong parenthesis
|
||||
"
|
||||
syn region freebasicParen transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
|
||||
syn match freebasicParenError ")"
|
||||
syn match freebasicInParen contained "[{}]"
|
||||
syn cluster freebasicParenGroup contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
|
||||
"
|
||||
" Integer number, or floating point number without a dot and with "f".
|
||||
"
|
||||
syn region freebasicHex start="&h" end="\W"
|
||||
syn region freebasicHexError start="&h\x*[g-zG-Z]" end="\W"
|
||||
syn match freebasicInteger "\<\d\+\(u\=l\=\|lu\|f\)\>"
|
||||
"
|
||||
" Floating point number, with dot, optional exponent
|
||||
"
|
||||
syn match freebasicFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"
|
||||
" Floating point number, starting with a dot, optional exponent
|
||||
"
|
||||
syn match freebasicFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
|
||||
"
|
||||
" Floating point number, without dot, with exponent
|
||||
"
|
||||
syn match freebasicFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
|
||||
"
|
||||
" Hex number
|
||||
"
|
||||
syn case match
|
||||
syn match freebasicOctal "\<0\o*\>"
|
||||
syn match freebasicOctalError "\<0\o*[89]"
|
||||
"
|
||||
" String and Character contstants
|
||||
"
|
||||
syn region freebasicString start='"' end='"' contains=freebasicSpecial,freebasicTodo
|
||||
syn region freebasicString start="'" end="'" contains=freebasicSpecial,freebasicTodo
|
||||
"
|
||||
" Comments
|
||||
"
|
||||
syn match freebasicSpecial contained "\\."
|
||||
syn region freebasicComment start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
|
||||
syn region freebasicComment start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
|
||||
syn region freebasicComment start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
|
||||
syn region freebasicComment start="^'" end="$" contains=freebasicSpecial,freebasicTodo
|
||||
"
|
||||
" Now do the comments and labels
|
||||
"
|
||||
syn match freebasicLabel "^\d"
|
||||
syn match freebasicLabel "\<^\w+:\>"
|
||||
syn region freebasicLineNumber start="^\d" end="\s"
|
||||
"
|
||||
" Create the clusters
|
||||
"
|
||||
syn cluster freebasicNumber contains=freebasicHex,freebasicOctal,freebasicInteger,freebasicFloat
|
||||
syn cluster freebasicError contains=freebasicHexError,freebasicOctalError
|
||||
"
|
||||
" Used with OPEN statement
|
||||
"
|
||||
syn match freebasicFilenumber "#\d\+"
|
||||
syn match freebasicMathOperator "[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
|
||||
"
|
||||
" The default methods for highlighting. Can be overridden later
|
||||
"
|
||||
hi def link freebasicArrays StorageClass
|
||||
hi def link freebasicBitManipulation Operator
|
||||
hi def link freebasicCompilerSwitches PreCondit
|
||||
hi def link freebasicConsole Special
|
||||
hi def link freebasicDataTypes Type
|
||||
hi def link freebasicDateTime Type
|
||||
hi def link freebasicDebug Special
|
||||
hi def link freebasicErrorHandling Special
|
||||
hi def link freebasicFiles Special
|
||||
hi def link freebasicFunctions Function
|
||||
hi def link freebasicGraphics Function
|
||||
hi def link freebasicHardware Special
|
||||
hi def link freebasicLogical Conditional
|
||||
hi def link freebasicMath Function
|
||||
hi def link freebasicMemory Function
|
||||
hi def link freebasicMisc Special
|
||||
hi def link freebasicModularizing Special
|
||||
hi def link freebasicMultithreading Special
|
||||
hi def link freebasicShell Special
|
||||
hi def link freebasicEnviron Special
|
||||
hi def link freebasicPointer Special
|
||||
hi def link freebasicPredefined PreProc
|
||||
hi def link freebasicPreProcessor PreProc
|
||||
hi def link freebasicProgramFlow Statement
|
||||
hi def link freebasicString String
|
||||
hi def link freebasicTypeCasting Type
|
||||
hi def link freebasicUserInput Statement
|
||||
hi def link freebasicComment Comment
|
||||
hi def link freebasicConditional Conditional
|
||||
hi def link freebasicError Error
|
||||
hi def link freebasicIdentifier Identifier
|
||||
hi def link freebasicInclude Include
|
||||
hi def link freebasicGenericFunction Function
|
||||
hi def link freebasicLabel Label
|
||||
hi def link freebasicLineNumber Label
|
||||
hi def link freebasicMathOperator Operator
|
||||
hi def link freebasicNumber Number
|
||||
hi def link freebasicSpecial Special
|
||||
hi def link freebasicTodo Todo
|
||||
|
||||
let b:current_syntax = "freebasic"
|
||||
|
||||
" vim: ts=8
|
Reference in New Issue
Block a user