neovim

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

rapid.vim (47009B)


      1 " ABB Rapid Command syntax file for Vim
      2 " Language: ABB Rapid Command
      3 " Maintainer: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de>
      4 " Version: 2.3.0
      5 " Last Change: 28. Oct 2025
      6 " Credits: Thanks for beta testing to Thomas Baginski
      7 "
      8 " Suggestions of improvement are very welcome. Please email me!
      9 "
     10 "
     11 "
     12 " Note to self:
     13 " for testing perfomance
     14 "     open a 1000 lines file.
     15 "     :syntime on
     16 "     G
     17 "     hold down CTRL-U until reaching top
     18 "     :syntime report
     19 "
     20 "
     21 " TODO:   - highlight rapid constants and maybe constants from common
     22 "           technology packages
     23 "         - optimize rapidErrorStringTooLong
     24 "         - error highlight for missing 2nd point in MoveCirc et al
     25 
     26 " Init {{{
     27 " Remove any old syntax stuff that was loaded (5.x) or quit when a syntax file
     28 " was already loaded (6.x).
     29 if version < 600
     30  syntax clear
     31 elseif exists("b:current_syntax")
     32  finish
     33 endif
     34 
     35 let s:keepcpo= &cpo
     36 set cpo&vim
     37 
     38 " if colorscheme is tortus rapidNoHighLink defaults to 1
     39 if (get(g:,'colors_name'," ")=="tortus" || get(g:,'colors_name'," ")=="tortusless")
     40      \&& !exists("g:rapidGroupName")
     41  let g:rapidGroupName=1
     42 endif
     43 " rapidGroupName defaults to 0 if it's not initialized yet or 0
     44 if !get(g:,"rapidGroupName",0)
     45  let g:rapidGroupName=0
     46 endif
     47 
     48 " Rapid does ignore case
     49 syn case ignore
     50 " spell checking
     51 syn spell notoplevel
     52 " }}} init
     53 
     54 " common highlighting {{{
     55 
     56 " Error {{{
     57 if get(g:,'rapidShowError',1)
     58  "
     59  " This error must be defined befor rapidCharCode and rapidEscapedBackSlash
     60  " a string containing a single \ which is not a char code
     61  syn match rapidErrorSingleBackslash /\\/ contained
     62  highlight default link rapidErrorSingleBackslash Error
     63  "
     64 endif
     65 " }}} Error
     66 
     67 " Constant values {{{
     68 " Boolean
     69 syn keyword rapidBoolean TRUE FALSE Edge High Low
     70 highlight default link rapidBoolean Boolean
     71 " Float (num)
     72 " syn match rapidFloat /\v%(\W|_)@1<=[+-]?\d+\.?\d*%(\s*[eE][+-]?\d+)?/
     73 syn match rapidFloat /\v\c%(<\d+\.|\.?<\d)\d*%(E[+-]?\d+)?>/ contains=rapidOperator
     74 highlight default link rapidFloat Float
     75 " integer in decimal, hexadecimal, octal and binary
     76 syn match rapidDec /\<[0-9]\+\>/
     77 highlight default link rapidDec Number
     78 syn match rapidHex /\<0x[0-9a-fA-F]\+\>/
     79 highlight default link rapidHex Number
     80 syn match rapidOct /\<0o[0-7]\+\>/
     81 highlight default link rapidOct Number
     82 syn match rapidBin /\<0b[01]\+\>/
     83 highlight default link rapidBin Number
     84 " String. Note: Don't rename group rapidString. Indent depend on this
     85 syn region rapidString matchgroup=rapidString start=/"/ skip=/""/ end=/"/ oneline contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell
     86 highlight default link rapidString String
     87 " two adjacent "" in string for one double quote
     88 syn match rapidStringDoubleQuote /""/ contained
     89 highlight default link rapidStringDoubleQuote SpecialChar
     90 " character code in string
     91 syn match rapidCharCode /\\\x\x/ contained
     92 highlight default link rapidCharCode SpecialChar
     93 " escaped \ in string
     94 syn match rapidEscapedBackSlash /\\\\/ contained
     95 highlight default link rapidEscapedBackSlash SpecialChar
     96 " }}} Constant values
     97 
     98 " }}} common highlighting
     99 
    100 if bufname("%") =~ '\c\.cfg$'
    101 " {{{ highlighting for *.cfg
    102 
    103  " special chars {{{
    104  " syn match rapidOperator /:\|[+-]\|\*\|\/\|\\/
    105  syn match rapidOperator /[-+*/:\\]/
    106  syn match rapidOperator /^#/
    107  highlight default link rapidOperator Operator
    108  " }}} special chars
    109 
    110  " sections {{{
    111  syn match rapidException /^\w\+/
    112  syn match rapidException /CFG_\d\+/
    113  highlight default link rapidException Exception
    114  " }}} sections
    115 
    116  " Error {{{
    117  if get(g:,'rapidShowError',1)
    118    "
    119    " This error must be defined after rapidString
    120    " Any Name longer than 32 chars
    121    syn match rapidErrorNameTooLong /-Name "[^"]\{33,}"/
    122    highlight default link rapidErrorNameTooLong Error
    123    "
    124  endif
    125  " }}} Error
    126 
    127  " }}} highlighting for *.cfg
    128 else
    129  " highlighting for *.mod, *.sys and *.prg {{{
    130 
    131  " sync for regions from a line comment or the start of a function
    132  syn sync match rapidSync grouphere NONE /\v\c^\s*%(!|%(task\s+|local\s+)?%(module|proc|func|trap|record)>)/
    133 
    134  " Comment {{{
    135  " TODO Comment
    136  syn match rapidTodoComment contained /\<TODO\>\|\<FIXME\>\|\<XXX\>/
    137  highlight default link rapidTodoComment Todo
    138  " Debug comment
    139  syn match rapidDebugComment contained /\<DEBUG\>/
    140  highlight default link rapidDebugComment Debug
    141  " Line comment
    142  syn match rapidComment /!.*$/ contains=rapidTodoComment,rapidDebugComment,@Spell
    143  highlight default link rapidComment Comment
    144  " }}} Comment
    145 
    146  " Header {{{
    147  syn match rapidHeader /^%%%/
    148  highlight default link rapidHeader PreProc
    149  " }}} Header
    150 
    151  " Operator {{{
    152  " Boolean operator
    153  syn keyword rapidOperator and or xor not div mod
    154  " Arithmetic and compare operator
    155  syn match rapidOperator /[-+*/<>:=]/
    156  " conditional argument
    157  syn match rapidOperator /?/
    158  highlight default link rapidOperator Operator
    159  " }}} Operator
    160 
    161  " Type, StorageClass and Typedef {{{
    162  " anytype (preceded by 'alias|pers|var|const|func'
    163  " TODO: still missing are userdefined types which are part of a parameter:
    164  " PROC message( mystring msMessagePart1{},
    165  "               \ myvar msMsg4{})
    166  " TODO testing. Problem: does not highlight any type if it's part of an argument list
    167  " syn match rapidAnyType /\v^\s*(global\s+|task\s+|local\s+)?(alias|pers|var|const|func)\s+\w+>/ contains=rapidStorageClass,rapidType,rapidTypeDef
    168  " highlight default link rapidAnyType Type
    169  syn keyword rapidType accdata aiotrigg bool btnres busstate buttondata byte
    170  syn keyword rapidType cfgdomain clock cnvcmd confdata confsupdata corrdescr datapos deflectiondata dionum dir dnum
    171  syn keyword rapidType egmframetype egmident egm_minmax egmstate egmstopmode errdomain errnum ErrorInfo errstr errtype event_type exec_level extjoint handler_type
    172  syn keyword rapidType icondata identno inposdata intnum inttypes iodev iounit_state jointtarget
    173  syn keyword rapidType listitem loaddata loadidnum loadsession mecunit motionprocessmode motsetdata
    174  " syn keyword rapidType num
    175  syn keyword rapidType opcalc opnum orient paridnum paridvalidnum pathrecid pnpdata pos pose proc_times progdisp o_jointtarget o_robtarget
    176  syn keyword rapidType rawbytes restartdata rmqheader rmqmessage rmqslot robjoint robtarget
    177  syn keyword rapidType searchdata sensor sensorstate sensorvardata shapedata signalai signalao signaldi signaldo signalgi signalgo signalorigin singdata socketdev socketstatus speeddata stopmovestartmove_mem stoppoint stoppointdata string stringdig sup_timeouts supervtype switch symnum syncident
    178  syn keyword rapidType taskid tasks tasksatstart testsignal tooldata tpnum trapdata triggdata triggflag triggios triggiosdnum triggmode triggstrgo tsp_status tunegtype tunetype
    179  syn keyword rapidType uishownum veldata visiondata wobjdata wzstationary wztemporary zonedata
    180  " SoftMove data types
    181  syn keyword rapidType css_offset_dir css_soft_dir cssframe
    182  " arc data types
    183  syn keyword rapidType advSeamData arcdata flystartdata seamdata arctrackdata opttrackdata weavedata welddata
    184  " conveyor tracking data types
    185  syn keyword rapidType indcnvdata
    186  " Integrated Vision data types
    187  syn keyword rapidType cameradev cameratarget
    188  " arc Weldguide and MultiPass data types
    189  syn keyword rapidType adaptdata trackdata multidata
    190  " GAP
    191  syn keyword rapidType partdata partadv ee_event menudata
    192  " dispense data types
    193  syn keyword rapidType beaddata equipdata
    194  " Spot data types
    195  syn keyword rapidType gundata gunnum spotdata forcedata simdata smeqdata smeqtype
    196  " Tool change data types
    197  syn keyword rapidType standno ToolInfo toolno
    198  " Continuous Application Platform data types
    199  syn keyword rapidType capaptrreferencedata capdata capevent caplatrackdata capmvsttim capspeeddata capspeeddata capstopmode captestno captrackdata capweavedata flypointdata processtimes restartblkdata supervtimeouts weavestartdata
    200  " Bulls Eye data types
    201  syn keyword rapidType be_device be_scan be_tooldesign
    202  " Force Control data types
    203  syn keyword rapidType fcboxvol fccondstatus fccylindervol fcdamping fcforcevector fcframe fclindir fcprocessdata fcplane fcrotdir fcspeedvector fcspherevol fcspdchgtunetype fcxyznum
    204  " Discrete application platform data types
    205  syn keyword rapidType dadescapp dadescprc daintdata
    206  " VW Konzernstandard VWKS_1.07.02
    207  syn keyword rapidType merker
    208  syn keyword rapidType frgnum frgwert robnum
    209  syn keyword rapidType fmnum applid calibdatavorr stepdata
    210  syn keyword rapidType tsmethode tsdaten teilspeicherdaten
    211  syn keyword rapidType greiferdaten greiferposition bauteildaten bauteilkontrolle g_datenident g_sensor g_signal g_teilident g_ventil
    212  syn keyword rapidType strgnum typnum
    213  syn keyword rapidType hubnum kopfnum
    214  syn keyword rapidType applservicetype
    215  syn keyword rapidType applfraesdaten kwdionum
    216  syn keyword rapidType butechnum
    217  syn keyword rapidType toolnum dbnum
    218  " das folgende sind datentypen aber das kann man doch nicht machen...
    219  " syn keyword rapidType position wert
    220  syn keyword rapidType camdata camlimitdata cammode camprotocoldata camstatus camsequence campositionstatus
    221  syn keyword rapidType saposnum sabereichnum autofocusnum focusposnum lascaledata laleistungnum larobnum laprognum uebwnum dgbanum dgjobnum gasspuelnum davalve gasuebwnum
    222  syn keyword rapidType lsfigurnum lsstarttype
    223  syn keyword rapidType lwprognum lwdiodnum lsstarttype
    224  syn keyword rapidType lztype diskrethubnum lztipnum
    225  syn keyword rapidType gblmethod
    226  syn keyword rapidType buatypenum buatechnum buadirnum
    227  highlight default link rapidType Type
    228  " Storage class
    229  syn keyword rapidStorageClass LOCAL TASK VAR PERS CONST ALIAS NOVIEW NOSTEPIN VIEWONLY READONLY SYSMODULE INOUT REF
    230  highlight default link rapidStorageClass StorageClass
    231  " Not a typedef but I like to have those highlighted different then types,
    232  " structures or strorage classes
    233  syn keyword rapidTypeDef MODULE ENDMODULE PROC ERROR UNDO BACKWARD ENDPROC RECORD ENDRECORD TRAP ENDTRAP FUNC ENDFUNC
    234  highlight default link rapidTypeDef TypeDef
    235  " }}} Type, StorageClass and Typedef
    236 
    237  " Statements, keywords et al {{{
    238  " syn keyword rapidStatement
    239  " highlight default link rapidStatement Statement
    240  " Conditional
    241  syn keyword rapidConditional if then elseif else endif test case default endtest
    242  highlight default link rapidConditional Conditional
    243  " Repeat
    244  syn keyword rapidRepeat do
    245  syn match rapidRepeat /\c\v^\s*%(<while>|<for>)%([^!]+<do>)@=/
    246  syn keyword rapidRepeat from to step endfor endwhile
    247  highlight default link rapidRepeat Repeat
    248  " Label
    249  syn keyword rapidLabel goto
    250  syn match rapidLabel /\c\v^\s*[[:upper:][:lower:]]\k*\:\ze%([^=]|$)/ contains=rapidConditional,rapidOperator
    251  highlight default link rapidLabel Label
    252  " Keyword
    253  syn keyword rapidKeyword AccSet ActEventBuffer ActUnit Add AliasCamera AliasIO AliasIOReset BitClear BitSet BookErrNo BrakeCheck
    254  syn keyword rapidKeyword CallByVar CancelLoad CheckProgRef CirPathMode Clear ClearIOBuff ClearPath ClearRawBytes ClkReset ClkStart ClkStop Close CloseDir ConfJ ConfL CONNECT CopyFile CopyRawBytes CornerPathWarning CorrClear CorrCon CorrDiscon CorrWrite
    255  syn keyword rapidKeyword CSSAct CSSDeact CSSForceOffsetAct CSSForceOffsetDeact CSSOffsetTune CyclicBrakeCheck
    256  syn keyword rapidKeyword DeactEventBuffer DeactUnit Decr DitherAct DitherDeact DropSensor
    257  syn keyword rapidKeyword EGMActJoint EGMActMove EGMActPose EGMGetId EGMReset EGMSetupAI EGMSetupAO EGMSetupGI EGMSetupLTAPP EGMSetupUC EOffsOff EOffsOn EOffsSet EraseModule ErrLog ErrWrite
    258  syn keyword rapidKeyword FitCircle FricIdInit FricIdEvaluate FricIdSetFricLevels
    259  syn keyword rapidKeyword GetDataVal GetGroupSignalInfo GetJointData GetSysData GetTorqueMargin GetTrapData GripLoad HollowWristReset
    260  syn keyword rapidKeyword IDelete IDisable IEnable IError Incr IndReset InvertDO IOBusStart IOBusState IoCtrlAxis_RefSync IoCtrlAxis_RefSyncOff IoCtrlAxis_RefSyncOn IODisable IOEnable IPers IRMQMessage ISignalAI ISignalAO ISignalDI ISignalDO ISignalGI ISignalGO ISleep ITimer IVarValue IWatch
    261  syn keyword rapidKeyword Load LoadId MakeDir ManLoadIdProc MatrixSolve MatrixSolveQR MatrixSVD MechUnitLoad MotionProcessModeSet MotionSup MToolRotCalib MToolTCPCalib Open OpenDir
    262  syn keyword rapidKeyword PackDNHeader PackRawBytes PathAccLim PathLengthReset PathLengthStart PathLengthStop PathRecStart PathRecStop PathResol PDispOff PDispOn PDispSet ProcerrRecovery PrxActivAndStoreRecord PrxActivRecord PrxDbgStoreRecord PrxDeactRecord PrxResetPos PrxResetRecords PrxSetPosOffset PrxSetRecordSampleTime PrxSetSyncalarm PrxStartRecord PrxStopRecord PrxStoreRecord PrxUseFileRecord PulseDO
    263  syn keyword rapidKeyword ReadAnyBin ReadBlock ReadCfgData ReadErrData ReadRawBytes ReadVarArr RemoveAllCyclicBool RemoveCyclicBool RemoveDir RemoveFile RenameFile Reset ResetAxisDistance ResetAxisMoveTime ResetPPMoved ResetRetryCount ResetTorqueMargin RestoPath Rewind RMQEmptyQueue RMQFindSlot RMQGetMessage RMQGetMsgData RMQGetMsgHeader RMQReadWait RMQSendMessage RMQSendWait
    264  syn keyword rapidKeyword SafetyControllerSyncRequest Save SaveCfgData SCWrite SenDevice Set SetAllDataVal SetAO SetDataSearch SetDataVal SetDO SetGO SetLeadThrough SetSysData SetupCyclicBool SiConnect SiClose SiGetCyclic SingArea SiSetCyclic SkipWarn SocketAccept SocketBind SocketClose SocketConnect SocketCreate SocketListen SocketReceive SocketReceiveFrom SocketSend SocketSendTo SoftAct SoftDeact SoftElbow SpeedLimAxis SpeedLimCheckPoint SpeedRefresh SpyStart SpyStop StartLoad STCalib STClose STIndGun STIndGunReset SToolRotCalib SToolTCPCalib STOpen StorePath STTune STTuneReset SupSyncSensorOff SupSyncSensorOn SyncMoveOff SyncMoveOn SyncMoveResume SyncMoveSuspend SyncMoveUndo SyncToSensor SystemStopAction
    265  syn keyword rapidKeyword TestSignDefine TestSignReset TextTabInstall TPErase TPReadDnum TPReadFK TPReadNum TPShow TPWrite TriggCheckIO TriggDataCopy TriggDataReset TriggEquip TriggInt TriggIO TriggRampAO TriggSpeed TriggStopProc TryInt TuneReset TuneServo
    266  syn keyword rapidKeyword UIMsgBox UIMsgWrite UIMsgWriteAbort UIShow UnLoad UnpackRawBytes VelSet WaitAI WaitAO WaitDI WaitDO WaitGI WaitGO WaitLoad WaitRob WaitSensor WaitSyncTask WaitTestAndSet WaitTime WaitUntil WarmStart WITH WorldAccLim Write WriteAnyBin WriteBin WriteBlock WriteCfgData WriteRawBytes WriteStrBin WriteVar WriteVarArr WZBoxDef WZCylDef WZDisable WZDOSet WZEnable WZFree WZHomeJointDef WZLimJointDef WZLimSup WZSphDef
    267  " arc instructions
    268  syn keyword rapidKeyword ArcRefresh RecoveryMenu RecoveryMenuWR RecoveryPosSet RecoveryPosReset SetWRProcName
    269  " conveyor tracking instructions
    270  syn keyword rapidKeyword UseACCProfile WaitWObj DropWObj RecordProfile WaitAndRecProf StoreProfile LoadProfile ActivateProfile DeactProfile CnvGenInstr CnvSync CnvGenInstr IndCnvInit IndCnvEnable IndCnvDisable IndCnvReset IndCnvAddObject
    271  syn keyword rapidKeyword UseReachableTargets GetMaxUsageTime ResetMaxUsageTime CnvPredictReach
    272  " Integrated Vision instructions
    273  syn keyword rapidKeyword CamFlush CamGetParameter CamGetResult CamLoadJob CamReqImage CamSetExposure CamSetParameter CamSetProgramMode CamSetRunMode CamStartLoadJob CamWaitLoadJob
    274  " arc Weldguide and MultiPass instructions
    275  syn keyword rapidKeyword MPSavePath MPLoadPath MPReadInPath MPOffsEaxOnPath
    276  " Paint instructions
    277  syn keyword rapidKeyword ConsoleWrite IpsSetParam PntProdUserLog SetBrush SetBrushFac
    278  " Spot instructions
    279  syn keyword rapidKeyword SetForce Calibrate ReCalcTCP IndGunMove IndGunMoveReset OpenHighLift CloseHighLift SwSetIntSpotData SwSetIntForceData SwSetIntGunData SwSetIntSimData SwGetCalibData SwGetFixTipData
    280  " Tool change instructions
    281  syn keyword rapidKeyword TcCloseCover TcDropOffTool TcLockTool TcOpenCover TcPickupTool TcUnlockTool
    282  " dispense instructions
    283  syn keyword rapidKeyword SetTmSignal SyncWWObj
    284  " Continuous Application Platform instructions
    285  syn keyword rapidKeyword CapAPTrSetup CapAPTrSetupAI CapAPTrSetupAO  CapAPTrSetupPERS CapCondSetDO CapEquiDist CapNoProcess CapRefresh CAPSetStopMode CapWeaveSync ICap InitSuperv IPathPos RemoveSuperv SetupSuperv
    286  " Bulls Eye instructions
    287  syn keyword rapidKeyword BECheckTcp BEDebugState BERefPointer BESetupToolJ BETcpExtend BEUpdateTcp
    288  " Force Control instructions
    289  syn keyword rapidKeyword FCAct FCCalib FCCondForce FCCondOrient FCCondPos FCCondReoriSpeed FCCondTCPSpeed FCCondTorque FCCondWaitWhile FCDeact FCPress1LStart FCPressC FCPressEnd FCPressL FCRefCircle FCRefForce FCRefLine FCRefMoveFrame FCRefRot FCRefSpiral FCRefSprForceCart FCRefStart FCRefStop FCRefTorque FCResetDampingTune FCResetLPFilterTune FCSpdChgAct FCSpdChgDeact FCSpdChgTunSet FCSpdChgTunReset FCSetDampingTune FCSetLPFilterTune FCSupvForce FCSupvOrient FCSupvPos FCSupvReoriSpeed FCSupvTCPSpeed FCSupvTorque
    290  " Discrete application platform instructions
    291  syn keyword rapidKeyword DaActProc DaDeactAllProc DaDeactProc DaDefExtSig DaDefProcData DaDefProcSig DaDefUserData DaGetCurrData DaSetCurrData DaSetupAppBehav DaStartManAction DaGetAppDescr DaGetAppIndex DaGetNumOfProcs DaGetNumOfRob DaGetPrcDescr
    292  " Production Manager instructions
    293  syn keyword rapidKeyword ExecEngine PMgrGetNextPart PMgrSetNextPart PMgrRunMenu
    294  " Homepos-Running instructions
    295  syn keyword rapidKeyword HR_Exit HR_ExitCycle HR_SavePos HR_SetMoveToStartPos HR_SetTypeDIndex HR_SetTypeIndex
    296  highlight default link rapidKeyword Keyword
    297  " Exception
    298  syn keyword rapidException Exit ErrRaise ExitCycle Raise RaiseToUser Retry Return TryNext
    299  syn match rapidException /\s\+Stop\s*[\\;]/me=e-1
    300  highlight default link rapidException Exception
    301  " }}} Statements, keywords et al
    302 
    303  " Special keyword for move command {{{
    304  " uncategorized yet
    305  syn keyword rapidMovement MovePnP
    306  syn keyword rapidMovement EGMMoveC EGMMoveL EGMRunJoint EGMRunPose EGMStop
    307  syn keyword rapidMovement IndAMove IndCMove IndDMove IndRMove
    308  " common instructions
    309  syn keyword rapidMovement MoveAbsJ MoveC MoveExtJ MoveJ MoveL
    310  syn keyword rapidMovement MoveCAO MoveCDO MoveCGO MoveCSync MoveJAO MoveJDO MoveJGO MoveJSync MoveLAO MoveLDO MoveLGO MoveLSync
    311  syn keyword rapidMovement SearchC SearchExtJ SearchL
    312  syn keyword rapidMovement TriggAbsJ TriggC TriggJ TriggL TriggJIOs TriggLIOs
    313  " Arc instructions
    314  syn keyword rapidMovement ArcC ArcC1 ArcC2 ArcCEnd ArcC1End ArcC2End ArcCStart ArcC1Start ArcC2Start
    315  syn keyword rapidMovement ArcL ArcL1 ArcL2 ArcLEnd ArcL1End ArcL2End ArcLStart ArcL1Start ArcL2Start ArcMoveExtJ
    316  " Arc Weldguide and MultiPass instructions
    317  syn keyword rapidMovement ArcRepL ArcAdaptLStart ArcAdaptL ArcAdaptC ArcAdaptLEnd ArcAdaptCEnd ArcCalcLStart ArcCalcL ArcCalcC ArcCalcLEnd ArcCalcCEnd ArcAdaptRepL
    318  syn keyword rapidMovement Break
    319  " Continuous Application Platform instructions
    320  syn keyword rapidMovement CapC CapL CapLATrSetup CSSDeactMoveL ContactL
    321  " Dispense instructions
    322  syn keyword rapidMovement DispL DispC
    323  " Nut instructions"
    324  syn keyword rapidMovement NutL NutJ
    325  syn keyword rapidMovement PathRecMoveBwd PathRecMoveFwd
    326  " Paint instructions"
    327  syn keyword rapidMovement PaintL PaintLSig PaintLDO PaintC
    328  syn keyword rapidMovement StartMove StartMoveRetry StepBwdPath StopMove StopMoveReset
    329  " Spot instructions
    330  syn keyword rapidMovement SpotL SpotJ SpotML SpotMJ CalibL CalibJ MeasureWearL
    331  " Homepos-Running instructions
    332  syn keyword rapidMovement SMoveJ SMoveJDO SMoveJGO SMoveJSync SMoveL SMoveLDO SMoveLGO SMoveLSync SSearchL STriggJ STriggL
    333  syn keyword rapidMovement HR_ContMove HR_MoveBack HR_MoveRoutine HR_MoveTo HR_MoveToHome SCSSDeactMoveL
    334  " Discrete application platform instructions
    335  syn keyword rapidMovement DaProcML DaProcMJ
    336  " VW Konzernstandard VWKS_1.07.02
    337  syn keyword rapidMovement MoveABS  MoveABS_FB  MoveABS_FRG  MoveABS_ROB
    338  syn keyword rapidMovement MoveCIRC MoveCIRC_FB MoveCIRC_FRG MoveCIRC_ROB
    339  syn keyword rapidMovement MoveLIN  MoveLIN_FB  MoveLIN_FRG  MoveLIN_ROB
    340  syn keyword rapidMovement MovePTP  MovePTP_FB  MovePTP_FRG  MovePTP_ROB
    341  syn keyword rapidMovement SearchCIRC SearchCIRC_M
    342  syn keyword rapidMovement SearchLIN  SearchLIN_M
    343  syn keyword rapidMovement MoveABS_AO  MoveABS_DO  MoveABS_GO
    344  syn keyword rapidMovement MoveCIRC_AO MoveCIRC_DO MoveCIRC_GO
    345  syn keyword rapidMovement MoveLIN_AO  MoveLIN_DO  MoveLIN_GO
    346  syn keyword rapidMovement KW_LoesenLIN
    347  syn keyword rapidMovement SPZ_FraesenLIN SPZ_FraesenPTP SPZ_MessenLIN SPZ_MessenPTP SPZ_LIN SPZ_PTP
    348  syn keyword rapidMovement BZ_LIN BZ_PTP
    349  syn keyword rapidMovement KL_LIN KL_CIRC
    350  syn keyword rapidMovement BP_LIN BP_PTP
    351  syn keyword rapidMovement BU_CIRC BU_LIN
    352  syn keyword rapidMovement CZ_LIN CZ_LIN_V CZ_PTP CZ_PTP_V
    353  syn keyword rapidMovement FD_LIN FD_PTP
    354  syn keyword rapidMovement KG_LIN KG_PTP
    355  syn keyword rapidMovement DA_LIN
    356  syn keyword rapidMovement LK_CIRC LK_LIN
    357  syn keyword rapidMovement LL_CIRC LL_LIN
    358  syn keyword rapidMovement LS_CIRC LS_LIN LS_LIN_F LS_PTP_F
    359  syn keyword rapidMovement LW_CIRC LW_LIN
    360  syn keyword rapidMovement LZ_LIN LZ_PTP LZ_ReinigenLIN LZ_ReinigenPTP
    361  syn keyword rapidMovement MS_CIRC MS_LIN MS_ReinigenLIN MS_SearchLIN MS_PTP_CS MS_LIN_CS GBL_LIN GBL_PTP GBL_RefPointLIN
    362  syn keyword rapidMovement NK_LIN
    363  syn keyword rapidMovement NZ_LIN NZ_LIN_V NZ_PTP NZ_PTP_V
    364  syn keyword rapidMovement PR_LIN PR_PTP
    365  syn keyword rapidMovement RF_CIRC RF_LIN
    366  syn keyword rapidMovement STP_FraesenLIN STP_FraesenPTP STP_LIN STP_PTP
    367  syn keyword rapidMovement SM_LIN SM_PTP
    368  syn keyword rapidMovement BUA_CIRC BUA_LIN BUA_MessenLIN BUA_MessenPTP
    369  syn keyword rapidMovement KE_LIN
    370  if g:rapidGroupName
    371    highlight default link rapidMovement Movement
    372  else
    373    highlight default link rapidMovement Special
    374  endif
    375  " }}} special keyword for move command
    376 
    377  " Any name {{{
    378  syn match rapidNames /\v[[:upper:][:lower:]](\k|\.)*/
    379  " }}} Any name
    380 
    381  " Attempt to avoid false highlight of num in case of parameter name:
    382  "   TPWrite "goPosNo="\num:=GOutput(goPosNo);
    383  " Must follow after rapidNames in this file
    384  syn match rapidType /\c\v<num>\s*\ze[^ :]/
    385 
    386  " Structure value {{{
    387  " rapid structrure values. added to be able to conceal them
    388  if getbufvar('%', "&buftype")=="quickfix"
    389    " don't conceal in quickfix window
    390    setlocal conceallevel=0 concealcursor=
    391  endif
    392  syn region rapidConcealableString matchgroup=rapidConcealableString start=/"/ skip=/""/ end=/"/ oneline keepend extend contained contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell conceal
    393  highlight default link rapidConcealableString String
    394  syn region rapidStructVal matchgroup=rapidStructDelimiter start=/\[/ end=/\]/ contains=rapidStructVal,rapidBoolean,rapidDec,rapidHex,rapidOct,rapidBin,rapidFloat,rapidConcealableString,rapidDelimiter,rapidConstant,rapidErrNo,rapidIntNo,rapidOperator keepend extend conceal cchar=*
    395  highlight default link rapidStructDelimiter Delimiter
    396  " check edge cases like this one:
    397  "  LOCAL CONST listitem lstAuswService{18}:=[["","Service Position"],["","Bremsentest"],["","Referenzfahrt"],["","Manuelles Abfahren"],["","Justagestellung"],["","Transportposition"],
    398  "      ["","Spitze-Spitze Greifer 1, [RT]"],["","Spitze-Spitze Greifer 2, [FT]"],["","Spitze-Spitze Pruefspitze"],["","Werkobjekt Ablage"],["","Werkobjekt Modul 1"],
    399  "      ["","Werkobjekt Modul 2"],["","TCP von Greifer 1 vermessen, [RT]"],["","TCP von Greifer 2 vermessen, [FT]"],["","TCP von Basisdorn vermessen"],
    400  "      ["","Greifer abdocken"],["","Greifer andocken"],["","Kollision Check (Ohne Greifer)"]];
    401  " }}} Structure value
    402 
    403  " Delimiter {{{
    404  syn match rapidDelimiter /[\\(){},;|]/
    405  highlight default link rapidDelimiter Delimiter
    406  " }}} Delimiter
    407 
    408  " BuildInFunction {{{
    409  " dispense functions
    410  syn keyword rapidBuildInFunction contained GetSignal GetSignalDnum
    411  " Integrated Vision Platform functions
    412  syn keyword rapidBuildInFunction contained CamGetExposure CamGetLoadedJob CamGetName CamNumberOfResults
    413  " Continuous Application Platform functions
    414  syn keyword rapidBuildInFunction contained CapGetFailSigs
    415  syn keyword rapidBuildInFunction contained Abs AbsDnum ACos ACosDnum AInput AOutput ArgName ASin ASinDnum ATan ATanDnum ATan2 ATan2Dnum
    416  syn keyword rapidBuildInFunction contained BitAnd BitAndDnum BitCheck BitCheckDnum BitLSh BitLShDnum BitNeg BitNegDnum BitOr BitOrDnum BitRSh BitRShDnum BitXOr BitXOrDnum ByteToStr
    417  syn keyword rapidBuildInFunction contained CalcJointT CalcRobT CalcRotAxFrameZ CalcRotAxisFrame CDate CJointT ClkRead CorrRead Cos CosDnum CPos CRobT CrossProd CSpeedOverride CTime CTool CWObj
    418  syn keyword rapidBuildInFunction contained DecToHex DefAccFrame DefDFrame DefFrame Dim DInput Distance DnumToNum DnumToStr DotProd DOutput
    419  syn keyword rapidBuildInFunction contained EGMGetState EulerZYX EventType ExecHandler ExecLevel Exp
    420  syn keyword rapidBuildInFunction contained FileSize FileTime FileTimeDnum FSSize
    421  syn keyword rapidBuildInFunction contained GetAxisDistance GetAxisMoveTime GetMaxNumberOfCyclicBool GetMecUnitName GetModalPayLoadMode GetMotorTorque GetNextCyclicBool GetNextMechUnit GetNextSym GetNumberOfCyclicBool GetServiceInfo GetSignalOrigin GetSysInfo GetTaskName GetTime GetTSPStatus GetUASUserName GInput GInputDnum GOutput GOutputDnum
    422  syn keyword rapidBuildInFunction contained HexToDec
    423  syn keyword rapidBuildInFunction contained IndInpos IndSpeed IOUnitState IsBrakeCheckActive IsCyclicBool IsFile IsLeadThrough IsMechUnitActive IsPers IsStopMoveAct IsStopStateEvent IsSyncMoveOn IsSysId IsVar
    424  syn keyword rapidBuildInFunction contained Max MaxExtLinearSpeed MaxExtReorientSpeed MaxRobReorientSpeed MaxRobSpeed Min MirPos ModExist ModTime ModTimeDnum MotionPlannerNo
    425  syn keyword rapidBuildInFunction contained NonMotionMode NOrient NumToDnum NumToStr
    426  syn keyword rapidBuildInFunction contained Offs OpMode OrientZYX ORobT
    427  syn keyword rapidBuildInFunction contained ParIdPosValid ParIdRobValid PathLengthGet PathLevel PathRecValidBwd PathRecValidFwd PFRestart PoseInv PoseMult PoseVect Pow PowDnum PPMovedInManMode Present ProgMemFree PrxGetMaxRecordpos
    428  syn keyword rapidBuildInFunction contained RawBytesLen ReadBin ReadDir ReadMotor ReadNum ReadStr ReadStrBin ReadVar RelTool RemainingRetries RMQGetSlotName RobName RobOS Round RoundDnum RunMode
    429  syn keyword rapidBuildInFunction contained SafetyControllerGetChecksum SafetyControllerGetOpModePinCode SafetyControllerGetSWVersion SafetyControllerGetUserChecksum Sin SinDnum SocketGetStatus SocketPeek Sqrt SqrtDnum STCalcForce STCalcTorque STIsCalib STIsClosed STIsIndGun STIsOpen StrDigCalc StrDigCmp StrFind StrLen StrMap StrMatch StrMemb StrOrder StrPart StrToByte StrToVal
    430  syn keyword rapidBuildInFunction contained Tan TanDnum TaskRunMec TaskRunRob TasksInSync TaskIsActive TaskIsExecuting TestAndSet TestDI TestSignRead TextGet TextTabFreeToUse TextTabGet TriggDataValid Trunc TruncDnum Type
    431  syn keyword rapidBuildInFunction contained UIAlphaEntry UIClientExist UIDnumEntry UIDnumTune UIListView UIMessageBox UINumEntry UINumTune
    432  syn keyword rapidBuildInFunction contained ValidIO ValToStr Vectmagn
    433  " Bulls Eye functions
    434  syn keyword rapidBuildInFunction contained OffsToolXYZ OffsToolPolar
    435  " Force Control functions
    436  syn keyword rapidBuildInFunction contained FCGetForce FCGetProcessData FCIsForceMode FCLoadID
    437  " Discrete application platform functions
    438  syn keyword rapidBuildInFunction contained DaGetFstTimeEvt DaCheckMMSOpt DaGetMP DaGetRobotName DaGetTaskName
    439  " Production Manager functions
    440  syn keyword rapidBuildInFunction contained PMgrAtSafe PMgrAtService PMgrAtState PMgrAtStation PMgrNextStation PMgrTaskNumber PMgrTaskName
    441  " Spot functions
    442  syn keyword rapidBuildInFunction contained SwGetCurrTargetName SwGetCurrSpotName
    443  " Homepos-Running functions
    444  syn keyword rapidBuildInFunction contained HR_RobotInHome HR_GetTypeDIndex HR_GetTypeIndex
    445  " Paint functions
    446  syn keyword rapidBuildInFunction contained IndexLookup IpsCommand IpsGetParam PaintCommand PntQueueExtraGet PntQueueExtraSet PntQueuePeek
    447  if g:rapidGroupName
    448    highlight default link rapidBuildInFunction BuildInFunction
    449  else
    450    highlight default link rapidBuildInFunction Function
    451  endif
    452  " }}}
    453 
    454  " Function {{{
    455  syn match rapidFunction contains=rapidBuildInFunction /\v\c%(<%(PROC|MODULE)\s+)@10<!<[[:upper:][:lower:]]\k+ *\(/me=e-1
    456  highlight default link rapidFunction Function
    457  syn match rapidCallByVar /%\ze[^%]/
    458  highlight default link rapidCallByVar Function
    459  " }}} Function
    460 
    461  " Constants {{{
    462  " standard rapid constants
    463  syn keyword rapidConstant pi stEmpty
    464  syn keyword rapidConstant STR_DIGIT STR_LOWER STR_UPPER STR_WHITE
    465  syn keyword rapidConstant flp1 diskhome diskram disktemp usbdisk1 usbdisk2 usbdisk3 usbdisk4 usbdisk5 usbdisk6 usbdisk7 usbdisk8 usbdisk9 usbdisk10
    466  " stoppoint
    467  syn keyword rapidConstant inpos stoptime fllwtime
    468  " stoppointdata
    469  syn keyword rapidConstant inpos20 inpos50 inpos100
    470  syn keyword rapidConstant stoptime0_5 stoptime1_0 stoptime1_5
    471  syn keyword rapidConstant fllwtime0_5 fllwtime1_0 fllwtime1_5
    472  " default tool/wobj/load
    473  syn keyword rapidConstant tool0 wobj0 load0
    474  " zonedata
    475  syn keyword rapidConstant fine z0 z1 z5 z10 z15 z20 z30 z40 z50 z60 z80 z100 z150 z200
    476  " speeddata
    477  syn keyword rapidConstant v5 v10 v20 v30 v40 v50 v60 v80 v100 v150 v200 v300 v400 v500 v600 v800 v1000 v1500 v2000 v2500 v3000 v4000 v5000 v6000 v7000 vmax
    478  syn keyword rapidConstant vrot1 vrot2 vrot5 vrot10 vrot20 vrot50 vrot100 vlin10 vlin20 vlin50 vlin100 vlin200 vlin500 vlin1000
    479  " error code starting with ERR_
    480  syn keyword rapidConstant ERR_ACC_TOO_LOW ERR_ACTIV_PROF ERR_ADDR_INUSE ERR_ALIASIO_DEF ERR_ALIASIO_TYPE ERR_ALRDYCNT ERR_ALRDY_MOVING ERR_AO_LIM ERR_ARGDUPCND ERR_ARGNAME ERR_ARGNOTPER ERR_ARGNOTVAR ERR_ARGVALERR ERR_ARRAY_SIZE ERR_AXIS_ACT ERR_AXIS_IND ERR_AXIS_MOVING ERR_AXIS_PAR
    481  syn keyword rapidConstant ERR_BUSSTATE ERR_BWDLIMIT
    482  syn keyword rapidConstant ERR_CALC_DIVZERO ERR_CALC_NEG ERR_CALC_OVERFLOW ERR_CALLIO_INTER ERR_CALLPROC ERR_CAM_BUSY ERR_CAM_COM_TIMEOUT ERR_CAM_GET_MISMATCH ERR_CAM_MAXTIME ERR_CAM_NO_MORE_DATA ERR_CAM_NO_PROGMODE ERR_CAM_NO_RUNMODE ERR_CAM_SET_MISMATCH
    483  syn keyword rapidConstant ERR_CFG_ILLTYPE ERR_CFG_ILL_DOMAIN ERR_CFG_INTERNAL ERR_CFG_LIMIT ERR_CFG_NOTFND ERR_CFG_OUTOFBOUNDS ERR_CFG_WRITEFILE
    484  syn keyword rapidConstant ERR_CNTNOTVAR
    485  syn keyword rapidConstant ERR_CNV_CONNECT ERR_CNV_DROPPED ERR_CNV_NOT_ACT
    486  syn keyword rapidConstant ERR_COLL_STOP
    487  syn keyword rapidConstant ERR_COMM_EXT ERR_COMM_INIT ERR_COMM_INIT_FAILED
    488  syn keyword rapidConstant ERR_CONC_MAX ERR_CONTACTL ERR_CSV_INDEX
    489  syn keyword rapidConstant ERR_DA_UNKPROC ERR_DATA_RECV ERR_DEV_MAXTIME ERR_DIPLAG_LIM ERR_DIVZERO ERR_DROP_LOAD ERR_EXCRTYMAX ERR_EXECPHR
    490  syn keyword rapidConstant ERR_FILEACC ERR_FILEEXIST ERR_FILEOPEN ERR_FILESIZE ERR_FILNOTFND
    491  syn keyword rapidConstant ERR_FNCNORET ERR_FRAME ERR_FRICTUNE_FATAL ERR_GLUEFLOW ERR_GO_LIM
    492  syn keyword rapidConstant ERR_HAND_FAILEDGRIPPOS ERR_HAND_FAILEDMOVEPOS ERR_HAND_FAILEDVACUUM ERR_HAND_NOTCALIBRATED
    493  syn keyword rapidConstant ERR_ILLDIM ERR_ILLQUAT ERR_ILLRAISE
    494  syn keyword rapidConstant ERR_INDCNV_ORDER ERR_INOISSAFE ERR_INOMAX ERR_INPAR_RDONLY ERR_INT_MAXVAL ERR_INT_NOTVAL ERR_INVDIM
    495  syn keyword rapidConstant ERR_IODISABLE ERR_IODN_TIMEOUT ERR_IOENABLE ERR_IOERROR ERR_IPSDEVICE_UNKNOWN ERR_IPSILLEGAL_CH_OR_FAC ERR_IPS_PARAM
    496  syn keyword rapidConstant ERR_ITMSRC_UNDEF ERR_LINKREF ERR_LOADED ERR_LOADID_FATAL ERR_LOADID_RETRY ERR_LOADNO_INUSE ERR_LOADNO_NOUSE
    497  syn keyword rapidConstant ERR_MSG_PENDING ERR_MAXINTVAL ERR_MOC_CNV_REC_FILE_UNKNOWN ERR_MODULE ERR_MOD_NOT_LOADED ERR_MOD_NOTLOADED
    498  syn keyword rapidConstant ERR_MT_ABORT ERR_MT_HOME ERR_MT_HOMERUN
    499  syn keyword rapidConstant ERR_NEGARG ERR_NAME_INVALID ERR_NORUNUNIT ERR_NOTARR ERR_NOTEQDIM ERR_NOTINTVAL ERR_NOTPRES ERR_NOTSAVED ERR_NOT_MOVETASK ERR_NO_ALIASIO_DEF ERR_NO_SGUN ERR_NUM_LIMIT
    500  syn keyword rapidConstant ERR_OUTOFBND ERR_OUTSIDE_REACH ERR_OVERFLOW ERR_PATH ERR_PATHDIST ERR_PATH_STOP ERR_PERSSUPSEARCH ERR_PID_MOVESTOP ERR_PID_RAISE_PP ERR_PPA_TIMEOUT ERR_PRGMEMFULL ERR_PROCSIGNAL_OFF ERR_PROGSTOP
    501  syn keyword rapidConstant ERR_RANYBIN_CHK ERR_RANYBIN_EOF ERR_RCVDATA ERR_REFUNKDAT ERR_REFUNKFUN ERR_REFUNKPRC ERR_REFUNKTRP
    502  syn keyword rapidConstant ERR_RMQ_DIM ERR_RMQ_FULL ERR_RMQ_INVALID ERR_RMQ_INVMSG ERR_RMQ_MSGSIZE ERR_RMQ_NAME ERR_RMQ_NOMSG ERR_RMQ_TIMEOUT ERR_RMQ_VALUE
    503  syn keyword rapidConstant ERR_ROBLIMIT ERR_SC_WRITE
    504  syn keyword rapidConstant ERR_SGUN_ESTOP ERR_SGUN_MOTOFF ERR_SGUN_NEGVAL ERR_SGUN_NOTACT ERR_SGUN_NOTINIT ERR_SGUN_NOTOPEN ERR_SGUN_NOTSYNC
    505  syn keyword rapidConstant ERR_SIG_NAME ERR_SIGSUPSEARCH ERR_SIG_NOT_VALID
    506  syn keyword rapidConstant ERR_SOCK_ADDR_INVALID ERR_SOCK_ADDR_INUSE ERR_SOCK_CLOSED ERR_SOCK_IS_BOUND ERR_SOCK_IS_CONN ERR_SOCK_NET_UNREACH ERR_SOCK_NOT_BOUND ERR_SOCK_NOT_CONN ERR_SOCK_TIMEOUT ERR_SOCK_UNSPEC
    507  syn keyword rapidConstant ERR_SPEEDLIM_VALUE ERR_SPEED_REFRESH_LIM
    508  syn keyword rapidConstant ERR_STARTMOVE ERR_STORE_PROF ERR_STRTOOLNG ERR_SYMBOL_TYPE ERR_SYM_ACCESS ERR_SYNCMOVEOFF ERR_SYNCMOVEON ERR_SYNTAX
    509  syn keyword rapidConstant ERR_TASKNAME
    510  syn keyword rapidConstant ERR_TP_DIBREAK ERR_TP_DOBREAK ERR_TP_MAXTIME ERR_TP_NO_CLIENT ERR_TP_PERSBOOLBREAK
    511  syn keyword rapidConstant ERR_TRUSTLEVEL ERR_TXTNOEXIST ERR_UDPUC_COMM
    512  syn keyword rapidConstant ERR_UISHOW_FATAL ERR_UISHOW_FULL ERR_UI_INITVALUE ERR_UI_MAXMIN ERR_UI_NOTINT
    513  syn keyword rapidConstant ERR_UNIT_PAR ERR_UNKINO ERR_UNKPROC ERR_UNLOAD ERR_USE_PROF
    514  syn keyword rapidConstant ERR_WAITSYNCTASK ERR_WAIT_MAX ERR_WAIT_MAXTIME ERR_WHL_SEARCH ERR_WHLSEARCH ERR_WOBJ_MOVING
    515  " error codes starting with CORR_
    516  syn keyword rapidConstant CORR_NOFREE CORR_NOOBJECT CORR_NOTCONN
    517  " error codes starting with SEN_
    518  syn keyword rapidConstant SEN_BUSY SEN_CAALARM SEN_CAMCHECK SEN_EXALARM SEN_GENERRO SEN_NO_MEAS SEN_NOREADY SEN_TEMP SEN_TIMEOUT SEN_UNKNOWN SEN_VALUE
    519  " error codes starting with SYS_
    520  syn keyword rapidConstant SYS_ERR_ARL_INPAR_RDONLY SYS_ERR_HW_SMB_WARNING_BATTERY_LOW SYS_ERR_MOC_CNV_REC_FILE_UNKNOWN SYS_ERR_MOC_CNV_REC_NOT_READY
    521  " error codes starting with TC_
    522  syn keyword rapidConstant TC_ERR_AIR TC_ERR_CLOSE_COV TC_ERR_DOUNLOCK TC_ERR_IO TC_ERR_IOCFG TC_ERR_LOCK TC_ERR_NOTOOL TC_ERR_OPEN_COV TC_ERR_POWER TC_ERR_PULOCK TC_ERR_ROBPOS TC_ERR_ROBPOS_DROP TC_ERR_ROBPOS_PICK TC_ERR_SERVO_TOOL TC_ERR_STANDNUM TC_ERR_TOOL TC_ERR_TOOLCFG TC_ERR_TOOLNUM  TC_ERR_UNLOCK
    523  " long jump error
    524  syn keyword rapidConstant LONG_JMP_ALL_ERR
    525  " Arc and Arc sensor
    526  syn keyword rapidConstant AW_IGNI_ERR AW_EQIP_ERR AW_START_ERR AW_STOP_ERR AW_TRACK_ERR AW_TRACKCORR_ERR AW_TRACKSTA_ERR AW_USERSIG_ERR AW_WELD_ERR AW_WIRE_ERR
    527  " EGM egmframetype
    528  syn keyword rapidConstant EGM_FRAME_BASE EGM_FRAME_TOOL EGM_FRAME_WOBJ EGM_FRAME_WORLD EGM_FRAME_JOINT
    529  " EGM egmstate
    530  syn keyword rapidConstant EGM_STATE_DISCONNECTED EGM_STATE_CONNECTED EGM_STATE_RUNNING
    531  " EGM egmstopmode
    532  syn keyword rapidConstant EGM_STOP_HOLD EGM_STOP_RAMP_DOWN
    533  syn keyword rapidConstant EGM_MAX_RAPID_DNUM
    534  " Events
    535  syn keyword rapidConstant EE_START EE_CYCLE_START EE_PROC_START EE_PRE_PROD EE_CLOSE_JIG EE_INDEX EE_PRE_PART EE_POST_PART EE_OPEN_JIG EE_SERVICE EE_POST_PROD EE_ABORT EE_WAIT_ORDER EE_POST_PROC
    536  syn keyword rapidConstant EE_POWERON EE_POWERON_OR_START EE_RESTART EE_START_OR_RESTART EE_STOP EE_QSTOP EE_STOP_OR_QSTOP EE_RESET EE_STEP EE_STEP_FWD EE_STEP_BCK EE_BEFORE_INIT EE_AFTER_INIT EE_BEFORE_PROD EE_AFTER_PROD EE_BEFORE_MENU EE_AFTER_MENU
    537  syn keyword rapidConstant EE_ERROR EE_HOMERUN EE_PROG_END EE_AFTER_PROG_NUMBER EE_PROGNO_UNKNOWN EE_PROD_UNKNOWN EE_MSG_WRITTEN EE_MSG_ACKNOWLEDGED EE_AFTER_PART EE_BEFORE_HOMERUN EE_AFTER_HOMERUN EE_BLOCKED
    538  " motion process mode
    539  syn keyword rapidConstant OPTIMAL_CYCLE_TIME_MODE LOW_SPEED_ACCURACY_MODE LOW_SPEED_STIFF_MODE ACCURACY_MODE MPM_USER_MODE_1 MPM_USER_MODE_2 MPM_USER_MODE_3 MPM_USER_MODE_4
    540  " inttypes
    541  syn keyword rapidConstant USINT UINT UDINT ULINT SINT INT DINT LINT
    542  " opcalc
    543  syn keyword rapidConstant OpAdd OpSub OpMult OpDiv OpMod
    544  " triggmode
    545  syn keyword rapidConstant TRIGG_MODE1 TRIGG_MODE2 TRIGG_MODE3
    546  " tunetype
    547  syn keyword rapidConstant TUNE_DF TUNE_KP TUNE_KV TUNE_TI TUNE_FRIC_LEV TUNE_FRIC_RAMP TUNE_DG TUNE_DH TUNE_DI TUNE_DK TUNE_DL
    548  " cellopmode
    549  syn keyword rapidConstant OP_NO_ROBOT OP_SERVICE OP_PRODUCTION
    550  " execution mode
    551  syn keyword rapidConstant CT_CONTINUOUS CT_COUNT_CYCLES CT_COUNT_CYC_ACTION CT_PERIODICAL
    552  " Force Control
    553  syn keyword rapidConstant FC_REFFRAME_TOOL FC_REFFRAME_WOBJ FC_LIN_X FC_LIN_Y FC_LIN_Z FC_ROT_X FC_ROT_Y FC_ROT_Z FC_SPEED_RATIO_MIN FC_NO_OF_SPEED_LEVELS
    554  " tpnum
    555  syn keyword rapidConstant TP_LATEST TP_PROGRAM TP_SCREENVIEWER
    556  " paridvalidnum
    557  syn keyword rapidConstant ROB_LOAD_VAL ROB_NOT_LOAD_VAL ROB_LM1_LOAD_VAL
    558  " paridnum
    559  syn keyword rapidConstant TOOL_LOAD_ID PAY_LOAD_ID IRBP_K IRBP_L IRBP_C IRBP_C_INDEX IRBP_T IRBP_R IRBP_A IRBP_B IRBP_D
    560  " loadidnum
    561  syn keyword rapidConstant MASS_KNOWN MASS_WITH_AX3
    562  " sensorstate
    563  syn keyword rapidConstant STATE_ERROR STATE_UNDEFINED STATE_CONNECTED STATE_OPERATING STATE_CLOSED
    564  " signalorigin
    565  syn keyword rapidConstant SIGORIG_NONE SIGORIG_CFG SIGORIG_ALIAS
    566  " aiotrigg
    567  syn keyword rapidConstant AIO_ABOVE_HIGH AIO_BELOW_HIGH AIO_ABOVE_LOW AIO_BELOW_LOW AIO_BETWEEN AIO_OUTSIDE AIO_ALWAYS
    568  " socketstatus
    569  syn keyword rapidConstant SOCKET_CREATED SOCKET_CONNECTED SOCKET_BOUND SOCKET_LISTENING SOCKET_CLOSED
    570  " symnum of OpMode()
    571  syn keyword rapidConstant OP_UNDEF OP_AUTO OP_MAN_PROG OP_MAN_TEST
    572  " symnum of RunMode()
    573  syn keyword rapidConstant RUN_UNDEF RUN_CONT_CYCLE RUN_INSTR_FWD RUN_INSTR_BWD RUN_SIM RUN_STEP_MOVE
    574  " event_type of EventType()
    575  syn keyword rapidConstant EVENT_NONE EVENT_POWERON EVENT_START EVENT_STOP EVENT_QSTOP EVENT_RESTART EVENT_RESET EVENT_STEP
    576  " handler_type of ExecHandler()
    577  syn keyword rapidConstant HANDLER_NONE HANDLER_BWD HANDLER_ERR HANDLER_UNDO
    578  " event_level of ExecLevel()
    579  syn keyword rapidConstant LEVEL_NORMAL LEVEL_TRAP LEVEL_SERVICE
    580  " signalorigin of GetSignalOrigin()
    581  syn keyword rapidConstant SIGORIG_NONE SIGORIG_CFG SIGORIG_ALIAS
    582  " opnum
    583  syn keyword rapidConstant LT LTEQ EQ NOTEQ GT GTEQ
    584  " icondata
    585  syn keyword rapidConstant iconNone iconInfo iconWarning iconError
    586  " buttondata
    587  syn keyword rapidConstant btnNone btnOK btnAbrtRtryIgn btnOKCancel btnRetryCancel btnYesNo btnYesNoCancel
    588  " btnres
    589  syn keyword rapidConstant resUnkwn resOK resAbort resRetry resIgnore resCancel resYes resNo
    590  " cfgdomain
    591  syn keyword rapidConstant ALL_DOMAINS EIO_DOMAIN MMC_DOMAIN MOC_DOMAIN PROC_DOMAIN SIO_DOMAIN SYS_DOMAIN
    592  " errdomain
    593  syn keyword rapidConstant COMMON_ERR OP_STATE SYSTEM_ERR HARDWARE_ERR PROGRAM_ERR MOTION_ERR OPERATOR_ERR IO_COM_ERR USER_DEF_ERR SAFETY_ERR PROCESS_ERR CFG_ERR OPTION_PROD_ERR ARCWELD_ERR SPOTWELD_ERR PAINT_ERR PICKWARE_ERR
    594  " errtype
    595  syn keyword rapidConstant TYPE_ALL TYPE_ERR TYPE_STATE TYPE_WARN
    596  " Sensor Interface
    597  syn keyword rapidConstant LTAPP__AGE LTAPP__ANGLE LTAPP__AREA LTAPP__CAMCHECK LTAPP__GAP LTAPP__JOINT_NO LTAPP__LASER_OFF LTAPP__MISMATCH LTAPP__PING LTAPP__POWER_UP LTAPP__RESET LTAPP__STEPDIR LTAPP__THICKNESS LTAPP__UNIT
    598  syn keyword rapidConstant LTAPP__X LTAPP__Y LTAPP__Z LTAPP__APM_P1 LTAPP__APM_P2 LTAPP__APM_P3 LTAPP__APM_P4 LTAPP__APM_P5 LTAPP__APM_P6 LTAPP__ROT_Y LTAPP__ROT_Z LTAPP__X0 LTAPP__Y0 LTAPP__Z0 LTAPP__X1 LTAPP__Y1 LTAPP__Z1 LTAPP__X2 LTAPP__Y2 LTAPP__Z2
    599  " iounit_state
    600  syn keyword rapidConstant IOUNIT_LOG_STATE_DISABLED IOUNIT_LOG_STATE_ENABLED IOUNIT_PHYS_STATE_DEACTIVATED IOUNIT_PHYS_STATE_RUNNING IOUNIT_PHYS_STATE_ERROR IOUNIT_PHYS_STATE_UNCONNECTED IOUNIT_PHYS_STATE_UNCONFIGURED IOUNIT_PHYS_STATE_STARTUP IOUNIT_PHYS_STATE_INIT IOUNIT_RUNNING IOUNIT_RUNERROR IOUNIT_DISABLE IOUNIT_OTHERERR
    601  " busstate
    602  syn keyword rapidConstant IOBUS_LOG_STATE_STARTED IOBUS_LOG_STATE_STOPPED IOBUS_PHYS_STATE_ERROR IOBUS_PHYS_STATE_HALTED IOBUS_PHYS_STATE_INIT IOBUS_PHYS_STATE_RUNNING IOBUS_PHYS_STATE_STARTUP
    603  syn keyword rapidConstant BUSSTATE_ERROR BUSSTATE_HALTED BUSSTATE_INIT BUSSTATE_RUN BUSSTATE_STARTUP
    604  " SoftMove
    605  syn keyword rapidConstant CSS_POSX CSS_NEGX CSS_POSY CSS_NEGY CSS_POSZ CSS_NEGZ CSS_X CSS_Y CSS_Z CSS_XY CSS_XZ CSS_YZ CSS_XYZ CSS_XYRZ CSS_ARM_ANGLE CSS_REFFRAME_TOOL CSS_REFFRAME_WOBJ
    606  " tsp_status
    607  syn keyword rapidConstant TSP_STATUS_NOT_NORMAL_TASK TSP_STATUS_DEACT TSP_STATUS_DEACT_SERV_ROUT TSP_STATUS_ACT TSP_UNCHECKED_RUN_SERV_ROUT TSP_NORMAL_UNCHECKED TSP_STATIC_UNCHECKED TSP_SEMISTATIC_UNCHECKED TSP_NORMAL_CHECKED TSP_STATIC_CHECKED TSP_SEMISTATIC_CHECKED
    608  " IRC5P (paint controller)
    609  syn keyword rapidConstant PW_EQUIP_ERR
    610  " Bulls Eye
    611  syn keyword rapidConstant BESuccess BENoOverwrite BENoNameMatch BENoBEDataMod BEArrayFull BEToolNotFound BEInvalidSignal BEAliasSet BERangeLimFail BERangeSingFail BERangeTiltFail BEScanPlaneErr BEBFrameNotRead BEScanRadZero BEHeightSrchErr BEBeamNotFound BEBeamSpinErr BESrchErrInBeam BESrchErrNoDet BENumOfScansErr BEDiaZeroOrLess BESliceCountErr BEGetNewTcpMax BEBeamOriFail BEGetTcpDelErr BERefPosSetErr BERefToolSetErr BERefBeamSetErr BEBFrameDefErr BESetupAlready BERefResetErr BESetupFailed BEToolNotSet BEStartChanged BEBeamMoveErr BECheckTcp BECheckErr BESkipUpdate BEStrtningErr BEAllNotSet BEQuikRefNotDef BEConvergErr BEInstFwdErr BEGetGantryErr BEUnknownErr
    612  " Continuous Application Platform constants
    613  syn keyword rapidConstant CAP_START START_PRE PRE_STARTED START_MAIN MAIN_STARTED STOP_WEAVESTART WEAVESTART_REGAIN MOTION_DELAY STARTSPEED_TIME MAIN_MOTION MOVE_STARTED RESTART NEW_INSTR AT_POINT AT_RESTARTPOINT LAST_SEGMENT PROCESS_END_POINT END_MAIN MAIN_ENDED PATH_END_POINT PROCESS_ENDED END_POST1 POST1_ENDED END_POST2 POST2_ENDED CAP_STOP CAP_PF_RESTART EQUIDIST AT_ERRORPOINT FLY_START FLY_END LAST_INSTR_ENDED END_PRE PRE_ENDED START_POST1 POST1_STARTED START_POST2 POST2_STARTED
    614  syn keyword rapidConstant CAP_PRE_ERR CAP_PRESTART_ERR CAP_END_PRE_ERR CAP_START_ERR CAP_MAIN_ERR CAP_ENDMAIN_ERR CAP_START_POST1_ERR CAP_POST1_ERR CAP_POST1END_ERR CAP_START_POST2_ERR CAP_POST2_ERR CAP_POST2END_ERR CAP_TRACK_ERR CAP_TRACKSTA_ERR CAP_TRACKCOR_ERR CAP_TRACKCOM_ERR CAP_TRACKPFR_ERR CAP_SEN_NO_MEAS CAP_SEN_NOREADY CAP_SEN_GENERRO CAP_SEN_BUSY CAP_SEN_UNKNOWN CAP_SEN_ILLEGAL CAP_SEN_EXALARM CAP_SEN_CAALARM CAP_SEN_TEMP CAP_SEN_VALUE CAP_SEN_CAMCHECK CAP_SEN_TIMEOUT
    615  " Machine Tending grppos
    616  syn keyword rapidConstant gsOpen gsVacuumOff gsBackward gsClose gsVacuumOn gsForward gsReset
    617  " Machine Tending grpaction
    618  syn keyword rapidConstant gaSetAndCheck gaSet gaCheck gaCheckClose gaCheckClose
    619  " Palletizing PowerPac
    620  syn keyword rapidConstant PM_ERR_AXLIM PM_ERR_CALCCONF PM_ERR_FLOW_NOT_FOUND PM_ERR_INVALID_FLOW_STOP_OPTION PM_ERR_JOB_EMPTY PM_ERR_LIM_VALUE PM_ERR_NO_RUNNING_PROJECT PM_ERR_NO_TASK PM_ERR_NOT_VALID_RECOVER_ACTION PM_ERR_OPERATION_LOST PM_ERR_PALLET_EMPTY PM_ERR_PALLET_REDUCED PM_ERR_PART_VAL PM_ERR_PROJ_NOT_FOUND PM_ERR_REDO_LAST_PICK_REJECTED PM_ERR_TIMEOUT PM_ERR_WA_NOT_FOUND PM_ERR_WOBJ PM_ERR_WORKAREA_EXPECTED PM_ERR_WRONG_FLOW_STATE
    621  syn keyword rapidConstant PM_ACK PM_NACK PM_LOST PM_RECOVER_CONTINUE_OPERATION PM_RECOVER_REDO_LAYER PM_RECOVER_NEXT_PALLET PM_RECOVER_REDO_LAST_PICK PM_FLOW_ERROR PM_FLOW_FINISH_CYCLE PM_FLOW_FINISH_LAYER PM_FLOW_FINISH_PALLET PM_FLOW_RUNNING PM_FLOW_STOP_IMMEDIATELY PM_FLOW_STOPPED PM_FLOW_STOPPING_AFTER_CYCLE PM_FLOW_STOPPING_AFTER_LAYER PM_FLOW_STOPPING_AFTER_PALLET PM_APPROACH_POS PM_DEPART_POS PM_TARGET_POS PM_EVENT_PROC PM_EVENT_DO PM_EVENT_GO PM_MOVE_JOINT PM_MOVE_LIN PM_SEARCH_X PM_SEARCH_Y PM_SEARCH_Z PM_SING_AREA_OFF PM_SING_AREA_WRI PM_STOP_NOT_USED PM_STOP PM_PSTOP PM_SSTOP PM_PROJECT_STOPPED PM_PROJECT_STOPPING PM_PROJECT_STARTING PM_PROJECT_RUNNING PM_PROJECT_ERROR
    622  syn keyword rapidConstant MaxToolAngle MinToolAngle
    623  " other constants
    624  syn keyword rapidConstant GAP_SERVICE_TYPE GAP_SETUP_TYPE GAP_STATE_IDLE GAP_STATE_PART GAP_STATE_SERV GAP_STATE_SETUP GAP_STATE_UNKN GAP_TASK_NAME GAP_TASK_NO GAP_SHOW_ALWAYS GAP_SHOW_NEVER GAP_SHOW_SAFE GAP_SHOW_SERVICE
    625  syn keyword rapidConstant EOF EOF_BIN EOF_NUM
    626  syn keyword rapidConstant END_OF_LIST WAIT_MAX
    627  syn keyword rapidErrNo ERRNO
    628  syn keyword rapidIntNo INTNO
    629  " VW Konzernstandard VWKS_1.07.02
    630  syn keyword rapidIntNo KG_UNDEFINIERT KG_LETZTEPOS KG_GREIFPOS KG_ZWISCHENPOS KG_TOOLINFO KG_GREIFPOSKORR
    631  syn keyword rapidIntNo BA1 BA2
    632  syn keyword rapidIntNo SetupXY SetupZ KorrekturXY KorrekturZ
    633  if g:rapidGroupName
    634    highlight default link rapidConstant Sysvars
    635    highlight default link rapidErrNo Sysvars
    636    highlight default link rapidIntNo Sysvars
    637  endif
    638  " }}} ERRNO Constants
    639 
    640  " Error {{{
    641  if get(g:,'rapidShowError',1)
    642    "
    643    " vars or funcs >32 chars are not possible in rapid. a234567890123456789012345
    644    syn match rapidErrorIdentifierNameTooLong /\k\{33,}/ containedin=rapidFunction,rapidNames,rapidLabel
    645    highlight default link rapidErrorIdentifierNameTooLong Error
    646    "
    647    " a == b + 1
    648    syn match rapidErrorShouldBeColonEqual /\c\v%(^\s*%(%(TASK\s+|LOCAL\s+)?%(VAR|PERS|CONST)\s+\k+\s+)?\k+%(\k|[.{},*/+-])*\s*)@<=\=/
    649    highlight default link rapidErrorShouldBeColonEqual Error
    650    "
    651    " WaitUntil a==b
    652    syn match rapidErrorShouldBeEqual    /\c\v%(^\s*%(Return|WaitUntil|while)>[^!\\]+[^!<>])@<=%(\=|:)\=/
    653    syn match rapidErrorShouldBeEqual    /\c\v%(^\s*%(if|elseif)>[^!\\]+[^!<>])@<=%(\=|:)\=\ze[^!\\]+<then>/
    654    highlight default link rapidErrorShouldBeEqual Error
    655    "
    656    " WaitUntil a=>b
    657    syn match rapidErrorShoudBeLessOrGreaterEqual /\c\v%(^\s*%(Return|WaitUntil|if|elseif|while)>[^!]+[^!<>])@<=\=[><]/
    658    highlight default link rapidErrorShoudBeLessOrGreaterEqual Error
    659    "
    660    " WaitUntil a><b
    661    syn match rapidErrorShouldBeLessGreater /\c\v%(^\s*%(Return|WaitUntil|if|elseif|while)[^!]+)@<=\>\s*\</
    662    highlight default link rapidErrorShouldBeLessGreater Error
    663    "
    664    " if (a==5) (b==6)
    665    syn match rapidErrorMissingOperator /\c\v%(^\s*%(Return|WaitUntil|if|elseif|while)[^!]+[^!])@<=\)\s*\(/
    666    highlight default link rapidErrorMissingOperator Error
    667    "
    668    " "for" missing "from"
    669    syn match rapidErrorMissingFrom /\c\v^\s*for\s+%([[:upper:][:lower:]]%(\k|[.{},*/+-])*\s+from)@!\S+\s+\S+/
    670    highlight default link rapidErrorMissingFrom Error
    671    "
    672    "
    673  endif
    674  " }}} Error
    675 
    676 " }}}
    677 endif
    678 
    679 " common Error {{{
    680 if get(g:,'rapidShowError',1)
    681  "
    682  " This error must be defined after rapidString
    683  " string too long
    684  " syn match rapidErrorStringTooLong /\v%("%(""|\\\\|\\\x\x|[^"\\]){80})@240<=%([^"]|"{2})+/ contained contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash
    685  highlight default link rapidErrorStringTooLong Error
    686  "
    687 endif
    688 
    689 " }}} Error
    690 
    691 " Finish {{{
    692 let &cpo = s:keepcpo
    693 unlet s:keepcpo
    694 
    695 let b:current_syntax = "rapid"
    696 " }}} Finish
    697 
    698 " vim:sw=2 sts=2 et fdm=marker