diff options
author | Christian Clason <c.clason@uni-graz.at> | 2022-04-19 15:14:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-19 15:14:17 +0200 |
commit | 0124a7bfa9e27796e561cb0b3a045b9327bf7077 (patch) | |
tree | 86f767630011a459ab189e0b5455b48abd2ab1c8 /runtime/syntax | |
parent | 147cc60d24f093b5154824889f2151489774ef33 (diff) | |
download | rneovim-0124a7bfa9e27796e561cb0b3a045b9327bf7077.tar.gz rneovim-0124a7bfa9e27796e561cb0b3a045b9327bf7077.tar.bz2 rneovim-0124a7bfa9e27796e561cb0b3a045b9327bf7077.zip |
vim-patch:75ab590f8504 (#18170)
Update runtime files
https://github.com/vim/vim/commit/75ab590f8504a8912ca0b8c58f6b897bb7a34f07
omit builtin.txt change to `expand()` (depends on 8.2.4726)
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/krl.vim | 458 | ||||
-rw-r--r-- | runtime/syntax/openscad.vim | 129 | ||||
-rw-r--r-- | runtime/syntax/synload.vim | 2 | ||||
-rw-r--r-- | runtime/syntax/syntax.vim | 2 |
4 files changed, 589 insertions, 2 deletions
diff --git a/runtime/syntax/krl.vim b/runtime/syntax/krl.vim new file mode 100644 index 0000000000..a50790841e --- /dev/null +++ b/runtime/syntax/krl.vim @@ -0,0 +1,458 @@ +" Vim syntax file +" Language: Kuka Robot Language +" Maintainer: Patrick Meiser-Knosowski <knosowski@graeffrobotics.de> +" Version: 3.0.0 +" Last Change: 18. Apr 2022 +" Credits: Thanks for contributions to this to Michael Jagusch +" Thanks for beta testing to Thomas Baginski +" +" Note to self: +" for testing perfomance +" open a 1000 lines file. +" :syntime on +" G +" hold down CTRL-U until reaching top +" :syntime report + +" Init {{{ +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +" if colorscheme is tortus(less)? krlGroupName defaults to 1 +if get(g:, 'colors_name', " ") =~ '\<tortus' + \&& !exists("g:krlGroupName") + let g:krlGroupName=1 +endif +" krlGroupName defaults to 0 if it's not initialized yet or 0 +if !get(g:, "krlGroupName", 0) + let g:krlGroupName = 0 +endif + +" krl does ignore case +syn case ignore +" take #, $ and & into keyword (syntax only) +syn iskeyword @,48-57,_,192-255,#,$,& +" spell checking +syn spell notoplevel +" }}} init + +" Comment and Folding {{{ + +" Special Comment + +" TODO Comment +syn keyword krlTodo contained TODO FIXME XXX +highlight default link krlTodo Todo + +" Debug Comment +syn keyword krlDebug contained DEBUG +highlight default link krlDebug Debug + +" Comment +" none move fold comment until second ; +syn match krlFoldComment /\c\v^\s*;\s*%(end)?fold>[^;]*/ containedin=krlFold contains=krlSingleQuoteString,krlInteger,krlFloat,krlMovement,krlDelimiter,krlBoolean +highlight default link krlFoldComment Comment + +" move fold comment until second ; +syn match krlMoveFoldComment /\c\v^\s*;\s*fold>[^;]*<s?%(ptp|lin|circ|spl)(_rel)?>[^;]*/ containedin=krlFold contains=krlInteger,krlFloat,krlMovement,krlDelimiter +highlight default link krlMoveFoldComment Comment + +" things to highlight in a fold line +syn keyword krlFoldHighlights CONT IN SYN OUT containedin=krlFoldComment +syn match krlFoldHighlights /\c\v<(M|F|E|A|t|i|bin|binin|UP|SPSMAKRO)\d+>/ containedin=krlFoldComment +if g:krlGroupName + highlight default link krlFoldHighlights Sysvars +else + " default color for Fold Highlights +endif +syn keyword krlVkrcFoldConstants EIN AUS containedin=krlFoldComment +highlight default link krlVkrcFoldConstants Boolean + +" Comment without Fold, also includes endfold lines and fold line part after second ; +syn match krlComment /\c\v;\s*%(<%(end)?fold>)@!.*$/ containedin=krlFold contains=krlTodo,krlDebug,@Spell +" Commented out Fold line: "; ;FOLD PTP..." +syn match krlComment /\c\v^\s*;\s*;.*$/ contains=krlTodo,krlDebug +highlight default link krlComment Comment + +if has("conceal") && get(g:, 'krlConcealFoldTail', 1) + syn match krlConcealFoldTail /\c\v(^\s*;\s*fold[^;]*)@250<=;%(--|\s*<fold>|\s*<endfold>)@!.*$/ transparent containedin=krlComment conceal cchar=* +endif +" }}} Comment and Folding + +" Header {{{ +syn match krlHeader /&\a\w*/ +highlight default link krlHeader PreProc +" }}} Header + +" Operator {{{ +" Boolean operator +syn keyword krlBoolOperator and or exor not b_and b_or b_exor b_not +highlight default link krlBoolOperator Operator +" Arithmetic operator +syn match krlArithOperator /[+-]/ containedin=krlFloat +syn match krlArithOperator /[*/]/ +highlight default link krlArithOperator Operator +" Compare operator +syn match krlCompOperator /[<>=]/ +highlight default link krlCompOperator Operator +" Geometric operator +" Do not move the : operator +" Must be present befor krlParamdef +syn match krlGeomOperator /[:]/ +" syn match krlGeomOperator /[:]/ containedin=krlLabel,krlParamdef +highlight default link krlGeomOperator Operator +" }}} Operator + +" Type, StorageClass and Typedef {{{ +" Simple data types +syn keyword krlType bool char real int containedin=krlAnyType +" External program and function +syn keyword krlType ext extfct extfctp extp containedin=krlAnyType +" Communication +syn keyword krlType signal channel containedin=krlAnyType +highlight default link krlType Type +" StorageClass +syn keyword krlStorageClass decl global const struc enum +highlight default link krlStorageClass StorageClass +" .dat file public +syn keyword krlDatStorageClass public +highlight default link krlDatStorageClass StorageClass +" Parameter StorageClass +" Do not move the :in/:out +" Must be present after krlGeomOperator +syn match krlParamdef /[:]\s*in\>/ +syn match krlParamdef /[:]\s*out\>/ +highlight default link krlParamdef StorageClass +" Not a typedef but I like to have those highlighted +" different then types, structures or strorage classes +syn keyword krlTypedef DEF DEFFCT ENDFCT DEFDAT ENDDAT +syn match krlTypedef /^\s*END\>/ +highlight default link krlTypedef Typedef +" }}} Type, StorageClass and Typedef + +" Delimiter {{{ +syn match krlDelimiter /[\[\](),\\]/ +highlight default link krlDelimiter Delimiter +" }}} Delimiter + +" Constant values {{{ +" Boolean +syn keyword krlBoolean true false containedin=krlStructVal +highlight default link krlBoolean Boolean +" Binary integer +syn match krlBinaryInt /'b[01]\+'/ containedin=krlStructVal +highlight default link krlBinaryInt Number +" Hexadecimal integer +syn match krlHexInt /'h[0-9a-fA-F]\+'/ containedin=krlStructVal +highlight default link krlHexInt Number +" Integer +syn match krlInteger /\W\@1<=[+-]\?\d\+/ containedin=krlStructVal,krlFloat contains=krlArithOperator +highlight default link krlInteger Number +" Float +syn match krlFloat /\v\W@1<=[+-]?\d+\.?\d*%(\s*[eE][+-]?\d+)?/ containedin=krlStructVal +highlight default link krlFloat Float +" String +syn region krlString start=/"/ end=/"/ oneline containedin=krlStructVal contains=@Spell +highlight default link krlString String +syn match krlSpecialChar /[|]/ containedin=krlString +highlight default link krlSpecialChar SpecialChar +" String within a fold line +syn region krlSingleQuoteString start=/'/ end=/'/ oneline contained contains=@Spell +highlight default link krlSingleQuoteString String +" Enum +syn match krlEnumVal /#\s*\a\w*/ containedin=krlStructVal +highlight default link krlEnumVal Constant +" }}} Constant values + +" Predefined Structure and Enum {{{ +" Predefined structures and enums found in +" /r1/mada/$*.dat, /r1/steu/$*.dat and +" /r1/system/$config.dat as well as +" basisTech, gripperTech and spotTech +" +" Predefined data types found in krc1 +syn keyword krlStructure servopara keymove powermodul trace techangle tech techfct techcps techfctctrl axis_inc axis_cal date display_var pro_ip con bus +syn keyword krlEnum ident_state sig_state move_state async_state emt_mode boxmode msg_prm_typ msg_typ cmd_stat asys trace_state trace_mode direction techsys techgeoref techclass techmode hpu_key_val pro_state eax transsys mode_move cosys device rotsys emstop cause_t +" +" Predefined data types found in kss functions +syn keyword krlEnum ediagstate rdc_fs_state ret_c_psync_e var_type cancel_psync_e sys_vars +syn keyword krlStructure siginf rw_rdc_file rw_mam_file diagpar_t error_t stopmess case_sense_t msgbuf_t e3pos e3axis diagopt_t +" +" Predefined structures for movement +syn keyword krlStructure frame e6pos pos e6axis axis +syn keyword krlStructure fdat ldat pdat +syn keyword krlStructure load inertia +" +" Predefined structures for shapes +syn keyword krlStructure axbox cylinder box +" +" Predefined structures and enums found in /r1/mada/$machine.dat +syn keyword krlStructure cp fra acc_car jerk_struc dhart spin trpspin ex_kin et_ax maxtool +syn keyword krlEnum individual_mames supply_voltage kinclass main_axis wrist_axis sw_onoff +" +" Predefined structures and enums found in /r1/mada/$robcor.dat +" syn keyword krlStructure +syn keyword krlEnum adap_acc model_type control_parameter eko_mode +" +" Predefined structures and enums found in /steu/mada/$custom.dat +syn keyword krlStructure pro_io_t ser ext_mod_t coop_krc ws_config bin_type coop_update_t ldc_reaction +syn keyword krlEnum axis_of_coordinates spline_para_variant target_status cp_vel_type cp_statmon +" +" Predefined structures and enums found in /steu/mada/$machine.dat +syn keyword krlStructure emstop_path boxstatesafein boxstatesafeout +syn keyword krlEnum digincode +" +" Predefined structures and enums found in /steu/mada/$option.dat +syn keyword krlStructure msg_t +" syn keyword krlEnum +" +" Predefined structures and enums found in /r1/system/$config.dat +" BasisTech +syn keyword krlStructure dig_out_type ctrl_in_t ctrl_out_t fct_out_t fct_in_t odat basis_sugg_t out_sugg_t md_state machine_def_t machine_tool_t machine_frame_t trigger_para constvel_para condstop_para adat tm_sugg_t tqm_tqdat_t sps_prog_type +syn keyword krlEnum bas_command out_modetype ipo_m_t apo_mode_t funct_type p00_command timer_actiontype +" +" GripperTech +syn keyword krlStructure grp_typ grp_types grp_sugg_t +syn keyword krlEnum on_off_typ apo_typ +" +" SpotTech +syn keyword krlStructure spot_type spot_sugg_t +syn keyword krlEnum s_command s_pair_slct command_retr +" +" VW +syn keyword krlStructure vw_mpara_typ zangentyp zangenbedingung ibszangentyp last_ibs_typ verr_typ verrcheck_t t_fb_state kollisionsdaten state_t modus_t +syn keyword krlEnum synctype dir_typ subtype ari_typ bool_typ vw_command ibgn_command vw_user_cmd move_types adv_t_type bas_type ibs_mode_typ vw_user_cmd pro_mode mode_op +" +" ProgCoop +syn keyword krlStructure ydat +" syn keyword krlEnum +" +" bas.src +syn keyword krlStructure cont +syn keyword krlEnum esys ipo_mode circ_mode circ_type ori_type var_state +" +" MsgLib.src +syn keyword krlStructure KrlMsg_T KrlMsgParType_T KrlMsgPar_T KrlMsgOpt_T KrlMsgDlgSK_T +syn keyword krlEnum EKrlMsgType +" +highlight default link krlStructure Structure +highlight default link krlEnum Structure +" }}} Predefined Structure and Enum + +" System variable {{{ +syn match krlSysvars /\<\$\a[a-zA-Z0-9_.]*/ +if g:krlGroupName + highlight default link krlSysvars Sysvars +else + " default color for Sysvars +endif +" }}} System variable + +" Statements, keywords et al {{{ +" continue +syn keyword krlContinue continue +if g:krlGroupName + highlight default link krlContinue Continue +else + highlight default link krlContinue Statement +endif +" interrupt +syn match krlStatement /\v\c%(<global>\s+)?<INTERRUPT>%(\s+<decl>)?/ contains=krlStorageClass +" keywords +syn keyword krlStatement wait on off enable disable stop trigger with when distance onstart delay do prio import is minimum maximum confirm on_error_proceed +syn match krlStatement /\v\c%(<wait\s+)@7<=<sec>/ +syn match krlStatement /\v\c%(<when\s+)@7<=<path>/ +highlight default link krlStatement Statement +" Conditional +syn keyword krlConditional if then else endif switch case default endswitch skip endskip +highlight default link krlConditional Conditional +" Repeat +syn keyword krlRepeat for to step endfor while endwhile repeat until loop endloop exit +highlight default link krlRepeat Repeat +" Label +syn keyword krlLabel goto +syn match krlLabel /^\s*\w\+:\ze\s*\%(;.*\)\?$/ +highlight default link krlLabel Label +" Keyword +syn keyword krlKeyword anin anout digin +highlight default link krlKeyword Keyword +" Exception +syn keyword krlException return resume halt +highlight default link krlException Exception +" }}} Statements, keywords et al + +" special keywords for movement commands {{{ +syn keyword krlMovement PTP PTP_REL LIN LIN_REL CIRC CIRC_REL SPL SPL_REL SPTP SPTP_REL SLIN SLIN_REL SCIRC SCIRC_REL +syn keyword krlMovement ASYPTP ASYCONT ASYSTOP ASYCANCEL MOVE_EMI +syn match krlMovement /\v\c^\s*<BRAKE(\s+F)?>/ +if g:krlGroupName + highlight default link krlMovement Movement +else + highlight default link krlMovement Special +endif +" movement modifiers +syn match krlMoveBlockInst /\c\v^\s*TIME_BLOCK\s+(START|PART|END)/ +syn match krlMoveBlockInst /\c\v^\s*CONST_VEL\s+(START|END)/ +syn keyword krlMoveBlockInst ptp_spline spline endspline +highlight default link krlMoveBlockInst Statement +syn keyword krlMoveMod ca c_ptp c_dis c_vel c_ori c_spl +if g:krlGroupName + highlight default link krlMoveMod Movement +else + highlight default link krlMoveMod Special +endif +" }}} special keywords for movement commands + +" Structure value {{{ +" avoid coloring structure component names +syn match krlNames /\.[a-zA-Z_][.a-zA-Z0-9_$]*/ +syn match krlNames contained /[a-zA-Z_][.a-zA-Z0-9_$]*/ +" highlight default link krlNames None +" Structure value +syn region krlStructVal start=/{/ end=/}/ oneline containedin=krlStructVal contains=krlNames +highlight default link krlStructVal Delimiter +" }}} Structure value + +" BuildInFunction {{{ +syn keyword krlBuildInFunction contained Pulse +syn keyword krlBuildInFunction contained m_comment +syn keyword krlBuildInFunction contained is_key_pressed +syn keyword krlBuildInFunction contained set_opt_filter +syn keyword krlBuildInFunction contained timer_limit +syn keyword krlBuildInFunction contained tool_adj +syn keyword krlBuildInFunction contained FRand +syn keyword krlBuildInFunction contained ExecFunc eb_test EB EK EO LK mbx_rec +" safe robot +syn keyword krlbuildinfunction contained get_AxesMask get_BrakeTest_Time +" math +syn keyword krlBuildInFunction contained Abs Sin Cos Acos Tan Atan Atan2 Sqrt +syn keyword krlBuildInFunction contained Forward Inverse inv_pos +" cFoo sFoo +syn keyword krlBuildInFunction contained cClose cOpen cRead cWrite sRead sWrite +" string +syn keyword krlBuildInFunction contained StrToBool StrToInt StrToReal StrToString StrToFrame StrToPos StrToE3Pos StrToE6Pos StrToAxis StrToE3Axis StrToE6Axis +syn keyword krlBuildInFunction contained StrAdd StrClear StrCopy StrComp StrFind StrLen StrDeclLen StrToBool StrToInt StrToReal StrToString +" diag +syn keyword krlBuildInFunction contained diag_start diag_stop get_DiagState +" rdc mam pid +syn keyword krlBuildInFunction contained CheckPidOnRdc check_mam_on_rdc get_rdc_fs_state +syn keyword krlBuildInFunction contained set_mam_on_hd copy_mam_hd_to_rdc copy_mam_rdc_to_hd +syn keyword krlBuildInFunction contained PidToHd PidToRdc +syn keyword krlBuildInFunction contained cal_to_rdc rdc_file_to_hd +syn keyword krlBuildInFunction contained delete_pid_on_rdc delete_rdc_content +syn keyword krlBuildInFunction contained create_rdc_archive restore_rdc_archive +" ioctl +syn keyword krlBuildInFunction contained IOCtl cIOCtl +syn keyword krlBuildInFunction contained WSpaceGive WSpaceTake +" sync +syn keyword krlBuildInFunction contained Sync SyncCmd CancelProgSync +" remote +syn keyword krlBuildInFunction contained RemoteCmd RemoteRead +" msg/dlg +syn keyword krlBuildInFunction contained IsMessageSet clear_KrlMsg get_MsgBuffer exists_KrlDlg exists_KrlMsg set_KrlDlg set_KrlDlgAnswer set_KrlMsg +" robvers +syn keyword krlBuildInFunction contained maximize_UsedxRobvers set_UsedxRobvers +" md_foo +syn keyword krlBuildInFunction contained md_Cmd md_GetState md_SetState md_Asgn +" emi +syn keyword krlBuildInFunction contained emi_ActPos emi_EndPos emi_StartPos emi_RecState emi_RecName +" var +syn keyword krlBuildInFunction contained cast_from cast_to +syn keyword krlBuildInFunction contained GetVarsize GetCycDef get_sig_inf get_decl_place VarType VarState +" sys +syn keyword krlBuildInFunction contained GetSysState get_system_data set_system_data set_system_data_delayed +" err +syn keyword krlBuildInFunction contained err_clear err_raise +" motion +syn keyword krlBuildInFunction contained delete_backward_buffer rob_stop rob_stop_release set_brake_delay suppress_repositioning VectorMoveOn VectorMoveOff +" torque +syn keyword krlBuildInFunction contained set_torque_limits reset_torque_limits +" krc1 +syn keyword krlBuildInFunction contained cLcopy cCurpos cNew cClear cRelease cKey +if g:krlGroupName + highlight default link krlBuildInFunction BuildInFunction +else + highlight default link krlBuildInFunction Function +endif +" }}} BuildInFunction + +" Function {{{ +syn match krlFunction /[a-zA-Z_]\w* *(/me=e-1 contains=krlBuildInFunction +highlight default link krlFunction Function +" }}} Function + +" Error {{{ +if get(g:, 'krlShowError', 1) + " some more or less common typos + " + " vars or funcs >24 chars are not possible in krl. a234567890123456789012345 + syn match krlError0 /\w\{25,}/ containedin=krlFunction,krlNames,krlLabel,krlAnyType,krlEnumVal,krlSysvars + " + " should be interrupt (on|off) \w+ + syn match krlError1 /\vinterrupt[ \t(]+[_$a-zA-Z0-9]+[_$a-zA-Z0-9.\[\]()+\-*/]*[ \t)]+o%(n|ff)>/ + " + " for bla==5 to 7... + " || + syn match krlError3 /\v%(^\s*for%(\(|\s)+[_$a-zA-Z]+[_$a-zA-Z0-9.\[\]()+\-*/ ]*\s*)@<=[:=]\=/ + " + " TODO optimize performance + " wait for a=b + " | + syn match krlError4 /\v%(^\s*%(return|wait\s+for|if|while|until|%(global\s+)?interrupt\s+decl)>[^;]+[^;<>=])@<=\=[^=]/ + " + " wait for a><b + " || + syn match krlError5 /\v%(^\s*%(return|wait\s+for|if|while|until|%(global\s+)?interrupt\s+decl)>[^;]+)@<=\>\s*\</ + " + " if (a==5) (b==6) ... + " ||| + syn match krlError6 /\v%(^\s*%(return|wait\s+for|if|while|until|%(global\s+)?interrupt\s+decl)>[^;]+[^;])@<=\)\s*\(/ + " + " TODO optimize performance + " a == b + 1 + " a := b + 1 + " || + syn match krlError7 /\v%(^\s*%(return|wait\s+for|if|while|until|%(global\s+)?interrupt\s+decl)>[^;]+[^;])@1<!%(^\s*[_$a-zA-Z]+[_$a-zA-Z0-9.\[\],+\-*/]*\s*)@<=[:=]\=/ + syn match krlError7 /\v\c%(^\s*%(decl\s+)%(global\s+)?%(const\s+)?\w+\s+\w+\s*)@<=[:=]\=/ + syn match krlError7 /\v\c%(^\s*%(decl\s+)?%(global\s+)?%(const\s+)?%(bool\s+|int\s+|real\s+|char\s+)\w+\s*)@<=[:=]\=/ + " + " this one is tricky. Make sure this does not match trigger instructions; OK, next try, now search for false positives + " TODO optimize performance + " a = b and c or (int1=int2) + " | + syn match krlError8 /\v(^\s*[_$a-zA-Z]+[_$a-zA-Z0-9.\[\]()+\-*/]*\s*\=[^;]*[^;<>=])@<=\=\ze[^=]/ + " + " <(distance|delay|prio)> := + " <(distance|delay|prio)> == + " || + syn match krlError9 /\v(^[^;]*<(distance|delay|prio|minimum|maximum)\s*)@<=[:=]\=/ + " + " 'for', 'while' or 'repeat' followed by 'do' + syn match krlError10 /\c\v^\s*(until|while|for)>[^;]*<do>/ + " + highlight default link krlError0 Error + highlight default link krlError1 Error + highlight default link krlError2 Error + highlight default link krlError3 Error + highlight default link krlError4 Error + highlight default link krlError5 Error + highlight default link krlError6 Error + highlight default link krlError7 Error + highlight default link krlError8 Error + highlight default link krlError9 Error + highlight default link krlError10 Error +endif +" }}} Error + +" Finish {{{ +let &cpo = s:keepcpo +unlet s:keepcpo + +let b:current_syntax = "krl" +" }}} Finish + +" vim:sw=2 sts=2 et fdm=marker diff --git a/runtime/syntax/openscad.vim b/runtime/syntax/openscad.vim new file mode 100644 index 0000000000..1e20c743c4 --- /dev/null +++ b/runtime/syntax/openscad.vim @@ -0,0 +1,129 @@ +" Vim syntax file +" Language: OpenSCAD +" Maintainer: Niklas Adam <adam@oddodd.org> +" Last change: 2022-04-15 +" +" +" From salkin-mada/openscad.nvim +" Building on the work of Sirtaj Singh Kang and others for vim-openscad +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case ignore + +setlocal iskeyword=a-z,A-Z,48-57,_ + +syn match openscadAoperator "{" +syn match openscadAoperator "}" +syn match openscadLi "\[" +syn match openscadLi "\]" +syn match openscadPar "(" +syn match openscadPar ")" + +syn match openscadSpecialVariable "\$[a-zA-Z_]\+\>" display +syn match openscadModifier "^\s*[\*\!\#\%]" display + +syn match openscadBinaryoperator "+" +syn match openscadBinaryoperator "-" +syn match openscadBinaryoperator "*" +syn match openscadBinaryoperator "/" +syn match openscadBinaryoperator "%" +syn match openscadBinaryoperator "\*\*" +syn match openscadBinaryoperator "<" +syn match openscadBinaryoperator "<=" +syn match openscadBinaryoperator ">" +syn match openscadBinaryoperator ">=" +syn match openscadBinaryoperator "=" +syn match openscadBinaryoperator "==" +syn match openscadBinaryoperator "===" +syn match openscadBinaryoperator "!=" +syn match openscadBinaryoperator "!==" +syn match openscadBinaryoperator "&" +syn match openscadBinaryoperator "|" +syn match openscadBinaryoperator "<!" +syn match openscadBinaryoperator "?" +syn match openscadBinaryoperator "??" +syn match openscadBinaryoperator "!?" +syn match openscadBinaryoperator "!" +syn match openscadBinaryoperator "#" +syn match openscadBinaryoperator "_" +syn match openscadBinaryoperator "\.\." +syn match openscadBinaryoperator "\.\.\." +syn match openscadBinaryoperator "`" +syn match openscadBinaryoperator ":" + +syn keyword openscadFunctionDef function nextgroup=openscadFunction skipwhite skipempty +syn match openscadFunction /\<\h\w*\>/ contained display + +syn keyword openscadModuleDef module nextgroup=openscadModule skipwhite skipempty +syn match openscadModule /\<\h\w*\>/ contained display + +syn keyword openscadStatement echo assign let assert +syn keyword openscadConditional if else +syn keyword openscadRepeat for intersection_for +syn keyword openscadInclude include use +syn keyword openscadCsgKeyword union difference intersection render intersection_for +syn keyword openscadTransform scale rotate translate resize mirror multmatrix color minkowski hull projection linear_extrude rotate_extrude offset +syn keyword openscadPrimitiveSolid cube sphere cylinder polyhedron surface +syn keyword openscadPrimitive2D square circle polygon import_dxf text +syn keyword openscadPrimitiveImport import child children + +syn match openscadNumbers "\<\d\|\.\d" contains=openscadNumber display transparent +syn match openscadNumber "\d\+" display contained +syn match openscadNumber "\.\d\+" display contained + +syn region openscadString start=/"/ skip=/\\"/ end=/"/ + +syn keyword openscadBoolean true false + +syn keyword openscadCommentTodo TODO FIXME XXX NOTE contained display +syn match openscadInlineComment ://.*$: contains=openscadCommentTodo +syn region openscadBlockComment start=:/\*: end=:\*/: fold contains=openscadCommentTodo + +syn region openscadBlock start="{" end="}" transparent fold +syn region openscadVector start="\[" end="\]" transparent fold + +syn keyword openscadBuiltin abs acos asin atan atan2 ceil cos exp floor ln log +syn keyword openscadBuiltin lookup max min pow rands round sign sin sqrt tan +syn keyword openscadBuiltin str len search version version_num concat chr ord cross norm +syn keyword openscadBuiltin parent_module +syn keyword openscadBuiltin dxf_cross dxf_dim +syn keyword openscadBuiltinSpecial PI undef + +""""""""""""""""""""""""""""""""""""""""" +" linkage +""""""""""""""""""""""""""""""""""""""""" +hi def link openscadFunctionDef Structure +hi def link openscadAoperator Function +hi def link openscadLi Function +" hi def link openscadPar Structure +hi def link openscadBuiltinSpecial Special +hi def link openscadBinaryoperator Special +hi def link openscadFunction Function +hi def link openscadModuleDef Structure +hi def link openscadModule Function +hi def link openscadBlockComment Comment +hi def link openscadBoolean Boolean +hi def link openscadBuiltin Function +hi def link openscadConditional Conditional +hi def link openscadCsgKeyword Structure +hi def link openscadInclude Include +hi def link openscadInlineComment Comment +hi def link openscadModifier Special +hi def link openscadStatement Statement +hi def link openscadNumbers Number +hi def link openscadNumber Number +hi def link openscadPrimitiveSolid Keyword +hi def link openscadPrimitive2D Keyword +hi def link openscadPrimitiveImport Keyword +hi def link openscadRepeat Repeat +hi def link openscadSpecialVariable Special +hi def link openscadString String +hi def link openscadTransform Statement +hi def link openscadCommentTodo Todo + +let b:current_syntax = 'openscad' diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim index bfcd3b06da..b88cd95103 100644 --- a/runtime/syntax/synload.vim +++ b/runtime/syntax/synload.vim @@ -1,6 +1,6 @@ " Vim syntax support file " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2020 Apr 13 +" Last Change: 2022 Apr 12 " This file sets up for syntax highlighting. " It is loaded from "syntax.vim" and "manual.vim". diff --git a/runtime/syntax/syntax.vim b/runtime/syntax/syntax.vim index f274d93f4f..ac7dc314b9 100644 --- a/runtime/syntax/syntax.vim +++ b/runtime/syntax/syntax.vim @@ -1,6 +1,6 @@ " Vim syntax support file " Maintainer: Bram Moolenaar <Bram@vim.org> -" Last Change: 2001 Sep 04 +" Last Change: 2022 Apr 12 " This file is used for ":syntax on". " It installs the autocommands and starts highlighting for all buffers. |