made the pack completely portable and wrote relevent bat files to go with it
This commit is contained in:
409
gitportable/usr/share/vim/vim91/syntax/qb64.vim
Normal file
409
gitportable/usr/share/vim/vim91/syntax/qb64.vim
Normal file
@@ -0,0 +1,409 @@
|
||||
" Vim syntax file
|
||||
" Language: QB64
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2022 Jan 21
|
||||
|
||||
" Prelude {{{1
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" syn iskeyword set after sourcing of basic.vim
|
||||
|
||||
syn case ignore
|
||||
|
||||
let s:prefix = search('\c^\s*$NOPREFIX\>', 'n') ? '_\=' : '_'
|
||||
|
||||
" Statements {{{1
|
||||
|
||||
let s:statements =<< trim EOL " {{{2
|
||||
acceptfiledrop
|
||||
allowfullscreen
|
||||
assert
|
||||
console
|
||||
consolecursor
|
||||
consolefont
|
||||
consoletitle
|
||||
continue
|
||||
copypalette
|
||||
define
|
||||
delay
|
||||
depthbuffer
|
||||
displayorder
|
||||
dontblend
|
||||
echo
|
||||
exit\s\+\%(select\|case\)
|
||||
finishdrop
|
||||
freefont
|
||||
freeimage
|
||||
icon
|
||||
keyclear
|
||||
limit
|
||||
maptriangle
|
||||
memcopy
|
||||
memfill
|
||||
memfree
|
||||
memput
|
||||
mousehide
|
||||
mousemove
|
||||
mouseshow
|
||||
printimage
|
||||
printstring
|
||||
putimage
|
||||
screenclick
|
||||
screenhide
|
||||
screenmove
|
||||
screenprint
|
||||
screenshow
|
||||
setalpha
|
||||
sndbal
|
||||
sndclose
|
||||
sndlimit
|
||||
sndloop
|
||||
sndpause
|
||||
sndplay
|
||||
sndplaycopy
|
||||
sndplayfile
|
||||
sndraw
|
||||
sndrawdone
|
||||
sndsetpos
|
||||
sndstop
|
||||
sndvol
|
||||
title
|
||||
EOL
|
||||
" }}}
|
||||
|
||||
for s in s:statements
|
||||
exe 'syn match qb64Statement "\<' .. s:prefix .. s .. '\>" contained contains=qb64Underscore'
|
||||
endfor
|
||||
|
||||
" Functions {{{1
|
||||
|
||||
let s:functions =<< trim EOL " {{{2
|
||||
acos
|
||||
acosh
|
||||
alpha
|
||||
alpha32
|
||||
arccot
|
||||
arccsc
|
||||
arcsec
|
||||
asin
|
||||
asinh
|
||||
atan2
|
||||
atanh
|
||||
axis
|
||||
backgroundcolor
|
||||
blue
|
||||
blue32
|
||||
button
|
||||
buttonchange
|
||||
ceil
|
||||
cinp
|
||||
commandcount
|
||||
connected
|
||||
connectionaddress
|
||||
connectionaddress$
|
||||
consoleinput
|
||||
copyimage
|
||||
cot
|
||||
coth
|
||||
cosh
|
||||
csc
|
||||
csch
|
||||
cv
|
||||
cwd$
|
||||
d2g
|
||||
d2r
|
||||
defaultcolor
|
||||
deflate$
|
||||
desktopheight
|
||||
desktopwidth
|
||||
device$
|
||||
deviceinput
|
||||
devices
|
||||
dir$
|
||||
direxists
|
||||
droppedfile
|
||||
droppedfile$
|
||||
errorline
|
||||
errormessage$
|
||||
exit
|
||||
fileexists
|
||||
fontheight
|
||||
fontwidth
|
||||
freetimer
|
||||
g2d
|
||||
g2r
|
||||
green
|
||||
green32
|
||||
height
|
||||
hypot
|
||||
inclerrorfile$
|
||||
inclerrorline
|
||||
inflate$
|
||||
instrrev
|
||||
keyhit
|
||||
keydown
|
||||
lastaxis
|
||||
lastbutton
|
||||
lastwheel
|
||||
loadfont
|
||||
loadimage
|
||||
mem
|
||||
memelement
|
||||
memexists
|
||||
memimage
|
||||
memnew
|
||||
memsound
|
||||
mk$
|
||||
mousebutton
|
||||
mouseinput
|
||||
mousemovementx
|
||||
mousemovementy
|
||||
mousepipeopen
|
||||
mousewheel
|
||||
mousex
|
||||
mousey
|
||||
newimage
|
||||
offset
|
||||
openclient
|
||||
os$
|
||||
pi
|
||||
pixelsize
|
||||
printwidth
|
||||
r2d
|
||||
r2g
|
||||
red
|
||||
red32
|
||||
readbit
|
||||
resetbit
|
||||
resizeheight
|
||||
resizewidth
|
||||
rgb
|
||||
rgb32
|
||||
rgba
|
||||
rgba32
|
||||
round
|
||||
sec
|
||||
sech
|
||||
screenexists
|
||||
screenimage
|
||||
screenx
|
||||
screeny
|
||||
setbit
|
||||
shellhide
|
||||
shl
|
||||
shr
|
||||
sinh
|
||||
sndcopy
|
||||
sndgetpos
|
||||
sndlen
|
||||
sndopen
|
||||
sndopenraw
|
||||
sndpaused
|
||||
sndplaying
|
||||
sndrate
|
||||
sndrawlen
|
||||
startdir$
|
||||
strcmp
|
||||
stricmp
|
||||
tanh
|
||||
title$
|
||||
togglebit
|
||||
totaldroppedfiles
|
||||
trim$
|
||||
wheel
|
||||
width
|
||||
windowhandle
|
||||
windowhasfocus
|
||||
EOL
|
||||
" }}}
|
||||
|
||||
for f in s:functions
|
||||
exe 'syn match qb64Function "\<' .. s:prefix .. f .. '\>" contains=qb64Underscore'
|
||||
endfor
|
||||
|
||||
" Functions and statements (same name) {{{1
|
||||
|
||||
let s:common =<< trim EOL " {{{2
|
||||
autodisplay
|
||||
blend
|
||||
blink
|
||||
capslock
|
||||
clearcolor
|
||||
clipboard$
|
||||
clipboardimage
|
||||
controlchr
|
||||
dest
|
||||
display
|
||||
font
|
||||
fullscreen
|
||||
mapunicode
|
||||
memget
|
||||
numlock
|
||||
palettecolor
|
||||
printmode
|
||||
resize
|
||||
screenicon
|
||||
scrolllock
|
||||
source
|
||||
EOL
|
||||
" }}}
|
||||
|
||||
for c in s:common
|
||||
exe 'syn match qb64Statement "\<' .. s:prefix .. c .. '\>" contains=qb64Underscore contained'
|
||||
exe 'syn match qb64Function "\<' .. s:prefix .. c .. '\>" contains=qb64Underscore'
|
||||
endfor
|
||||
|
||||
" Keywords {{{1
|
||||
|
||||
" Non-prefixed keywords {{{2
|
||||
" TIMER FREE
|
||||
" _DEPTH_BUFFER LOCK
|
||||
syn keyword qb64Keyword free lock
|
||||
|
||||
let s:keywords =<< trim EOL " {{{2
|
||||
all
|
||||
anticlockwise
|
||||
behind
|
||||
clear
|
||||
clip
|
||||
console
|
||||
dontwait
|
||||
explicit
|
||||
explicitarray
|
||||
fillbackground
|
||||
hardware
|
||||
hardware1
|
||||
hide
|
||||
keepbackground
|
||||
middle
|
||||
none
|
||||
off
|
||||
only
|
||||
onlybackground
|
||||
ontop
|
||||
openconnection
|
||||
openhost
|
||||
preserve
|
||||
seamless
|
||||
smooth
|
||||
smoothshrunk
|
||||
smoothstretched
|
||||
software
|
||||
squarepixels
|
||||
stretch
|
||||
toggle
|
||||
EOL
|
||||
" }}}
|
||||
|
||||
for k in s:keywords
|
||||
exe 'syn match qb64Keyword "\<' .. s:prefix .. k .. '\>" contains=qb64Underscore'
|
||||
endfor
|
||||
|
||||
syn match qb64Underscore "\<_" contained conceal transparent
|
||||
|
||||
" Source QuickBASIC syntax {{{1
|
||||
runtime! syntax/basic.vim
|
||||
|
||||
" add after the BASIC syntax file is sourced so cluster already exists
|
||||
syn cluster basicStatements add=qb64Statement,qb64Metacommand,qb64IfMetacommand
|
||||
syn cluster basicLineIdentifier add=qb64LineLabel
|
||||
syn cluster qb64NotTop contains=@basicNotTop,qb64Metavariable
|
||||
|
||||
syn iskeyword @,48-57,.,_,!,#,$,%,&,`
|
||||
|
||||
" Unsupported QuickBASIC features {{{1
|
||||
" TODO: add linux only missing features
|
||||
syn keyword qb64Unsupported alias any byval calls cdecl erdev erdev$ fileattr
|
||||
syn keyword qb64Unsupported fre ioctl ioctl$ pen play setmem signal uevent
|
||||
syn keyword qb64Unsupported tron troff
|
||||
syn match qb64Unsupported "\<declare\%(\s\+\%(sub\|function\)\>\)\@="
|
||||
syn match qb64Unsupported "\<\%(date\|time\)$\ze\s*=" " statements only
|
||||
syn match qb64Unsupported "\<def\zs\s\+FN"
|
||||
syn match qb64Unsupported "\<\%(exit\|end\)\s\+def\>"
|
||||
syn match qb64Unsupported "\<width\s\+lprint\>"
|
||||
|
||||
" Types {{{1
|
||||
syn keyword qb64Type _BIT _BYTE _FLOAT _INTEGER64 _MEM _OFFSET _UNSIGNED
|
||||
|
||||
" Type suffixes {{{1
|
||||
if exists("basic_type_suffixes")
|
||||
" TODO: handle leading word boundary and __+ prefix
|
||||
syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\~\=`\%(\d\+\)\="
|
||||
syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\~\=\%(%\|%%\|&\|&&\|%&\)"
|
||||
syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\%(!\|##\|#\)"
|
||||
syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=$\%(\d\+\)\="
|
||||
endif
|
||||
|
||||
" Numbers {{{1
|
||||
|
||||
" Integers
|
||||
syn match qb64Number "-\=&b[01]\+&\>\="
|
||||
|
||||
syn match qb64Number "-\=\<[01]\~\=`\>"
|
||||
syn match qb64Number "-\=\<\d\+`\d\+\>"
|
||||
|
||||
syn match qb64Number "-\=\<\d\+\%(%%\|&&\|%&\)\>"
|
||||
syn match qb64Number "\<\d\+\~\%(%%\|&&\|%&\)\>"
|
||||
|
||||
syn match qb64Number "-\=\<&b[01]\+\%(%%\|&&\|%&\)\>"
|
||||
syn match qb64Number "\<&b[01]\+\~\%(%%\|&&\|%&\)\>"
|
||||
|
||||
syn match qb64Number "-\=\<&o\=\o\+\%(%%\|&&\|%&\)\>"
|
||||
syn match qb64Number "\<&o\=\o\+\~\%(%%\|&&\|%&\)\>"
|
||||
|
||||
syn match qb64Number "-\=\<&h\x\+\%(%%\|&&\|%&\)\>"
|
||||
syn match qb64Number "\<&h\x\+\~\%(%%\|&&\|%&\)\>"
|
||||
|
||||
" Floats
|
||||
syn match qb64Float "-\=\<\d\+\.\=\d*##\>"
|
||||
syn match qb64Float "-\=\<\.\d\+##\>"
|
||||
|
||||
" Line numbers and labels {{{1
|
||||
syn match qb64LineLabel "\%(_\{2,}\)\=\a[[:alnum:]._]*[[:alnum:]]\ze\s*:" nextgroup=@basicStatements skipwhite contained
|
||||
|
||||
" Metacommands {{{1
|
||||
syn match qb64Metacommand contained "$NOPREFIX\>"
|
||||
syn match qb64Metacommand contained "$ASSERTS\%(:CONSOLE\)\=\>"
|
||||
syn match qb64Metacommand contained "$CHECKING:\%(ON\|OFF\)\>"
|
||||
syn match qb64Metacommand contained "$COLOR:\%(0\|32\)\>"
|
||||
syn match qb64Metacommand contained "$CONSOLE\%(:ONLY\)\=\>"
|
||||
syn match qb64Metacommand contained "$EXEICON\s*:\s*'[^']\+'"
|
||||
syn match qb64Metacommand contained "$ERROR\>"
|
||||
syn match qb64Metacommand contained "$LET\>"
|
||||
syn match qb64Metacommand contained "$RESIZE:\%(ON\|OFF\|STRETCH\|SMOOTH\)\>"
|
||||
syn match qb64Metacommand contained "$SCREEN\%(HIDE\|SHOW\)\>"
|
||||
syn match qb64Metacommand contained "$VERSIONINFO\s*:.*"
|
||||
syn match qb64Metacommand contained "$VIRTUALKEYBOARD:\%(ON\|OFF\)\>"
|
||||
|
||||
syn region qb64IfMetacommand contained matchgroup=qb64Metacommand start="$\%(IF\|ELSEIF\)\>" end="\<THEN\>" oneline transparent contains=qb64Metavariable
|
||||
syn match qb64Metacommand contained "$\%(ELSE\|END\s*IF\)\>"
|
||||
|
||||
syn keyword qb64Metavariable contained defined undefined
|
||||
syn keyword qb64Metavariable contained windows win linux mac maxosx
|
||||
syn keyword qb64Metavariable contained 32bit 64bit version
|
||||
|
||||
" Default Highlighting {{{1
|
||||
hi def link qb64Float basicFloat
|
||||
hi def link qb64Function Function
|
||||
hi def link qb64Keyword Keyword
|
||||
hi def link qb64LineLabel basicLineLabel
|
||||
hi def link qb64Metacommand PreProc
|
||||
hi def link qb64Metavariable Identifier
|
||||
hi def link qb64Number basicNumber
|
||||
hi def link qb64Statement Statement
|
||||
hi def link qb64TypeSuffix basicTypeSuffix
|
||||
hi def link qb64Type Type
|
||||
hi def link qb64Unsupported Error
|
||||
|
||||
" Postscript {{{1
|
||||
let b:current_syntax = "qb64"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
|
||||
Reference in New Issue
Block a user