├── .gitignore ├── CHANGES.txt ├── CONTRIBUTORS.txt ├── Comments.tmPreferences ├── For Int Loop.sublime-snippet ├── Foreach Loop.sublime-snippet ├── LICENSE.txt ├── Point Cloud Iterate Excluding Search Point VEXpression.sublime-snippet ├── Point Cloud Iterate Excluding Search Point.sublime-snippet ├── Point Cloud Iterate VEXpression.sublime-snippet ├── Point Cloud Iterate.sublime-snippet ├── README.md ├── VEX Build and Run.sublime-build ├── VEX Build.sublime-build ├── VEX.YAML-tmLanguage ├── VEX.sublime-completions ├── VEX.sublime-settings ├── VEX.tmLanguage ├── src ├── compile_and_run.py └── vcc_utils.py └── syntax_lists ├── VexComments.txt ├── VexContexts.txt ├── VexDataTypes.txt ├── VexFunctions.txt ├── VexKeywords.txt ├── VexMacros.txt ├── VexOperators.txt └── VexVariables.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.cache 3 | functions_old.txt 4 | combine_functions.py 5 | functions_vim.txt 6 | VEX.sublime-project 7 | VEX.sublime-workspace -------------------------------------------------------------------------------- /CHANGES.txt: -------------------------------------------------------------------------------- 1 | Version 1.5.0 2 | ================================================================================================== 3 | Houdini version 16.0 update. 4 | 5 | Changes: 6 | Function highlighting and completions updated to support 16.0. 7 | 8 | Todo: 9 | Raw string support. 10 | 11 | 12 | Version 1.4.0 13 | ================================================================================================== 14 | Houdini version 15.5 update. 15 | 16 | Changes: 17 | Function highlighting and completions ammended to support 15.5. 18 | Void type added. 19 | Added export and const as storage modifiers. 20 | Pulled Bonsak's fix for the build command on OSX. 21 | 22 | 23 | Version 1.3.0 24 | ================================================================================================== 25 | Houdini version 15.0 update. 26 | 27 | Changes: 28 | Functions added: 29 | addvisualizer,agentaddclip,assert_enabled,attrib,attribclass,error,expand_udim, 30 | fuzzify,fuzzy_and,fuzzy_defuzz_centroid,fuzzy_nand,fuzzy_nor,fuzzy_not,fuzzy_nxor, 31 | fuzzy_or,fuzzy_xor,getattrib,getsmoothP,hasattrib,idtopoint,idtoprim,invertexgroup, 32 | nametopoint,nametoprim,nvertices,nverticesgroup,opdigits,opfullpath,pgfind,print_once, 33 | product,relativepath,resample_linear,setvertexgroup,smoothrotation,splitpath,sum, 34 | uvunwrap,warning 35 | 36 | Snippets: 37 | 1) Fixed PC Iterate typo. 38 | 39 | 40 | Version 1.2.0 41 | ================================================================================================== 42 | Houdini version 14.0 update. 43 | 44 | Changes: 45 | Contexts: 46 | 1) Renamed cop to cop2 (still 11 total as before). 47 | 48 | Keywords: 49 | 2) Added illuminance (was incorrectly listed as a function). 50 | 51 | Types: 52 | 1) Added matrix2 for houdini 14 (vector2 was already in the definition). 53 | 54 | Functions: 55 | 1) Removed gather/illuminance as they are technically special control structures. 56 | 2) Updated definitions for Houdini 14 (600+ function names now). 57 | 58 | Completions: 59 | 1) Basic completions for all functions. 60 | 2) The python script which queries vcc to generate this data is included. 61 | 62 | Snippets: 63 | 1) Cleanup on pcopen and for/foreach snippets. 64 | 65 | Development: 66 | 1) Definitions are now developed in yaml instead of JSON. Still using AAA package dev. 67 | 2) Project reorganized. Python files moved to 'src' directory. 68 | 3) Python utility for querying vcc and generating completions for all functions and 69 | overloads. 70 | 71 | Todo: 72 | 1) Special treatment of global variables? 73 | 2) Context in function hints and possibly completions without arguments first. 74 | 3) Fix 'void' completions. 75 | 4) Vex wrangle syntax definition. 76 | 5) Snippets for context skeletons. 77 | 78 | 79 | Version 1.1.0 80 | ================================================================================================== 81 | Houdini version 13 update. 82 | 83 | 84 | Version 1.0.0 85 | ================================================================================================== 86 | Houdini version 12 supported, initial public release. 87 | -------------------------------------------------------------------------------- /CONTRIBUTORS.txt: -------------------------------------------------------------------------------- 1 | Shawn Lipowski 2 | Bonsak Schiledrop -------------------------------------------------------------------------------- /Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.vex 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | // 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | /* 24 | 25 | 26 | name 27 | TM_COMMENT_END_2 28 | value 29 | */ 30 | 31 | 32 | name 33 | TM_COMMENT_DISABLE_INDENT_2 34 | value 35 | yes 36 | 37 | 38 | 39 | uuid 40 | b041c7c3-55e4-4080-a5c0-71c7983bf66c 41 | 42 | 43 | -------------------------------------------------------------------------------- /For Int Loop.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | for 4 | source.vex 5 | For Loop (int) 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /Foreach Loop.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | foreach 4 | source.vex 5 | Foreach Loop 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 Shawn Lipowski 2 | 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /Point Cloud Iterate Excluding Search Point VEXpression.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | source.vex 4 | Point Cloud Iterate Excluding Search Point (VEXpression) 5 | 24 | 25 | -------------------------------------------------------------------------------- /Point Cloud Iterate Excluding Search Point.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | source.vex 4 | Point Cloud Iterate Excluding Search Point (VEX) 5 | 24 | 25 | -------------------------------------------------------------------------------- /Point Cloud Iterate VEXpression.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | source.vex 4 | Point Cloud Iterate (VEXpression) 5 | 19 | 20 | -------------------------------------------------------------------------------- /Point Cloud Iterate.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | source.vex 4 | Point Cloud Iterate (VEX) 5 | 19 | 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VEX Syntax 2 | 3 | A [Sublime Text][3] package for Sidefx Software's VEX language which is used in the procedural visual effects software Houdini. With the Monokai color scheme selected: 4 | 5 |

6 | VEX Syntax Markup Example 7 |

8 | 9 | ### Installation 10 | 11 | #### [Package Control][2] 12 | 13 | Open the Command Palette (Shift-Cmd-P in OS X, Shift-Ctrl-P in Linux/Windows). 14 | Select "Package Control: Install Package". Find and install VEX Syntax. 15 | 16 | Package Control will automatically keep VEX Syntax up to date. 17 | 18 | #### Manual Installation 19 | 20 | First you must locate the Sublime Text [packages folder][1], then: 21 | 22 | Manual installation via git: 23 | 24 | cd /path/to/sublime/packages/folder 25 | git clone https://github.com/WhileRomeBurns/VEX_Syntax VEX_Syntax 26 | 27 | Manual installation without git: 28 | 29 | cd /path/to/sublime/packages/folder 30 | curl -L https://github.com/WhileRomeBurns/VEX_Syntax/tarball/master | tar xf - 31 | 32 | ### Contributing 33 | 34 | You can send pull requests via GitHub. Do *not* edit the `VEX.tmLanguage` file directly. Edit the `VEX.YAML-tmLanguage` file instead and build the `.tmLanguage` file 35 | from it using the _YAML to Property List_ build tool in 36 | [AAAPackageDev][4]. 37 | 38 | ### License (MIT) 39 | 40 | **Copyright © 2015 Shawn Lipowski** 41 | 42 | ``` 43 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 44 | 45 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 46 | 47 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 48 | ``` 49 | 50 | [1]: http://docs.sublimetext.info/en/latest/basic_concepts.html#the-packages-directory 51 | [2]: http://wbond.net/sublime_packages/package_control 52 | [3]: http://www.sublimetext.com/ 53 | [4]: https://github.com/SublimeText/AAAPackageDev 54 | -------------------------------------------------------------------------------- /VEX Build and Run.sublime-build: -------------------------------------------------------------------------------- 1 | { 2 | "cmd": ["python", "-u", "$packages/VEX Syntax/src/compile_and_run.py", "$file", "True"], 3 | "shell": true, 4 | "selector": "source.vex" 5 | } 6 | -------------------------------------------------------------------------------- /VEX Build.sublime-build: -------------------------------------------------------------------------------- 1 | { 2 | "cmd": ["python", "-u", "$packages/VEX Syntax/src/compile_and_run.py", "$file"], 3 | "shell": true, 4 | "selector": "source.vex", 5 | "osx": 6 | { 7 | "cmd": ["/Library/Frameworks/Houdini.framework/Versions/CUrrent/Resources/bin/vcc '${file}' -o '${file_path}/${file_base_name}.vex'"] 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /VEX.YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | name: VEX 3 | scopeName: source.vex 4 | fileTypes: [vfl] 5 | uuid: edd78512-59d9-4cb6-9733-a6adcc972160 6 | 7 | patterns: 8 | - comment: Defines the context of the VEX code. 9 | begin: \b(chop|cop2|cvex|displace|fog|image3d|light|pop|shadow|sop|surface)\b 10 | beginCaptures: 11 | '1': {name: keyword.context.vex} 12 | end: \b(\w*)\s?(\() 13 | endCaptures: 14 | '1': {name: entity.name.class.vex} 15 | '2': {name: punctuation.group.vex} 16 | 17 | - name: keyword.control.vex 18 | match: \b(break|continue|do|else|for|foreach|forpoints|function|gather|if|illuminance|return|while)\b 19 | 20 | - name: storage.modifier.vex 21 | match: \b(const|export)\b 22 | 23 | - name: storage.type.builtin.vex 24 | match: \b(bsdf|char|color|float|int|integer|matrix|matrix2|matrix3|matrix4|normal|string|struct|typedef|union|vector|vector2|vector4|void)\b 25 | 26 | - match: \b(Du|Dv|Dw|abs|accessframe|acos|addattrib|addattribute|adddetailattrib|addgroup|addpoint|addpointattrib|addprim|addprimattrib|addvariablename|addvertex|addvertexattrib|addvisualizer|agentaddclip|agentclipcatalog|agentclipchannel|agentcliplength|agentclipnames|agentclipsample|agentclipsamplelocal|agentclipsamplerate|agentclipsampleworld|agentcliptimes|agentcliptransformgroups|agentclipweights|agentcollisionlayer|agentcurrentlayer|agentlayerbindings|agentlayers|agentlayershapes|agentlocaltransform|agentlocaltransforms|agentrigchildren|agentrigfind|agentrigparent|agenttransformcount|agenttransformgroupmember|agenttransformgroups|agenttransformnames|agenttransformtolocal|agenttransformtoworld|agentworldtransform|agentworldtransforms|albedo|alphaname|ambient|anoise|append|area|argsort|array|ashikhmin|asin|assert_enabled|assign|atan|atan2|atof|atoi|atten|attrib|attribclass|attribsize|attribtype|attribtypeinfo|avg|binput|blackbody|blinn|blinnBRDF|bouncelabel|bouncemask|bumpmap|bumpmapA|bumpmapB|bumpmapG|bumpmapL|bumpmapR|bumpname|cbrt|ceil|ch|ch3|ch4|chattr|chend|chendf|chendt|chf|chi|chindex|chinput|chname|chnumchan|chp|chr|chramp|chrate|chreadbuf|chresizebuf|chs|chsetattr|chsraw|chstart|chstartf|chstartt|chv|chwritebuf|cinput|ckspline|clamp|clip|colormap|colorname|computenormal|concat|cone|cos|cosh|cracktransform|create_cdf|create_pdf|cross|cspline|ctransform|curlnoise|curlnoise2d|curlxnoise|curlxnoise2d|cvex_bsdf|degrees|depthmap|depthname|detail|detailattrib|detailattribsize|detailattribtype|detailattribtypeinfo|detailintrinsic|determinant|diffuse|diffuseBRDF|dihedral|dimport|distance|distance2|dot|dsmpixel|efit|eigenvalues|endswith|environment|erf|erf_inv|erfc|error|eulertoquaternion|eval_bsdf|exp|expand_udim|expandedgegroup|expandpointgroup|expandprimgroup|fastshadow|filamentsample|file_stat|filtershadow|filterstep|find|findattribval|findattribvalcount|finput|fit|fit01|fit10|fit11|floor|flownoise|flowpnoise|frac|fresnel|fromNDC|frontface|fuzzify|fuzzy_and|fuzzy_defuzz_centroid|fuzzy_nand|fuzzy_nor|fuzzy_not|fuzzy_nxor|fuzzy_or|fuzzy_xor|geoself|geounwrap|getattrib|getattribute|getbbox|getbbox_center|getbbox_max|getbbox_min|getbbox_size|getblurP|getbounces|getbounds|getcomp|getcomponents|getderiv|getfogname|getglobalraylevel|getgroupid|getlight|getlightid|getlightname|getlights|getlightscope|getlocalcurvature|getmaterial|getmaterialid|getobjectid|getobjectname|getphotonlight|getpointbbox|getpointbbox_center|getpointbbox_max|getpointbbox_min|getpointbbox_size|getprimid|getptextureid|getraylevel|getrayweight|getsamplestore|getscope|getsmoothP|getspace|getuvtangents|gradient|hair|hasattrib|hasdetailattrib|haslight|hasmetadata|hasplane|haspointattrib|hasprimattrib|hasvertexattrib|hedge_dstpoint|hedge_dstvertex|hedge_equivcount|hedge_isequiv|hedge_isprimary|hedge_isvalid|hedge_next|hedge_nextequiv|hedge_postdstpoint|hedge_postdstvertex|hedge_presrcpoint|hedge_presrcvertex|hedge_prev|hedge_prim|hedge_primary|hedge_srcpoint|hedge_srcvertex|henyeygreenstein|hscript_noise|hscript_rand|hscript_snoise|hscript_sturb|hscript_turb|hsvtorgb|iaspect|ichname|ident|idtopoint|idtoprim|iend|iendtime|ihasplane|import|inedgegroup|ingroup|inpointgroup|inprimgroup|insert|instance|interpolate|intersect|intersect_all|intersect_lights|inumplanes|invert|invertexgroup|iplaneindex|iplanename|iplanesize|irate|irradiance|isalpha|isbound|isconnected|isdigit|isfinite|isfogray|isframes|isnan|isotropic|israytracing|issamples|isseconds|isshadowray|istart|istarttime|isuvrendering|isvalidindex|isvarying|itoa|ixres|iyres|join|kspline|len|length|length2|lerp|lightbounces|lightid|limit_sample_space|limport|lkspline|log|log10|lookat|lspline|lstrip|luminance|lumname|makebasis|maketransform|maskname|match|matchvex_blinn|matchvex_specular|mattrib|max|mdensity|metadata|metaimport|metamarch|metanext|metastart|metaweight|min|minpos|mspace|nametopoint|nametoprim|nbouncetypes|nearpoint|nearpoints|nedgesgroup|neighbour|neighbourcount|neighbours|newgroup|newsampler|nextsample|ninput|ninputs|noise|noised|normal_bsdf|normalize|normalname|npoints|npointsgroup|nprimitives|nprimitivesgroup|nrandom|ntransform|nuniqueval|nvertices|nverticesgroup|occlusion|ocean_sample|ocio_import|ocio_spaces|ocio_transform|onoise|opdigits|opend|opfullpath|opparentbonetransform|opparenttransform|opparmtransform|oppreconstrainttransform|oppretransform|opstart|optransform|ord|osd_facecount|osd_firstpatch|osd_limitsurface|osd_limitsurfacevertex|osd_lookupface|osd_lookuppatch|osd_patchcount|osd_patches|outerproduct|ow_nspace|ow_space|ow_vspace|pack_inttosafefloat|pathtrace|pcclose|pcconvex|pcexport|pcfarthest|pcfilter|pcfind|pcfind_radius|pcgenerate|pcimport|pcimportbyidx3|pcimportbyidx4|pcimportbyidxf|pcimportbyidxi|pcimportbyidxp|pcimportbyidxs|pcimportbyidxv|pciterate|pcnumfound|pcopen|pcopenlod|pcsampleleaf|pcsize|pcunshaded|pcwrite|pgfind|phong|phongBRDF|phonglobe|photonmap|planeindex|planename|planepointdistance|planesize|planesphereintersect|pluralize|pnoise|point|pointattrib|pointattribsize|pointattribtype|pointattribtypeinfo|pointedge|pointhedge|pointhedgenext|pointname|pointprims|pointvertex|pointvertices|polardecomp|pop|pow|predicate_incircle|predicate_insphere|predicate_orient2d|predicate_orient3d|prim|prim_attribute|prim_normal|primarclen|primattrib|primattribsize|primattribtype|primattribtypeinfo|primduv|primfind|primhedge|primintrinsic|primpoint|primpoints|primuv|primuvconvert|primvertex|primvertexcount|primvertices|print_once|printf|product|ptexture|ptlined|ptransform|push|qconvert|qdistance|qinvert|qmultiply|qrotate|quaternion|radians|rand|random|random_fhash|random_ihash|random_shash|random_sobol|rawbumpmap|rawbumpmapA|rawbumpmapB|rawbumpmapG|rawbumpmapL|rawbumpmapR|rawcolormap|rayhittest|rayimport|re_find|re_findall|re_match|re_replace|re_split|reflect|reflectlight|refract|refractlight|relativepath|relbbox|relpointbbox|removegroup|removeindex|removepoint|removeprim|removevalue|renderstate|reorder|resample_linear|resize|resolvemissedray|reverse|rgbtohsv|rgbtoxyz|rint|rotate|rotate_x_to|rstrip|sample_bsdf|sample_cauchy|sample_cdf|sample_circle_arc|sample_circle_edge_uniform|sample_circle_slice|sample_circle_uniform|sample_direction_cone|sample_direction_uniform|sample_discrete|sample_exponential|sample_geometry|sample_hemisphere|sample_hypersphere_cone|sample_hypersphere_uniform|sample_light|sample_lognormal|sample_lognormal_by_median|sample_normal|sample_orientation_cone|sample_orientation_uniform|sample_photon|sample_sphere_cone|sample_sphere_uniform|sampledisk|scale|scatter|select|sensor_panorama_create|sensor_panorama_getcolor|sensor_panorama_getcone|sensor_panorama_getdepth|sensor_save|serialize|set|setagentclipnames|setagentclips|setagentcliptimes|setagentclipweights|setagentcollisionlayer|setagentcurrentlayer|setagentlocaltransform|setagentlocaltransforms|setagentworldtransform|setagentworldtransforms|setattrib|setattribtypeinfo|setcomp|setcurrentlight|setdetailattrib|setedgegroup|setpointattrib|setpointgroup|setprimattrib|setprimgroup|setprimintrinsic|setprimvertex|setsamplestore|setvertexattrib|setvertexgroup|setvertexpoint|shadow|shadow_light|shadowmap|shimport|shl|shr|shrz|sign|simport|sin|sinh|sleep|slerp|slice|slideframe|smooth|smoothrotation|snoise|solid_angle|solvecubic|solvepoly|solvequadratic|sort|specular|specularBRDF|spline|split|split_bsdf|splitpath|sprintf|sqrt|sssapprox|startswith|storelightexport|strip|strlen|sum|switch|swizzle|tan|tanh|tet_adjacent|tet_faceindex|teximport|texprintf|texture|texture3d|texture3dBox|titlecase|toNDC|tolower|toupper|trace|translate|translucent|transpose|trunc|tw_nspace|tw_space|tw_vspace|uniqueval|unpack_intfromsafefloat|unserialize|upush|uvdist|uvintersect|uvsample|uvunwrap|variance|velocityname|vertex|vertexattrib|vertexattribsize|vertexattribtype|vertexattribtypeinfo|vertexhedge|vertexindex|vertexnext|vertexpoint|vertexprev|vertexprim|vertexprimindex|vnoise|volume|volumegradient|volumeindex|volumeindexorigin|volumeindextopos|volumeindexv|volumepostoindex|volumeres|volumesample|volumesamplev|volumevoxeldiameter|vtransform|warning|wireblinn|wirediffuse|wnoise|wo_nspace|wo_space|wo_vspace|writepixel|wt_nspace|wt_space|wt_vspace|xnoise|xnoised|xyzdist|xyztorgb)\b\s*(\() 27 | captures: 28 | '1': {name: support.function.library.vex} 29 | '2': {name: punctuation.group.vex} 30 | 31 | - name: meta.method.identifier.vex 32 | begin: (\w+)\s*\( 33 | beginCaptures: 34 | '1': {name: entity.name.function.vex} 35 | end: \) 36 | patterns: 37 | - include: $self 38 | 39 | - name: constant.numeric.vex 40 | match: \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b 41 | 42 | - match: \s*((#define|#else|#endif|#ifndef|#ifdef|#if|#include|#pragma|#undef).*$\n?) 43 | captures: 44 | '1': {name: comment.block.preprocessor.vex} 45 | '2': {name: keyword.preprocessor.vex} 46 | 47 | - name: string.quoted.double.vex 48 | begin: '"' 49 | beginCaptures: 50 | '1': {name: punctuation.definition.string.begin.vex} 51 | end: '"' 52 | endCaptures: 53 | '1': {name: punctuation.definition.string.end.vex} 54 | patterns: 55 | - name: constant.character.escape.vex 56 | match: \\. 57 | 58 | - match: \s*((//).*$\n?) 59 | captures: 60 | '1': {name: comment.line.double-slash.vex} 61 | '2': {name: punctuation.definition.comment.vex} 62 | 63 | - name: comment.block.vex 64 | begin: /\* 65 | end: \*/ 66 | captures: 67 | '1': {name: punctuation.definition.comment.vex} 68 | 69 | - name: punctuation.group.vex 70 | match: \(|\)|,|:|; 71 | 72 | - name: keyword.operator.vex 73 | match: \+\+?|--?|\*|@|\^=?|\|\|?|\|=|&&?|&=|%=?|!=?|==?|~=?|<=?|>=?|\+=|\*=|-=|\/=? 74 | 75 | - name: constant.language 76 | match: \b(LN10|LN2|LOG10E|LOG2E|PI|PI_2|PI_4|SQRT1_2|SQRT2|TOLERANCE)\b 77 | foldingStartMarker: (\{\s*(//.*)?$|^\s*// \{\{\{) 78 | foldingStopMarker: ^\s*(\}|// \}\}\}$) 79 | -------------------------------------------------------------------------------- /VEX.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "completions": [ 3 | { 4 | "contents": "Du(${1})", 5 | "trigger": "Du\tfunction" 6 | }, 7 | { 8 | "contents": "Dv(${1})", 9 | "trigger": "Dv\tfunction" 10 | }, 11 | { 12 | "contents": "Dw(${1})", 13 | "trigger": "Dw\tfunction" 14 | }, 15 | { 16 | "contents": "abs(${1})", 17 | "trigger": "abs\tfunction" 18 | }, 19 | { 20 | "contents": "accessframe(${1})", 21 | "trigger": "accessframe\tfunction" 22 | }, 23 | { 24 | "contents": "acos(${1})", 25 | "trigger": "acos\tfunction" 26 | }, 27 | { 28 | "contents": "addattrib(${1})", 29 | "trigger": "addattrib\tfunction" 30 | }, 31 | { 32 | "contents": "addattribute(${1})", 33 | "trigger": "addattribute\tfunction" 34 | }, 35 | { 36 | "contents": "adddetailattrib(${1})", 37 | "trigger": "adddetailattrib\tfunction" 38 | }, 39 | { 40 | "contents": "addgroup(${1})", 41 | "trigger": "addgroup\tfunction" 42 | }, 43 | { 44 | "contents": "addpoint(${1})", 45 | "trigger": "addpoint\tfunction" 46 | }, 47 | { 48 | "contents": "addpointattrib(${1})", 49 | "trigger": "addpointattrib\tfunction" 50 | }, 51 | { 52 | "contents": "addprim(${1})", 53 | "trigger": "addprim\tfunction" 54 | }, 55 | { 56 | "contents": "addprimattrib(${1})", 57 | "trigger": "addprimattrib\tfunction" 58 | }, 59 | { 60 | "contents": "addvariablename(${1})", 61 | "trigger": "addvariablename\tfunction" 62 | }, 63 | { 64 | "contents": "addvertex(${1})", 65 | "trigger": "addvertex\tfunction" 66 | }, 67 | { 68 | "contents": "addvertexattrib(${1})", 69 | "trigger": "addvertexattrib\tfunction" 70 | }, 71 | { 72 | "contents": "addvisualizer(${1})", 73 | "trigger": "addvisualizer\tfunction" 74 | }, 75 | { 76 | "contents": "agentaddclip(${1})", 77 | "trigger": "agentaddclip\tfunction" 78 | }, 79 | { 80 | "contents": "agentclipcatalog(${1})", 81 | "trigger": "agentclipcatalog\tfunction" 82 | }, 83 | { 84 | "contents": "agentclipchannel(${1})", 85 | "trigger": "agentclipchannel\tfunction" 86 | }, 87 | { 88 | "contents": "agentcliplength(${1})", 89 | "trigger": "agentcliplength\tfunction" 90 | }, 91 | { 92 | "contents": "agentclipnames(${1})", 93 | "trigger": "agentclipnames\tfunction" 94 | }, 95 | { 96 | "contents": "agentclipsample(${1})", 97 | "trigger": "agentclipsample\tfunction" 98 | }, 99 | { 100 | "contents": "agentclipsamplelocal(${1})", 101 | "trigger": "agentclipsamplelocal\tfunction" 102 | }, 103 | { 104 | "contents": "agentclipsamplerate(${1})", 105 | "trigger": "agentclipsamplerate\tfunction" 106 | }, 107 | { 108 | "contents": "agentclipsampleworld(${1})", 109 | "trigger": "agentclipsampleworld\tfunction" 110 | }, 111 | { 112 | "contents": "agentcliptimes(${1})", 113 | "trigger": "agentcliptimes\tfunction" 114 | }, 115 | { 116 | "contents": "agentcliptransformgroups(${1})", 117 | "trigger": "agentcliptransformgroups\tfunction" 118 | }, 119 | { 120 | "contents": "agentclipweights(${1})", 121 | "trigger": "agentclipweights\tfunction" 122 | }, 123 | { 124 | "contents": "agentcollisionlayer(${1})", 125 | "trigger": "agentcollisionlayer\tfunction" 126 | }, 127 | { 128 | "contents": "agentcurrentlayer(${1})", 129 | "trigger": "agentcurrentlayer\tfunction" 130 | }, 131 | { 132 | "contents": "agentlayerbindings(${1})", 133 | "trigger": "agentlayerbindings\tfunction" 134 | }, 135 | { 136 | "contents": "agentlayers(${1})", 137 | "trigger": "agentlayers\tfunction" 138 | }, 139 | { 140 | "contents": "agentlayershapes(${1})", 141 | "trigger": "agentlayershapes\tfunction" 142 | }, 143 | { 144 | "contents": "agentlocaltransform(${1})", 145 | "trigger": "agentlocaltransform\tfunction" 146 | }, 147 | { 148 | "contents": "agentlocaltransforms(${1})", 149 | "trigger": "agentlocaltransforms\tfunction" 150 | }, 151 | { 152 | "contents": "agentrigchildren(${1})", 153 | "trigger": "agentrigchildren\tfunction" 154 | }, 155 | { 156 | "contents": "agentrigfind(${1})", 157 | "trigger": "agentrigfind\tfunction" 158 | }, 159 | { 160 | "contents": "agentrigparent(${1})", 161 | "trigger": "agentrigparent\tfunction" 162 | }, 163 | { 164 | "contents": "agenttransformcount(${1})", 165 | "trigger": "agenttransformcount\tfunction" 166 | }, 167 | { 168 | "contents": "agenttransformgroupmember(${1})", 169 | "trigger": "agenttransformgroupmember\tfunction" 170 | }, 171 | { 172 | "contents": "agenttransformgroups(${1})", 173 | "trigger": "agenttransformgroups\tfunction" 174 | }, 175 | { 176 | "contents": "agenttransformnames(${1})", 177 | "trigger": "agenttransformnames\tfunction" 178 | }, 179 | { 180 | "contents": "agenttransformtolocal(${1})", 181 | "trigger": "agenttransformtolocal\tfunction" 182 | }, 183 | { 184 | "contents": "agenttransformtoworld(${1})", 185 | "trigger": "agenttransformtoworld\tfunction" 186 | }, 187 | { 188 | "contents": "agentworldtransform(${1})", 189 | "trigger": "agentworldtransform\tfunction" 190 | }, 191 | { 192 | "contents": "agentworldtransforms(${1})", 193 | "trigger": "agentworldtransforms\tfunction" 194 | }, 195 | { 196 | "contents": "albedo(${1})", 197 | "trigger": "albedo\tfunction" 198 | }, 199 | { 200 | "contents": "alphaname(${1})", 201 | "trigger": "alphaname\tfunction" 202 | }, 203 | { 204 | "contents": "ambient(${1})", 205 | "trigger": "ambient\tfunction" 206 | }, 207 | { 208 | "contents": "anoise(${1})", 209 | "trigger": "anoise\tfunction" 210 | }, 211 | { 212 | "contents": "append(${1})", 213 | "trigger": "append\tfunction" 214 | }, 215 | { 216 | "contents": "area(${1})", 217 | "trigger": "area\tfunction" 218 | }, 219 | { 220 | "contents": "argsort(${1})", 221 | "trigger": "argsort\tfunction" 222 | }, 223 | { 224 | "contents": "array(${1})", 225 | "trigger": "array\tfunction" 226 | }, 227 | { 228 | "contents": "ashikhmin(${1})", 229 | "trigger": "ashikhmin\tfunction" 230 | }, 231 | { 232 | "contents": "asin(${1})", 233 | "trigger": "asin\tfunction" 234 | }, 235 | { 236 | "contents": "assert_enabled(${1})", 237 | "trigger": "assert_enabled\tfunction" 238 | }, 239 | { 240 | "contents": "assign(${1})", 241 | "trigger": "assign\tfunction" 242 | }, 243 | { 244 | "contents": "atan(${1})", 245 | "trigger": "atan\tfunction" 246 | }, 247 | { 248 | "contents": "atan2(${1})", 249 | "trigger": "atan2\tfunction" 250 | }, 251 | { 252 | "contents": "atof(${1})", 253 | "trigger": "atof\tfunction" 254 | }, 255 | { 256 | "contents": "atoi(${1})", 257 | "trigger": "atoi\tfunction" 258 | }, 259 | { 260 | "contents": "atten(${1})", 261 | "trigger": "atten\tfunction" 262 | }, 263 | { 264 | "contents": "attrib(${1})", 265 | "trigger": "attrib\tfunction" 266 | }, 267 | { 268 | "contents": "attribclass(${1})", 269 | "trigger": "attribclass\tfunction" 270 | }, 271 | { 272 | "contents": "attribsize(${1})", 273 | "trigger": "attribsize\tfunction" 274 | }, 275 | { 276 | "contents": "attribtype(${1})", 277 | "trigger": "attribtype\tfunction" 278 | }, 279 | { 280 | "contents": "attribtypeinfo(${1})", 281 | "trigger": "attribtypeinfo\tfunction" 282 | }, 283 | { 284 | "contents": "avg(${1})", 285 | "trigger": "avg\tfunction" 286 | }, 287 | { 288 | "contents": "binput(${1})", 289 | "trigger": "binput\tfunction" 290 | }, 291 | { 292 | "contents": "blackbody(${1})", 293 | "trigger": "blackbody\tfunction" 294 | }, 295 | { 296 | "contents": "blinn(${1})", 297 | "trigger": "blinn\tfunction" 298 | }, 299 | { 300 | "contents": "blinnBRDF(${1})", 301 | "trigger": "blinnBRDF\tfunction" 302 | }, 303 | { 304 | "contents": "bouncelabel(${1})", 305 | "trigger": "bouncelabel\tfunction" 306 | }, 307 | { 308 | "contents": "bouncemask(${1})", 309 | "trigger": "bouncemask\tfunction" 310 | }, 311 | { 312 | "contents": "bumpmap(${1})", 313 | "trigger": "bumpmap\tfunction" 314 | }, 315 | { 316 | "contents": "bumpmapA(${1})", 317 | "trigger": "bumpmapA\tfunction" 318 | }, 319 | { 320 | "contents": "bumpmapB(${1})", 321 | "trigger": "bumpmapB\tfunction" 322 | }, 323 | { 324 | "contents": "bumpmapG(${1})", 325 | "trigger": "bumpmapG\tfunction" 326 | }, 327 | { 328 | "contents": "bumpmapL(${1})", 329 | "trigger": "bumpmapL\tfunction" 330 | }, 331 | { 332 | "contents": "bumpmapR(${1})", 333 | "trigger": "bumpmapR\tfunction" 334 | }, 335 | { 336 | "contents": "bumpname(${1})", 337 | "trigger": "bumpname\tfunction" 338 | }, 339 | { 340 | "contents": "cbrt(${1})", 341 | "trigger": "cbrt\tfunction" 342 | }, 343 | { 344 | "contents": "ceil(${1})", 345 | "trigger": "ceil\tfunction" 346 | }, 347 | { 348 | "contents": "ch(${1})", 349 | "trigger": "ch\tfunction" 350 | }, 351 | { 352 | "contents": "ch3(${1})", 353 | "trigger": "ch3\tfunction" 354 | }, 355 | { 356 | "contents": "ch4(${1})", 357 | "trigger": "ch4\tfunction" 358 | }, 359 | { 360 | "contents": "chattr(${1})", 361 | "trigger": "chattr\tfunction" 362 | }, 363 | { 364 | "contents": "chend(${1})", 365 | "trigger": "chend\tfunction" 366 | }, 367 | { 368 | "contents": "chendf(${1})", 369 | "trigger": "chendf\tfunction" 370 | }, 371 | { 372 | "contents": "chendt(${1})", 373 | "trigger": "chendt\tfunction" 374 | }, 375 | { 376 | "contents": "chf(${1})", 377 | "trigger": "chf\tfunction" 378 | }, 379 | { 380 | "contents": "chi(${1})", 381 | "trigger": "chi\tfunction" 382 | }, 383 | { 384 | "contents": "chindex(${1})", 385 | "trigger": "chindex\tfunction" 386 | }, 387 | { 388 | "contents": "chinput(${1})", 389 | "trigger": "chinput\tfunction" 390 | }, 391 | { 392 | "contents": "chname(${1})", 393 | "trigger": "chname\tfunction" 394 | }, 395 | { 396 | "contents": "chnumchan(${1})", 397 | "trigger": "chnumchan\tfunction" 398 | }, 399 | { 400 | "contents": "chp(${1})", 401 | "trigger": "chp\tfunction" 402 | }, 403 | { 404 | "contents": "chr(${1})", 405 | "trigger": "chr\tfunction" 406 | }, 407 | { 408 | "contents": "chramp(${1})", 409 | "trigger": "chramp\tfunction" 410 | }, 411 | { 412 | "contents": "chrate(${1})", 413 | "trigger": "chrate\tfunction" 414 | }, 415 | { 416 | "contents": "chreadbuf(${1})", 417 | "trigger": "chreadbuf\tfunction" 418 | }, 419 | { 420 | "contents": "chresizebuf(${1})", 421 | "trigger": "chresizebuf\tfunction" 422 | }, 423 | { 424 | "contents": "chs(${1})", 425 | "trigger": "chs\tfunction" 426 | }, 427 | { 428 | "contents": "chsetattr(${1})", 429 | "trigger": "chsetattr\tfunction" 430 | }, 431 | { 432 | "contents": "chsraw(${1})", 433 | "trigger": "chsraw\tfunction" 434 | }, 435 | { 436 | "contents": "chstart(${1})", 437 | "trigger": "chstart\tfunction" 438 | }, 439 | { 440 | "contents": "chstartf(${1})", 441 | "trigger": "chstartf\tfunction" 442 | }, 443 | { 444 | "contents": "chstartt(${1})", 445 | "trigger": "chstartt\tfunction" 446 | }, 447 | { 448 | "contents": "chv(${1})", 449 | "trigger": "chv\tfunction" 450 | }, 451 | { 452 | "contents": "chwritebuf(${1})", 453 | "trigger": "chwritebuf\tfunction" 454 | }, 455 | { 456 | "contents": "cinput(${1})", 457 | "trigger": "cinput\tfunction" 458 | }, 459 | { 460 | "contents": "ckspline(${1})", 461 | "trigger": "ckspline\tfunction" 462 | }, 463 | { 464 | "contents": "clamp(${1})", 465 | "trigger": "clamp\tfunction" 466 | }, 467 | { 468 | "contents": "clip(${1})", 469 | "trigger": "clip\tfunction" 470 | }, 471 | { 472 | "contents": "colormap(${1})", 473 | "trigger": "colormap\tfunction" 474 | }, 475 | { 476 | "contents": "colorname(${1})", 477 | "trigger": "colorname\tfunction" 478 | }, 479 | { 480 | "contents": "computenormal(${1})", 481 | "trigger": "computenormal\tfunction" 482 | }, 483 | { 484 | "contents": "concat(${1})", 485 | "trigger": "concat\tfunction" 486 | }, 487 | { 488 | "contents": "cone(${1})", 489 | "trigger": "cone\tfunction" 490 | }, 491 | { 492 | "contents": "cos(${1})", 493 | "trigger": "cos\tfunction" 494 | }, 495 | { 496 | "contents": "cosh(${1})", 497 | "trigger": "cosh\tfunction" 498 | }, 499 | { 500 | "contents": "cracktransform(${1})", 501 | "trigger": "cracktransform\tfunction" 502 | }, 503 | { 504 | "contents": "create_cdf(${1})", 505 | "trigger": "create_cdf\tfunction" 506 | }, 507 | { 508 | "contents": "create_pdf(${1})", 509 | "trigger": "create_pdf\tfunction" 510 | }, 511 | { 512 | "contents": "cross(${1})", 513 | "trigger": "cross\tfunction" 514 | }, 515 | { 516 | "contents": "cspline(${1})", 517 | "trigger": "cspline\tfunction" 518 | }, 519 | { 520 | "contents": "ctransform(${1})", 521 | "trigger": "ctransform\tfunction" 522 | }, 523 | { 524 | "contents": "curlnoise(${1})", 525 | "trigger": "curlnoise\tfunction" 526 | }, 527 | { 528 | "contents": "curlnoise2d(${1})", 529 | "trigger": "curlnoise2d\tfunction" 530 | }, 531 | { 532 | "contents": "curlxnoise(${1})", 533 | "trigger": "curlxnoise\tfunction" 534 | }, 535 | { 536 | "contents": "curlxnoise2d(${1})", 537 | "trigger": "curlxnoise2d\tfunction" 538 | }, 539 | { 540 | "contents": "cvex_bsdf(${1})", 541 | "trigger": "cvex_bsdf\tfunction" 542 | }, 543 | { 544 | "contents": "degrees(${1})", 545 | "trigger": "degrees\tfunction" 546 | }, 547 | { 548 | "contents": "depthmap(${1})", 549 | "trigger": "depthmap\tfunction" 550 | }, 551 | { 552 | "contents": "depthname(${1})", 553 | "trigger": "depthname\tfunction" 554 | }, 555 | { 556 | "contents": "detail(${1})", 557 | "trigger": "detail\tfunction" 558 | }, 559 | { 560 | "contents": "detailattrib(${1})", 561 | "trigger": "detailattrib\tfunction" 562 | }, 563 | { 564 | "contents": "detailattribsize(${1})", 565 | "trigger": "detailattribsize\tfunction" 566 | }, 567 | { 568 | "contents": "detailattribtype(${1})", 569 | "trigger": "detailattribtype\tfunction" 570 | }, 571 | { 572 | "contents": "detailattribtypeinfo(${1})", 573 | "trigger": "detailattribtypeinfo\tfunction" 574 | }, 575 | { 576 | "contents": "detailintrinsic(${1})", 577 | "trigger": "detailintrinsic\tfunction" 578 | }, 579 | { 580 | "contents": "determinant(${1})", 581 | "trigger": "determinant\tfunction" 582 | }, 583 | { 584 | "contents": "diffuse(${1})", 585 | "trigger": "diffuse\tfunction" 586 | }, 587 | { 588 | "contents": "diffuseBRDF(${1})", 589 | "trigger": "diffuseBRDF\tfunction" 590 | }, 591 | { 592 | "contents": "dihedral(${1})", 593 | "trigger": "dihedral\tfunction" 594 | }, 595 | { 596 | "contents": "dimport(${1})", 597 | "trigger": "dimport\tfunction" 598 | }, 599 | { 600 | "contents": "distance(${1})", 601 | "trigger": "distance\tfunction" 602 | }, 603 | { 604 | "contents": "distance2(${1})", 605 | "trigger": "distance2\tfunction" 606 | }, 607 | { 608 | "contents": "dot(${1})", 609 | "trigger": "dot\tfunction" 610 | }, 611 | { 612 | "contents": "dsmpixel(${1})", 613 | "trigger": "dsmpixel\tfunction" 614 | }, 615 | { 616 | "contents": "efit(${1})", 617 | "trigger": "efit\tfunction" 618 | }, 619 | { 620 | "contents": "eigenvalues(${1})", 621 | "trigger": "eigenvalues\tfunction" 622 | }, 623 | { 624 | "contents": "endswith(${1})", 625 | "trigger": "endswith\tfunction" 626 | }, 627 | { 628 | "contents": "environment(${1})", 629 | "trigger": "environment\tfunction" 630 | }, 631 | { 632 | "contents": "erf(${1})", 633 | "trigger": "erf\tfunction" 634 | }, 635 | { 636 | "contents": "erf_inv(${1})", 637 | "trigger": "erf_inv\tfunction" 638 | }, 639 | { 640 | "contents": "erfc(${1})", 641 | "trigger": "erfc\tfunction" 642 | }, 643 | { 644 | "contents": "error(${1})", 645 | "trigger": "error\tfunction" 646 | }, 647 | { 648 | "contents": "eulertoquaternion(${1})", 649 | "trigger": "eulertoquaternion\tfunction" 650 | }, 651 | { 652 | "contents": "eval_bsdf(${1})", 653 | "trigger": "eval_bsdf\tfunction" 654 | }, 655 | { 656 | "contents": "exp(${1})", 657 | "trigger": "exp\tfunction" 658 | }, 659 | { 660 | "contents": "expand_udim(${1})", 661 | "trigger": "expand_udim\tfunction" 662 | }, 663 | { 664 | "contents": "expandedgegroup(${1})", 665 | "trigger": "expandedgegroup\tfunction" 666 | }, 667 | { 668 | "contents": "expandpointgroup(${1})", 669 | "trigger": "expandpointgroup\tfunction" 670 | }, 671 | { 672 | "contents": "expandprimgroup(${1})", 673 | "trigger": "expandprimgroup\tfunction" 674 | }, 675 | { 676 | "contents": "fastshadow(${1})", 677 | "trigger": "fastshadow\tfunction" 678 | }, 679 | { 680 | "contents": "filamentsample(${1})", 681 | "trigger": "filamentsample\tfunction" 682 | }, 683 | { 684 | "contents": "file_stat(${1})", 685 | "trigger": "file_stat\tfunction" 686 | }, 687 | { 688 | "contents": "filtershadow(${1})", 689 | "trigger": "filtershadow\tfunction" 690 | }, 691 | { 692 | "contents": "filterstep(${1})", 693 | "trigger": "filterstep\tfunction" 694 | }, 695 | { 696 | "contents": "find(${1})", 697 | "trigger": "find\tfunction" 698 | }, 699 | { 700 | "contents": "findattribval(${1})", 701 | "trigger": "findattribval\tfunction" 702 | }, 703 | { 704 | "contents": "findattribvalcount(${1})", 705 | "trigger": "findattribvalcount\tfunction" 706 | }, 707 | { 708 | "contents": "finput(${1})", 709 | "trigger": "finput\tfunction" 710 | }, 711 | { 712 | "contents": "fit(${1})", 713 | "trigger": "fit\tfunction" 714 | }, 715 | { 716 | "contents": "fit01(${1})", 717 | "trigger": "fit01\tfunction" 718 | }, 719 | { 720 | "contents": "fit10(${1})", 721 | "trigger": "fit10\tfunction" 722 | }, 723 | { 724 | "contents": "fit11(${1})", 725 | "trigger": "fit11\tfunction" 726 | }, 727 | { 728 | "contents": "floor(${1})", 729 | "trigger": "floor\tfunction" 730 | }, 731 | { 732 | "contents": "flownoise(${1})", 733 | "trigger": "flownoise\tfunction" 734 | }, 735 | { 736 | "contents": "flowpnoise(${1})", 737 | "trigger": "flowpnoise\tfunction" 738 | }, 739 | { 740 | "contents": "frac(${1})", 741 | "trigger": "frac\tfunction" 742 | }, 743 | { 744 | "contents": "fresnel(${1})", 745 | "trigger": "fresnel\tfunction" 746 | }, 747 | { 748 | "contents": "fromNDC(${1})", 749 | "trigger": "fromNDC\tfunction" 750 | }, 751 | { 752 | "contents": "frontface(${1})", 753 | "trigger": "frontface\tfunction" 754 | }, 755 | { 756 | "contents": "fuzzify(${1})", 757 | "trigger": "fuzzify\tfunction" 758 | }, 759 | { 760 | "contents": "fuzzy_and(${1})", 761 | "trigger": "fuzzy_and\tfunction" 762 | }, 763 | { 764 | "contents": "fuzzy_defuzz_centroid(${1})", 765 | "trigger": "fuzzy_defuzz_centroid\tfunction" 766 | }, 767 | { 768 | "contents": "fuzzy_nand(${1})", 769 | "trigger": "fuzzy_nand\tfunction" 770 | }, 771 | { 772 | "contents": "fuzzy_nor(${1})", 773 | "trigger": "fuzzy_nor\tfunction" 774 | }, 775 | { 776 | "contents": "fuzzy_not(${1})", 777 | "trigger": "fuzzy_not\tfunction" 778 | }, 779 | { 780 | "contents": "fuzzy_nxor(${1})", 781 | "trigger": "fuzzy_nxor\tfunction" 782 | }, 783 | { 784 | "contents": "fuzzy_or(${1})", 785 | "trigger": "fuzzy_or\tfunction" 786 | }, 787 | { 788 | "contents": "fuzzy_xor(${1})", 789 | "trigger": "fuzzy_xor\tfunction" 790 | }, 791 | { 792 | "contents": "geoself(${1})", 793 | "trigger": "geoself\tfunction" 794 | }, 795 | { 796 | "contents": "geounwrap(${1})", 797 | "trigger": "geounwrap\tfunction" 798 | }, 799 | { 800 | "contents": "getattrib(${1})", 801 | "trigger": "getattrib\tfunction" 802 | }, 803 | { 804 | "contents": "getattribute(${1})", 805 | "trigger": "getattribute\tfunction" 806 | }, 807 | { 808 | "contents": "getbbox(${1})", 809 | "trigger": "getbbox\tfunction" 810 | }, 811 | { 812 | "contents": "getbbox_center(${1})", 813 | "trigger": "getbbox_center\tfunction" 814 | }, 815 | { 816 | "contents": "getbbox_max(${1})", 817 | "trigger": "getbbox_max\tfunction" 818 | }, 819 | { 820 | "contents": "getbbox_min(${1})", 821 | "trigger": "getbbox_min\tfunction" 822 | }, 823 | { 824 | "contents": "getbbox_size(${1})", 825 | "trigger": "getbbox_size\tfunction" 826 | }, 827 | { 828 | "contents": "getblurP(${1})", 829 | "trigger": "getblurP\tfunction" 830 | }, 831 | { 832 | "contents": "getbounces(${1})", 833 | "trigger": "getbounces\tfunction" 834 | }, 835 | { 836 | "contents": "getbounds(${1})", 837 | "trigger": "getbounds\tfunction" 838 | }, 839 | { 840 | "contents": "getcomp(${1})", 841 | "trigger": "getcomp\tfunction" 842 | }, 843 | { 844 | "contents": "getcomponents(${1})", 845 | "trigger": "getcomponents\tfunction" 846 | }, 847 | { 848 | "contents": "getderiv(${1})", 849 | "trigger": "getderiv\tfunction" 850 | }, 851 | { 852 | "contents": "getfogname(${1})", 853 | "trigger": "getfogname\tfunction" 854 | }, 855 | { 856 | "contents": "getglobalraylevel(${1})", 857 | "trigger": "getglobalraylevel\tfunction" 858 | }, 859 | { 860 | "contents": "getgroupid(${1})", 861 | "trigger": "getgroupid\tfunction" 862 | }, 863 | { 864 | "contents": "getlight(${1})", 865 | "trigger": "getlight\tfunction" 866 | }, 867 | { 868 | "contents": "getlightid(${1})", 869 | "trigger": "getlightid\tfunction" 870 | }, 871 | { 872 | "contents": "getlightname(${1})", 873 | "trigger": "getlightname\tfunction" 874 | }, 875 | { 876 | "contents": "getlights(${1})", 877 | "trigger": "getlights\tfunction" 878 | }, 879 | { 880 | "contents": "getlightscope(${1})", 881 | "trigger": "getlightscope\tfunction" 882 | }, 883 | { 884 | "contents": "getlocalcurvature(${1})", 885 | "trigger": "getlocalcurvature\tfunction" 886 | }, 887 | { 888 | "contents": "getmaterial(${1})", 889 | "trigger": "getmaterial\tfunction" 890 | }, 891 | { 892 | "contents": "getmaterialid(${1})", 893 | "trigger": "getmaterialid\tfunction" 894 | }, 895 | { 896 | "contents": "getobjectid(${1})", 897 | "trigger": "getobjectid\tfunction" 898 | }, 899 | { 900 | "contents": "getobjectname(${1})", 901 | "trigger": "getobjectname\tfunction" 902 | }, 903 | { 904 | "contents": "getphotonlight(${1})", 905 | "trigger": "getphotonlight\tfunction" 906 | }, 907 | { 908 | "contents": "getpointbbox(${1})", 909 | "trigger": "getpointbbox\tfunction" 910 | }, 911 | { 912 | "contents": "getpointbbox_center(${1})", 913 | "trigger": "getpointbbox_center\tfunction" 914 | }, 915 | { 916 | "contents": "getpointbbox_max(${1})", 917 | "trigger": "getpointbbox_max\tfunction" 918 | }, 919 | { 920 | "contents": "getpointbbox_min(${1})", 921 | "trigger": "getpointbbox_min\tfunction" 922 | }, 923 | { 924 | "contents": "getpointbbox_size(${1})", 925 | "trigger": "getpointbbox_size\tfunction" 926 | }, 927 | { 928 | "contents": "getprimid(${1})", 929 | "trigger": "getprimid\tfunction" 930 | }, 931 | { 932 | "contents": "getptextureid(${1})", 933 | "trigger": "getptextureid\tfunction" 934 | }, 935 | { 936 | "contents": "getraylevel(${1})", 937 | "trigger": "getraylevel\tfunction" 938 | }, 939 | { 940 | "contents": "getrayweight(${1})", 941 | "trigger": "getrayweight\tfunction" 942 | }, 943 | { 944 | "contents": "getsamplestore(${1})", 945 | "trigger": "getsamplestore\tfunction" 946 | }, 947 | { 948 | "contents": "getscope(${1})", 949 | "trigger": "getscope\tfunction" 950 | }, 951 | { 952 | "contents": "getsmoothP(${1})", 953 | "trigger": "getsmoothP\tfunction" 954 | }, 955 | { 956 | "contents": "getspace(${1})", 957 | "trigger": "getspace\tfunction" 958 | }, 959 | { 960 | "contents": "getuvtangents(${1})", 961 | "trigger": "getuvtangents\tfunction" 962 | }, 963 | { 964 | "contents": "gradient(${1})", 965 | "trigger": "gradient\tfunction" 966 | }, 967 | { 968 | "contents": "hair(${1})", 969 | "trigger": "hair\tfunction" 970 | }, 971 | { 972 | "contents": "hasattrib(${1})", 973 | "trigger": "hasattrib\tfunction" 974 | }, 975 | { 976 | "contents": "hasdetailattrib(${1})", 977 | "trigger": "hasdetailattrib\tfunction" 978 | }, 979 | { 980 | "contents": "haslight(${1})", 981 | "trigger": "haslight\tfunction" 982 | }, 983 | { 984 | "contents": "hasmetadata(${1})", 985 | "trigger": "hasmetadata\tfunction" 986 | }, 987 | { 988 | "contents": "hasplane(${1})", 989 | "trigger": "hasplane\tfunction" 990 | }, 991 | { 992 | "contents": "haspointattrib(${1})", 993 | "trigger": "haspointattrib\tfunction" 994 | }, 995 | { 996 | "contents": "hasprimattrib(${1})", 997 | "trigger": "hasprimattrib\tfunction" 998 | }, 999 | { 1000 | "contents": "hasvertexattrib(${1})", 1001 | "trigger": "hasvertexattrib\tfunction" 1002 | }, 1003 | { 1004 | "contents": "hedge_dstpoint(${1})", 1005 | "trigger": "hedge_dstpoint\tfunction" 1006 | }, 1007 | { 1008 | "contents": "hedge_dstvertex(${1})", 1009 | "trigger": "hedge_dstvertex\tfunction" 1010 | }, 1011 | { 1012 | "contents": "hedge_equivcount(${1})", 1013 | "trigger": "hedge_equivcount\tfunction" 1014 | }, 1015 | { 1016 | "contents": "hedge_isequiv(${1})", 1017 | "trigger": "hedge_isequiv\tfunction" 1018 | }, 1019 | { 1020 | "contents": "hedge_isprimary(${1})", 1021 | "trigger": "hedge_isprimary\tfunction" 1022 | }, 1023 | { 1024 | "contents": "hedge_isvalid(${1})", 1025 | "trigger": "hedge_isvalid\tfunction" 1026 | }, 1027 | { 1028 | "contents": "hedge_next(${1})", 1029 | "trigger": "hedge_next\tfunction" 1030 | }, 1031 | { 1032 | "contents": "hedge_nextequiv(${1})", 1033 | "trigger": "hedge_nextequiv\tfunction" 1034 | }, 1035 | { 1036 | "contents": "hedge_postdstpoint(${1})", 1037 | "trigger": "hedge_postdstpoint\tfunction" 1038 | }, 1039 | { 1040 | "contents": "hedge_postdstvertex(${1})", 1041 | "trigger": "hedge_postdstvertex\tfunction" 1042 | }, 1043 | { 1044 | "contents": "hedge_presrcpoint(${1})", 1045 | "trigger": "hedge_presrcpoint\tfunction" 1046 | }, 1047 | { 1048 | "contents": "hedge_presrcvertex(${1})", 1049 | "trigger": "hedge_presrcvertex\tfunction" 1050 | }, 1051 | { 1052 | "contents": "hedge_prev(${1})", 1053 | "trigger": "hedge_prev\tfunction" 1054 | }, 1055 | { 1056 | "contents": "hedge_prim(${1})", 1057 | "trigger": "hedge_prim\tfunction" 1058 | }, 1059 | { 1060 | "contents": "hedge_primary(${1})", 1061 | "trigger": "hedge_primary\tfunction" 1062 | }, 1063 | { 1064 | "contents": "hedge_srcpoint(${1})", 1065 | "trigger": "hedge_srcpoint\tfunction" 1066 | }, 1067 | { 1068 | "contents": "hedge_srcvertex(${1})", 1069 | "trigger": "hedge_srcvertex\tfunction" 1070 | }, 1071 | { 1072 | "contents": "henyeygreenstein(${1})", 1073 | "trigger": "henyeygreenstein\tfunction" 1074 | }, 1075 | { 1076 | "contents": "hscript_noise(${1})", 1077 | "trigger": "hscript_noise\tfunction" 1078 | }, 1079 | { 1080 | "contents": "hscript_rand(${1})", 1081 | "trigger": "hscript_rand\tfunction" 1082 | }, 1083 | { 1084 | "contents": "hscript_snoise(${1})", 1085 | "trigger": "hscript_snoise\tfunction" 1086 | }, 1087 | { 1088 | "contents": "hscript_sturb(${1})", 1089 | "trigger": "hscript_sturb\tfunction" 1090 | }, 1091 | { 1092 | "contents": "hscript_turb(${1})", 1093 | "trigger": "hscript_turb\tfunction" 1094 | }, 1095 | { 1096 | "contents": "hsvtorgb(${1})", 1097 | "trigger": "hsvtorgb\tfunction" 1098 | }, 1099 | { 1100 | "contents": "iaspect(${1})", 1101 | "trigger": "iaspect\tfunction" 1102 | }, 1103 | { 1104 | "contents": "ichname(${1})", 1105 | "trigger": "ichname\tfunction" 1106 | }, 1107 | { 1108 | "contents": "ident(${1})", 1109 | "trigger": "ident\tfunction" 1110 | }, 1111 | { 1112 | "contents": "idtopoint(${1})", 1113 | "trigger": "idtopoint\tfunction" 1114 | }, 1115 | { 1116 | "contents": "idtoprim(${1})", 1117 | "trigger": "idtoprim\tfunction" 1118 | }, 1119 | { 1120 | "contents": "iend(${1})", 1121 | "trigger": "iend\tfunction" 1122 | }, 1123 | { 1124 | "contents": "iendtime(${1})", 1125 | "trigger": "iendtime\tfunction" 1126 | }, 1127 | { 1128 | "contents": "ihasplane(${1})", 1129 | "trigger": "ihasplane\tfunction" 1130 | }, 1131 | { 1132 | "contents": "import(${1})", 1133 | "trigger": "import\tfunction" 1134 | }, 1135 | { 1136 | "contents": "inedgegroup(${1})", 1137 | "trigger": "inedgegroup\tfunction" 1138 | }, 1139 | { 1140 | "contents": "ingroup(${1})", 1141 | "trigger": "ingroup\tfunction" 1142 | }, 1143 | { 1144 | "contents": "inpointgroup(${1})", 1145 | "trigger": "inpointgroup\tfunction" 1146 | }, 1147 | { 1148 | "contents": "inprimgroup(${1})", 1149 | "trigger": "inprimgroup\tfunction" 1150 | }, 1151 | { 1152 | "contents": "insert(${1})", 1153 | "trigger": "insert\tfunction" 1154 | }, 1155 | { 1156 | "contents": "instance(${1})", 1157 | "trigger": "instance\tfunction" 1158 | }, 1159 | { 1160 | "contents": "interpolate(${1})", 1161 | "trigger": "interpolate\tfunction" 1162 | }, 1163 | { 1164 | "contents": "intersect(${1})", 1165 | "trigger": "intersect\tfunction" 1166 | }, 1167 | { 1168 | "contents": "intersect_all(${1})", 1169 | "trigger": "intersect_all\tfunction" 1170 | }, 1171 | { 1172 | "contents": "intersect_lights(${1})", 1173 | "trigger": "intersect_lights\tfunction" 1174 | }, 1175 | { 1176 | "contents": "inumplanes(${1})", 1177 | "trigger": "inumplanes\tfunction" 1178 | }, 1179 | { 1180 | "contents": "invert(${1})", 1181 | "trigger": "invert\tfunction" 1182 | }, 1183 | { 1184 | "contents": "invertexgroup(${1})", 1185 | "trigger": "invertexgroup\tfunction" 1186 | }, 1187 | { 1188 | "contents": "iplaneindex(${1})", 1189 | "trigger": "iplaneindex\tfunction" 1190 | }, 1191 | { 1192 | "contents": "iplanename(${1})", 1193 | "trigger": "iplanename\tfunction" 1194 | }, 1195 | { 1196 | "contents": "iplanesize(${1})", 1197 | "trigger": "iplanesize\tfunction" 1198 | }, 1199 | { 1200 | "contents": "irate(${1})", 1201 | "trigger": "irate\tfunction" 1202 | }, 1203 | { 1204 | "contents": "irradiance(${1})", 1205 | "trigger": "irradiance\tfunction" 1206 | }, 1207 | { 1208 | "contents": "isalpha(${1})", 1209 | "trigger": "isalpha\tfunction" 1210 | }, 1211 | { 1212 | "contents": "isbound(${1})", 1213 | "trigger": "isbound\tfunction" 1214 | }, 1215 | { 1216 | "contents": "isconnected(${1})", 1217 | "trigger": "isconnected\tfunction" 1218 | }, 1219 | { 1220 | "contents": "isdigit(${1})", 1221 | "trigger": "isdigit\tfunction" 1222 | }, 1223 | { 1224 | "contents": "isfinite(${1})", 1225 | "trigger": "isfinite\tfunction" 1226 | }, 1227 | { 1228 | "contents": "isfogray(${1})", 1229 | "trigger": "isfogray\tfunction" 1230 | }, 1231 | { 1232 | "contents": "isframes(${1})", 1233 | "trigger": "isframes\tfunction" 1234 | }, 1235 | { 1236 | "contents": "isnan(${1})", 1237 | "trigger": "isnan\tfunction" 1238 | }, 1239 | { 1240 | "contents": "isotropic(${1})", 1241 | "trigger": "isotropic\tfunction" 1242 | }, 1243 | { 1244 | "contents": "israytracing(${1})", 1245 | "trigger": "israytracing\tfunction" 1246 | }, 1247 | { 1248 | "contents": "issamples(${1})", 1249 | "trigger": "issamples\tfunction" 1250 | }, 1251 | { 1252 | "contents": "isseconds(${1})", 1253 | "trigger": "isseconds\tfunction" 1254 | }, 1255 | { 1256 | "contents": "isshadowray(${1})", 1257 | "trigger": "isshadowray\tfunction" 1258 | }, 1259 | { 1260 | "contents": "istart(${1})", 1261 | "trigger": "istart\tfunction" 1262 | }, 1263 | { 1264 | "contents": "istarttime(${1})", 1265 | "trigger": "istarttime\tfunction" 1266 | }, 1267 | { 1268 | "contents": "isuvrendering(${1})", 1269 | "trigger": "isuvrendering\tfunction" 1270 | }, 1271 | { 1272 | "contents": "isvalidindex(${1})", 1273 | "trigger": "isvalidindex\tfunction" 1274 | }, 1275 | { 1276 | "contents": "isvarying(${1})", 1277 | "trigger": "isvarying\tfunction" 1278 | }, 1279 | { 1280 | "contents": "itoa(${1})", 1281 | "trigger": "itoa\tfunction" 1282 | }, 1283 | { 1284 | "contents": "ixres(${1})", 1285 | "trigger": "ixres\tfunction" 1286 | }, 1287 | { 1288 | "contents": "iyres(${1})", 1289 | "trigger": "iyres\tfunction" 1290 | }, 1291 | { 1292 | "contents": "join(${1})", 1293 | "trigger": "join\tfunction" 1294 | }, 1295 | { 1296 | "contents": "kspline(${1})", 1297 | "trigger": "kspline\tfunction" 1298 | }, 1299 | { 1300 | "contents": "len(${1})", 1301 | "trigger": "len\tfunction" 1302 | }, 1303 | { 1304 | "contents": "length(${1})", 1305 | "trigger": "length\tfunction" 1306 | }, 1307 | { 1308 | "contents": "length2(${1})", 1309 | "trigger": "length2\tfunction" 1310 | }, 1311 | { 1312 | "contents": "lerp(${1})", 1313 | "trigger": "lerp\tfunction" 1314 | }, 1315 | { 1316 | "contents": "lightbounces(${1})", 1317 | "trigger": "lightbounces\tfunction" 1318 | }, 1319 | { 1320 | "contents": "lightid(${1})", 1321 | "trigger": "lightid\tfunction" 1322 | }, 1323 | { 1324 | "contents": "limit_sample_space(${1})", 1325 | "trigger": "limit_sample_space\tfunction" 1326 | }, 1327 | { 1328 | "contents": "limport(${1})", 1329 | "trigger": "limport\tfunction" 1330 | }, 1331 | { 1332 | "contents": "lkspline(${1})", 1333 | "trigger": "lkspline\tfunction" 1334 | }, 1335 | { 1336 | "contents": "log(${1})", 1337 | "trigger": "log\tfunction" 1338 | }, 1339 | { 1340 | "contents": "log10(${1})", 1341 | "trigger": "log10\tfunction" 1342 | }, 1343 | { 1344 | "contents": "lookat(${1})", 1345 | "trigger": "lookat\tfunction" 1346 | }, 1347 | { 1348 | "contents": "lspline(${1})", 1349 | "trigger": "lspline\tfunction" 1350 | }, 1351 | { 1352 | "contents": "lstrip(${1})", 1353 | "trigger": "lstrip\tfunction" 1354 | }, 1355 | { 1356 | "contents": "luminance(${1})", 1357 | "trigger": "luminance\tfunction" 1358 | }, 1359 | { 1360 | "contents": "lumname(${1})", 1361 | "trigger": "lumname\tfunction" 1362 | }, 1363 | { 1364 | "contents": "makebasis(${1})", 1365 | "trigger": "makebasis\tfunction" 1366 | }, 1367 | { 1368 | "contents": "maketransform(${1})", 1369 | "trigger": "maketransform\tfunction" 1370 | }, 1371 | { 1372 | "contents": "maskname(${1})", 1373 | "trigger": "maskname\tfunction" 1374 | }, 1375 | { 1376 | "contents": "match(${1})", 1377 | "trigger": "match\tfunction" 1378 | }, 1379 | { 1380 | "contents": "matchvex_blinn(${1})", 1381 | "trigger": "matchvex_blinn\tfunction" 1382 | }, 1383 | { 1384 | "contents": "matchvex_specular(${1})", 1385 | "trigger": "matchvex_specular\tfunction" 1386 | }, 1387 | { 1388 | "contents": "mattrib(${1})", 1389 | "trigger": "mattrib\tfunction" 1390 | }, 1391 | { 1392 | "contents": "max(${1})", 1393 | "trigger": "max\tfunction" 1394 | }, 1395 | { 1396 | "contents": "mdensity(${1})", 1397 | "trigger": "mdensity\tfunction" 1398 | }, 1399 | { 1400 | "contents": "metadata(${1})", 1401 | "trigger": "metadata\tfunction" 1402 | }, 1403 | { 1404 | "contents": "metaimport(${1})", 1405 | "trigger": "metaimport\tfunction" 1406 | }, 1407 | { 1408 | "contents": "metamarch(${1})", 1409 | "trigger": "metamarch\tfunction" 1410 | }, 1411 | { 1412 | "contents": "metanext(${1})", 1413 | "trigger": "metanext\tfunction" 1414 | }, 1415 | { 1416 | "contents": "metastart(${1})", 1417 | "trigger": "metastart\tfunction" 1418 | }, 1419 | { 1420 | "contents": "metaweight(${1})", 1421 | "trigger": "metaweight\tfunction" 1422 | }, 1423 | { 1424 | "contents": "min(${1})", 1425 | "trigger": "min\tfunction" 1426 | }, 1427 | { 1428 | "contents": "minpos(${1})", 1429 | "trigger": "minpos\tfunction" 1430 | }, 1431 | { 1432 | "contents": "mspace(${1})", 1433 | "trigger": "mspace\tfunction" 1434 | }, 1435 | { 1436 | "contents": "nametopoint(${1})", 1437 | "trigger": "nametopoint\tfunction" 1438 | }, 1439 | { 1440 | "contents": "nametoprim(${1})", 1441 | "trigger": "nametoprim\tfunction" 1442 | }, 1443 | { 1444 | "contents": "nbouncetypes(${1})", 1445 | "trigger": "nbouncetypes\tfunction" 1446 | }, 1447 | { 1448 | "contents": "nearpoint(${1})", 1449 | "trigger": "nearpoint\tfunction" 1450 | }, 1451 | { 1452 | "contents": "nearpoints(${1})", 1453 | "trigger": "nearpoints\tfunction" 1454 | }, 1455 | { 1456 | "contents": "nedgesgroup(${1})", 1457 | "trigger": "nedgesgroup\tfunction" 1458 | }, 1459 | { 1460 | "contents": "neighbour(${1})", 1461 | "trigger": "neighbour\tfunction" 1462 | }, 1463 | { 1464 | "contents": "neighbourcount(${1})", 1465 | "trigger": "neighbourcount\tfunction" 1466 | }, 1467 | { 1468 | "contents": "neighbours(${1})", 1469 | "trigger": "neighbours\tfunction" 1470 | }, 1471 | { 1472 | "contents": "newgroup(${1})", 1473 | "trigger": "newgroup\tfunction" 1474 | }, 1475 | { 1476 | "contents": "newsampler(${1})", 1477 | "trigger": "newsampler\tfunction" 1478 | }, 1479 | { 1480 | "contents": "nextsample(${1})", 1481 | "trigger": "nextsample\tfunction" 1482 | }, 1483 | { 1484 | "contents": "ninput(${1})", 1485 | "trigger": "ninput\tfunction" 1486 | }, 1487 | { 1488 | "contents": "ninputs(${1})", 1489 | "trigger": "ninputs\tfunction" 1490 | }, 1491 | { 1492 | "contents": "noise(${1})", 1493 | "trigger": "noise\tfunction" 1494 | }, 1495 | { 1496 | "contents": "noised(${1})", 1497 | "trigger": "noised\tfunction" 1498 | }, 1499 | { 1500 | "contents": "normal_bsdf(${1})", 1501 | "trigger": "normal_bsdf\tfunction" 1502 | }, 1503 | { 1504 | "contents": "normalize(${1})", 1505 | "trigger": "normalize\tfunction" 1506 | }, 1507 | { 1508 | "contents": "normalname(${1})", 1509 | "trigger": "normalname\tfunction" 1510 | }, 1511 | { 1512 | "contents": "npoints(${1})", 1513 | "trigger": "npoints\tfunction" 1514 | }, 1515 | { 1516 | "contents": "npointsgroup(${1})", 1517 | "trigger": "npointsgroup\tfunction" 1518 | }, 1519 | { 1520 | "contents": "nprimitives(${1})", 1521 | "trigger": "nprimitives\tfunction" 1522 | }, 1523 | { 1524 | "contents": "nprimitivesgroup(${1})", 1525 | "trigger": "nprimitivesgroup\tfunction" 1526 | }, 1527 | { 1528 | "contents": "nrandom(${1})", 1529 | "trigger": "nrandom\tfunction" 1530 | }, 1531 | { 1532 | "contents": "ntransform(${1})", 1533 | "trigger": "ntransform\tfunction" 1534 | }, 1535 | { 1536 | "contents": "nuniqueval(${1})", 1537 | "trigger": "nuniqueval\tfunction" 1538 | }, 1539 | { 1540 | "contents": "nvertices(${1})", 1541 | "trigger": "nvertices\tfunction" 1542 | }, 1543 | { 1544 | "contents": "nverticesgroup(${1})", 1545 | "trigger": "nverticesgroup\tfunction" 1546 | }, 1547 | { 1548 | "contents": "occlusion(${1})", 1549 | "trigger": "occlusion\tfunction" 1550 | }, 1551 | { 1552 | "contents": "ocean_sample(${1})", 1553 | "trigger": "ocean_sample\tfunction" 1554 | }, 1555 | { 1556 | "contents": "ocio_import(${1})", 1557 | "trigger": "ocio_import\tfunction" 1558 | }, 1559 | { 1560 | "contents": "ocio_spaces(${1})", 1561 | "trigger": "ocio_spaces\tfunction" 1562 | }, 1563 | { 1564 | "contents": "ocio_transform(${1})", 1565 | "trigger": "ocio_transform\tfunction" 1566 | }, 1567 | { 1568 | "contents": "onoise(${1})", 1569 | "trigger": "onoise\tfunction" 1570 | }, 1571 | { 1572 | "contents": "opdigits(${1})", 1573 | "trigger": "opdigits\tfunction" 1574 | }, 1575 | { 1576 | "contents": "opend(${1})", 1577 | "trigger": "opend\tfunction" 1578 | }, 1579 | { 1580 | "contents": "opfullpath(${1})", 1581 | "trigger": "opfullpath\tfunction" 1582 | }, 1583 | { 1584 | "contents": "opparentbonetransform(${1})", 1585 | "trigger": "opparentbonetransform\tfunction" 1586 | }, 1587 | { 1588 | "contents": "opparenttransform(${1})", 1589 | "trigger": "opparenttransform\tfunction" 1590 | }, 1591 | { 1592 | "contents": "opparmtransform(${1})", 1593 | "trigger": "opparmtransform\tfunction" 1594 | }, 1595 | { 1596 | "contents": "oppreconstrainttransform(${1})", 1597 | "trigger": "oppreconstrainttransform\tfunction" 1598 | }, 1599 | { 1600 | "contents": "oppretransform(${1})", 1601 | "trigger": "oppretransform\tfunction" 1602 | }, 1603 | { 1604 | "contents": "opstart(${1})", 1605 | "trigger": "opstart\tfunction" 1606 | }, 1607 | { 1608 | "contents": "optransform(${1})", 1609 | "trigger": "optransform\tfunction" 1610 | }, 1611 | { 1612 | "contents": "ord(${1})", 1613 | "trigger": "ord\tfunction" 1614 | }, 1615 | { 1616 | "contents": "osd_facecount(${1})", 1617 | "trigger": "osd_facecount\tfunction" 1618 | }, 1619 | { 1620 | "contents": "osd_firstpatch(${1})", 1621 | "trigger": "osd_firstpatch\tfunction" 1622 | }, 1623 | { 1624 | "contents": "osd_limitsurface(${1})", 1625 | "trigger": "osd_limitsurface\tfunction" 1626 | }, 1627 | { 1628 | "contents": "osd_limitsurfacevertex(${1})", 1629 | "trigger": "osd_limitsurfacevertex\tfunction" 1630 | }, 1631 | { 1632 | "contents": "osd_lookupface(${1})", 1633 | "trigger": "osd_lookupface\tfunction" 1634 | }, 1635 | { 1636 | "contents": "osd_lookuppatch(${1})", 1637 | "trigger": "osd_lookuppatch\tfunction" 1638 | }, 1639 | { 1640 | "contents": "osd_patchcount(${1})", 1641 | "trigger": "osd_patchcount\tfunction" 1642 | }, 1643 | { 1644 | "contents": "osd_patches(${1})", 1645 | "trigger": "osd_patches\tfunction" 1646 | }, 1647 | { 1648 | "contents": "outerproduct(${1})", 1649 | "trigger": "outerproduct\tfunction" 1650 | }, 1651 | { 1652 | "contents": "ow_nspace(${1})", 1653 | "trigger": "ow_nspace\tfunction" 1654 | }, 1655 | { 1656 | "contents": "ow_space(${1})", 1657 | "trigger": "ow_space\tfunction" 1658 | }, 1659 | { 1660 | "contents": "ow_vspace(${1})", 1661 | "trigger": "ow_vspace\tfunction" 1662 | }, 1663 | { 1664 | "contents": "pack_inttosafefloat(${1})", 1665 | "trigger": "pack_inttosafefloat\tfunction" 1666 | }, 1667 | { 1668 | "contents": "pathtrace(${1})", 1669 | "trigger": "pathtrace\tfunction" 1670 | }, 1671 | { 1672 | "contents": "pcclose(${1})", 1673 | "trigger": "pcclose\tfunction" 1674 | }, 1675 | { 1676 | "contents": "pcconvex(${1})", 1677 | "trigger": "pcconvex\tfunction" 1678 | }, 1679 | { 1680 | "contents": "pcexport(${1})", 1681 | "trigger": "pcexport\tfunction" 1682 | }, 1683 | { 1684 | "contents": "pcfarthest(${1})", 1685 | "trigger": "pcfarthest\tfunction" 1686 | }, 1687 | { 1688 | "contents": "pcfilter(${1})", 1689 | "trigger": "pcfilter\tfunction" 1690 | }, 1691 | { 1692 | "contents": "pcfind(${1})", 1693 | "trigger": "pcfind\tfunction" 1694 | }, 1695 | { 1696 | "contents": "pcfind_radius(${1})", 1697 | "trigger": "pcfind_radius\tfunction" 1698 | }, 1699 | { 1700 | "contents": "pcgenerate(${1})", 1701 | "trigger": "pcgenerate\tfunction" 1702 | }, 1703 | { 1704 | "contents": "pcimport(${1})", 1705 | "trigger": "pcimport\tfunction" 1706 | }, 1707 | { 1708 | "contents": "pcimportbyidx3(${1})", 1709 | "trigger": "pcimportbyidx3\tfunction" 1710 | }, 1711 | { 1712 | "contents": "pcimportbyidx4(${1})", 1713 | "trigger": "pcimportbyidx4\tfunction" 1714 | }, 1715 | { 1716 | "contents": "pcimportbyidxf(${1})", 1717 | "trigger": "pcimportbyidxf\tfunction" 1718 | }, 1719 | { 1720 | "contents": "pcimportbyidxi(${1})", 1721 | "trigger": "pcimportbyidxi\tfunction" 1722 | }, 1723 | { 1724 | "contents": "pcimportbyidxp(${1})", 1725 | "trigger": "pcimportbyidxp\tfunction" 1726 | }, 1727 | { 1728 | "contents": "pcimportbyidxs(${1})", 1729 | "trigger": "pcimportbyidxs\tfunction" 1730 | }, 1731 | { 1732 | "contents": "pcimportbyidxv(${1})", 1733 | "trigger": "pcimportbyidxv\tfunction" 1734 | }, 1735 | { 1736 | "contents": "pciterate(${1})", 1737 | "trigger": "pciterate\tfunction" 1738 | }, 1739 | { 1740 | "contents": "pcnumfound(${1})", 1741 | "trigger": "pcnumfound\tfunction" 1742 | }, 1743 | { 1744 | "contents": "pcopen(${1})", 1745 | "trigger": "pcopen\tfunction" 1746 | }, 1747 | { 1748 | "contents": "pcopenlod(${1})", 1749 | "trigger": "pcopenlod\tfunction" 1750 | }, 1751 | { 1752 | "contents": "pcsampleleaf(${1})", 1753 | "trigger": "pcsampleleaf\tfunction" 1754 | }, 1755 | { 1756 | "contents": "pcsize(${1})", 1757 | "trigger": "pcsize\tfunction" 1758 | }, 1759 | { 1760 | "contents": "pcunshaded(${1})", 1761 | "trigger": "pcunshaded\tfunction" 1762 | }, 1763 | { 1764 | "contents": "pcwrite(${1})", 1765 | "trigger": "pcwrite\tfunction" 1766 | }, 1767 | { 1768 | "contents": "pgfind(${1})", 1769 | "trigger": "pgfind\tfunction" 1770 | }, 1771 | { 1772 | "contents": "phong(${1})", 1773 | "trigger": "phong\tfunction" 1774 | }, 1775 | { 1776 | "contents": "phongBRDF(${1})", 1777 | "trigger": "phongBRDF\tfunction" 1778 | }, 1779 | { 1780 | "contents": "phonglobe(${1})", 1781 | "trigger": "phonglobe\tfunction" 1782 | }, 1783 | { 1784 | "contents": "photonmap(${1})", 1785 | "trigger": "photonmap\tfunction" 1786 | }, 1787 | { 1788 | "contents": "planeindex(${1})", 1789 | "trigger": "planeindex\tfunction" 1790 | }, 1791 | { 1792 | "contents": "planename(${1})", 1793 | "trigger": "planename\tfunction" 1794 | }, 1795 | { 1796 | "contents": "planepointdistance(${1})", 1797 | "trigger": "planepointdistance\tfunction" 1798 | }, 1799 | { 1800 | "contents": "planesize(${1})", 1801 | "trigger": "planesize\tfunction" 1802 | }, 1803 | { 1804 | "contents": "planesphereintersect(${1})", 1805 | "trigger": "planesphereintersect\tfunction" 1806 | }, 1807 | { 1808 | "contents": "pluralize(${1})", 1809 | "trigger": "pluralize\tfunction" 1810 | }, 1811 | { 1812 | "contents": "pnoise(${1})", 1813 | "trigger": "pnoise\tfunction" 1814 | }, 1815 | { 1816 | "contents": "point(${1})", 1817 | "trigger": "point\tfunction" 1818 | }, 1819 | { 1820 | "contents": "pointattrib(${1})", 1821 | "trigger": "pointattrib\tfunction" 1822 | }, 1823 | { 1824 | "contents": "pointattribsize(${1})", 1825 | "trigger": "pointattribsize\tfunction" 1826 | }, 1827 | { 1828 | "contents": "pointattribtype(${1})", 1829 | "trigger": "pointattribtype\tfunction" 1830 | }, 1831 | { 1832 | "contents": "pointattribtypeinfo(${1})", 1833 | "trigger": "pointattribtypeinfo\tfunction" 1834 | }, 1835 | { 1836 | "contents": "pointedge(${1})", 1837 | "trigger": "pointedge\tfunction" 1838 | }, 1839 | { 1840 | "contents": "pointhedge(${1})", 1841 | "trigger": "pointhedge\tfunction" 1842 | }, 1843 | { 1844 | "contents": "pointhedgenext(${1})", 1845 | "trigger": "pointhedgenext\tfunction" 1846 | }, 1847 | { 1848 | "contents": "pointname(${1})", 1849 | "trigger": "pointname\tfunction" 1850 | }, 1851 | { 1852 | "contents": "pointprims(${1})", 1853 | "trigger": "pointprims\tfunction" 1854 | }, 1855 | { 1856 | "contents": "pointvertex(${1})", 1857 | "trigger": "pointvertex\tfunction" 1858 | }, 1859 | { 1860 | "contents": "pointvertices(${1})", 1861 | "trigger": "pointvertices\tfunction" 1862 | }, 1863 | { 1864 | "contents": "polardecomp(${1})", 1865 | "trigger": "polardecomp\tfunction" 1866 | }, 1867 | { 1868 | "contents": "pop(${1})", 1869 | "trigger": "pop\tfunction" 1870 | }, 1871 | { 1872 | "contents": "pow(${1})", 1873 | "trigger": "pow\tfunction" 1874 | }, 1875 | { 1876 | "contents": "predicate_incircle(${1})", 1877 | "trigger": "predicate_incircle\tfunction" 1878 | }, 1879 | { 1880 | "contents": "predicate_insphere(${1})", 1881 | "trigger": "predicate_insphere\tfunction" 1882 | }, 1883 | { 1884 | "contents": "predicate_orient2d(${1})", 1885 | "trigger": "predicate_orient2d\tfunction" 1886 | }, 1887 | { 1888 | "contents": "predicate_orient3d(${1})", 1889 | "trigger": "predicate_orient3d\tfunction" 1890 | }, 1891 | { 1892 | "contents": "prim(${1})", 1893 | "trigger": "prim\tfunction" 1894 | }, 1895 | { 1896 | "contents": "prim_attribute(${1})", 1897 | "trigger": "prim_attribute\tfunction" 1898 | }, 1899 | { 1900 | "contents": "prim_normal(${1})", 1901 | "trigger": "prim_normal\tfunction" 1902 | }, 1903 | { 1904 | "contents": "primarclen(${1})", 1905 | "trigger": "primarclen\tfunction" 1906 | }, 1907 | { 1908 | "contents": "primattrib(${1})", 1909 | "trigger": "primattrib\tfunction" 1910 | }, 1911 | { 1912 | "contents": "primattribsize(${1})", 1913 | "trigger": "primattribsize\tfunction" 1914 | }, 1915 | { 1916 | "contents": "primattribtype(${1})", 1917 | "trigger": "primattribtype\tfunction" 1918 | }, 1919 | { 1920 | "contents": "primattribtypeinfo(${1})", 1921 | "trigger": "primattribtypeinfo\tfunction" 1922 | }, 1923 | { 1924 | "contents": "primduv(${1})", 1925 | "trigger": "primduv\tfunction" 1926 | }, 1927 | { 1928 | "contents": "primfind(${1})", 1929 | "trigger": "primfind\tfunction" 1930 | }, 1931 | { 1932 | "contents": "primhedge(${1})", 1933 | "trigger": "primhedge\tfunction" 1934 | }, 1935 | { 1936 | "contents": "primintrinsic(${1})", 1937 | "trigger": "primintrinsic\tfunction" 1938 | }, 1939 | { 1940 | "contents": "primpoint(${1})", 1941 | "trigger": "primpoint\tfunction" 1942 | }, 1943 | { 1944 | "contents": "primpoints(${1})", 1945 | "trigger": "primpoints\tfunction" 1946 | }, 1947 | { 1948 | "contents": "primuv(${1})", 1949 | "trigger": "primuv\tfunction" 1950 | }, 1951 | { 1952 | "contents": "primuvconvert(${1})", 1953 | "trigger": "primuvconvert\tfunction" 1954 | }, 1955 | { 1956 | "contents": "primvertex(${1})", 1957 | "trigger": "primvertex\tfunction" 1958 | }, 1959 | { 1960 | "contents": "primvertexcount(${1})", 1961 | "trigger": "primvertexcount\tfunction" 1962 | }, 1963 | { 1964 | "contents": "primvertices(${1})", 1965 | "trigger": "primvertices\tfunction" 1966 | }, 1967 | { 1968 | "contents": "print_once(${1})", 1969 | "trigger": "print_once\tfunction" 1970 | }, 1971 | { 1972 | "contents": "printf(${1})", 1973 | "trigger": "printf\tfunction" 1974 | }, 1975 | { 1976 | "contents": "product(${1})", 1977 | "trigger": "product\tfunction" 1978 | }, 1979 | { 1980 | "contents": "ptexture(${1})", 1981 | "trigger": "ptexture\tfunction" 1982 | }, 1983 | { 1984 | "contents": "ptlined(${1})", 1985 | "trigger": "ptlined\tfunction" 1986 | }, 1987 | { 1988 | "contents": "ptransform(${1})", 1989 | "trigger": "ptransform\tfunction" 1990 | }, 1991 | { 1992 | "contents": "push(${1})", 1993 | "trigger": "push\tfunction" 1994 | }, 1995 | { 1996 | "contents": "qconvert(${1})", 1997 | "trigger": "qconvert\tfunction" 1998 | }, 1999 | { 2000 | "contents": "qdistance(${1})", 2001 | "trigger": "qdistance\tfunction" 2002 | }, 2003 | { 2004 | "contents": "qinvert(${1})", 2005 | "trigger": "qinvert\tfunction" 2006 | }, 2007 | { 2008 | "contents": "qmultiply(${1})", 2009 | "trigger": "qmultiply\tfunction" 2010 | }, 2011 | { 2012 | "contents": "qrotate(${1})", 2013 | "trigger": "qrotate\tfunction" 2014 | }, 2015 | { 2016 | "contents": "quaternion(${1})", 2017 | "trigger": "quaternion\tfunction" 2018 | }, 2019 | { 2020 | "contents": "radians(${1})", 2021 | "trigger": "radians\tfunction" 2022 | }, 2023 | { 2024 | "contents": "rand(${1})", 2025 | "trigger": "rand\tfunction" 2026 | }, 2027 | { 2028 | "contents": "random(${1})", 2029 | "trigger": "random\tfunction" 2030 | }, 2031 | { 2032 | "contents": "random_fhash(${1})", 2033 | "trigger": "random_fhash\tfunction" 2034 | }, 2035 | { 2036 | "contents": "random_ihash(${1})", 2037 | "trigger": "random_ihash\tfunction" 2038 | }, 2039 | { 2040 | "contents": "random_shash(${1})", 2041 | "trigger": "random_shash\tfunction" 2042 | }, 2043 | { 2044 | "contents": "random_sobol(${1})", 2045 | "trigger": "random_sobol\tfunction" 2046 | }, 2047 | { 2048 | "contents": "rawbumpmap(${1})", 2049 | "trigger": "rawbumpmap\tfunction" 2050 | }, 2051 | { 2052 | "contents": "rawbumpmapA(${1})", 2053 | "trigger": "rawbumpmapA\tfunction" 2054 | }, 2055 | { 2056 | "contents": "rawbumpmapB(${1})", 2057 | "trigger": "rawbumpmapB\tfunction" 2058 | }, 2059 | { 2060 | "contents": "rawbumpmapG(${1})", 2061 | "trigger": "rawbumpmapG\tfunction" 2062 | }, 2063 | { 2064 | "contents": "rawbumpmapL(${1})", 2065 | "trigger": "rawbumpmapL\tfunction" 2066 | }, 2067 | { 2068 | "contents": "rawbumpmapR(${1})", 2069 | "trigger": "rawbumpmapR\tfunction" 2070 | }, 2071 | { 2072 | "contents": "rawcolormap(${1})", 2073 | "trigger": "rawcolormap\tfunction" 2074 | }, 2075 | { 2076 | "contents": "rayhittest(${1})", 2077 | "trigger": "rayhittest\tfunction" 2078 | }, 2079 | { 2080 | "contents": "rayimport(${1})", 2081 | "trigger": "rayimport\tfunction" 2082 | }, 2083 | { 2084 | "contents": "re_find(${1})", 2085 | "trigger": "re_find\tfunction" 2086 | }, 2087 | { 2088 | "contents": "re_findall(${1})", 2089 | "trigger": "re_findall\tfunction" 2090 | }, 2091 | { 2092 | "contents": "re_match(${1})", 2093 | "trigger": "re_match\tfunction" 2094 | }, 2095 | { 2096 | "contents": "re_replace(${1})", 2097 | "trigger": "re_replace\tfunction" 2098 | }, 2099 | { 2100 | "contents": "re_split(${1})", 2101 | "trigger": "re_split\tfunction" 2102 | }, 2103 | { 2104 | "contents": "reflect(${1})", 2105 | "trigger": "reflect\tfunction" 2106 | }, 2107 | { 2108 | "contents": "reflectlight(${1})", 2109 | "trigger": "reflectlight\tfunction" 2110 | }, 2111 | { 2112 | "contents": "refract(${1})", 2113 | "trigger": "refract\tfunction" 2114 | }, 2115 | { 2116 | "contents": "refractlight(${1})", 2117 | "trigger": "refractlight\tfunction" 2118 | }, 2119 | { 2120 | "contents": "relativepath(${1})", 2121 | "trigger": "relativepath\tfunction" 2122 | }, 2123 | { 2124 | "contents": "relbbox(${1})", 2125 | "trigger": "relbbox\tfunction" 2126 | }, 2127 | { 2128 | "contents": "relpointbbox(${1})", 2129 | "trigger": "relpointbbox\tfunction" 2130 | }, 2131 | { 2132 | "contents": "removegroup(${1})", 2133 | "trigger": "removegroup\tfunction" 2134 | }, 2135 | { 2136 | "contents": "removeindex(${1})", 2137 | "trigger": "removeindex\tfunction" 2138 | }, 2139 | { 2140 | "contents": "removepoint(${1})", 2141 | "trigger": "removepoint\tfunction" 2142 | }, 2143 | { 2144 | "contents": "removeprim(${1})", 2145 | "trigger": "removeprim\tfunction" 2146 | }, 2147 | { 2148 | "contents": "removevalue(${1})", 2149 | "trigger": "removevalue\tfunction" 2150 | }, 2151 | { 2152 | "contents": "renderstate(${1})", 2153 | "trigger": "renderstate\tfunction" 2154 | }, 2155 | { 2156 | "contents": "reorder(${1})", 2157 | "trigger": "reorder\tfunction" 2158 | }, 2159 | { 2160 | "contents": "resample_linear(${1})", 2161 | "trigger": "resample_linear\tfunction" 2162 | }, 2163 | { 2164 | "contents": "resize(${1})", 2165 | "trigger": "resize\tfunction" 2166 | }, 2167 | { 2168 | "contents": "resolvemissedray(${1})", 2169 | "trigger": "resolvemissedray\tfunction" 2170 | }, 2171 | { 2172 | "contents": "reverse(${1})", 2173 | "trigger": "reverse\tfunction" 2174 | }, 2175 | { 2176 | "contents": "rgbtohsv(${1})", 2177 | "trigger": "rgbtohsv\tfunction" 2178 | }, 2179 | { 2180 | "contents": "rgbtoxyz(${1})", 2181 | "trigger": "rgbtoxyz\tfunction" 2182 | }, 2183 | { 2184 | "contents": "rint(${1})", 2185 | "trigger": "rint\tfunction" 2186 | }, 2187 | { 2188 | "contents": "rotate(${1})", 2189 | "trigger": "rotate\tfunction" 2190 | }, 2191 | { 2192 | "contents": "rotate_x_to(${1})", 2193 | "trigger": "rotate_x_to\tfunction" 2194 | }, 2195 | { 2196 | "contents": "rstrip(${1})", 2197 | "trigger": "rstrip\tfunction" 2198 | }, 2199 | { 2200 | "contents": "sample_bsdf(${1})", 2201 | "trigger": "sample_bsdf\tfunction" 2202 | }, 2203 | { 2204 | "contents": "sample_cauchy(${1})", 2205 | "trigger": "sample_cauchy\tfunction" 2206 | }, 2207 | { 2208 | "contents": "sample_cdf(${1})", 2209 | "trigger": "sample_cdf\tfunction" 2210 | }, 2211 | { 2212 | "contents": "sample_circle_arc(${1})", 2213 | "trigger": "sample_circle_arc\tfunction" 2214 | }, 2215 | { 2216 | "contents": "sample_circle_edge_uniform(${1})", 2217 | "trigger": "sample_circle_edge_uniform\tfunction" 2218 | }, 2219 | { 2220 | "contents": "sample_circle_slice(${1})", 2221 | "trigger": "sample_circle_slice\tfunction" 2222 | }, 2223 | { 2224 | "contents": "sample_circle_uniform(${1})", 2225 | "trigger": "sample_circle_uniform\tfunction" 2226 | }, 2227 | { 2228 | "contents": "sample_direction_cone(${1})", 2229 | "trigger": "sample_direction_cone\tfunction" 2230 | }, 2231 | { 2232 | "contents": "sample_direction_uniform(${1})", 2233 | "trigger": "sample_direction_uniform\tfunction" 2234 | }, 2235 | { 2236 | "contents": "sample_discrete(${1})", 2237 | "trigger": "sample_discrete\tfunction" 2238 | }, 2239 | { 2240 | "contents": "sample_exponential(${1})", 2241 | "trigger": "sample_exponential\tfunction" 2242 | }, 2243 | { 2244 | "contents": "sample_geometry(${1})", 2245 | "trigger": "sample_geometry\tfunction" 2246 | }, 2247 | { 2248 | "contents": "sample_hemisphere(${1})", 2249 | "trigger": "sample_hemisphere\tfunction" 2250 | }, 2251 | { 2252 | "contents": "sample_hypersphere_cone(${1})", 2253 | "trigger": "sample_hypersphere_cone\tfunction" 2254 | }, 2255 | { 2256 | "contents": "sample_hypersphere_uniform(${1})", 2257 | "trigger": "sample_hypersphere_uniform\tfunction" 2258 | }, 2259 | { 2260 | "contents": "sample_light(${1})", 2261 | "trigger": "sample_light\tfunction" 2262 | }, 2263 | { 2264 | "contents": "sample_lognormal(${1})", 2265 | "trigger": "sample_lognormal\tfunction" 2266 | }, 2267 | { 2268 | "contents": "sample_lognormal_by_median(${1})", 2269 | "trigger": "sample_lognormal_by_median\tfunction" 2270 | }, 2271 | { 2272 | "contents": "sample_normal(${1})", 2273 | "trigger": "sample_normal\tfunction" 2274 | }, 2275 | { 2276 | "contents": "sample_orientation_cone(${1})", 2277 | "trigger": "sample_orientation_cone\tfunction" 2278 | }, 2279 | { 2280 | "contents": "sample_orientation_uniform(${1})", 2281 | "trigger": "sample_orientation_uniform\tfunction" 2282 | }, 2283 | { 2284 | "contents": "sample_photon(${1})", 2285 | "trigger": "sample_photon\tfunction" 2286 | }, 2287 | { 2288 | "contents": "sample_sphere_cone(${1})", 2289 | "trigger": "sample_sphere_cone\tfunction" 2290 | }, 2291 | { 2292 | "contents": "sample_sphere_uniform(${1})", 2293 | "trigger": "sample_sphere_uniform\tfunction" 2294 | }, 2295 | { 2296 | "contents": "sampledisk(${1})", 2297 | "trigger": "sampledisk\tfunction" 2298 | }, 2299 | { 2300 | "contents": "scale(${1})", 2301 | "trigger": "scale\tfunction" 2302 | }, 2303 | { 2304 | "contents": "scatter(${1})", 2305 | "trigger": "scatter\tfunction" 2306 | }, 2307 | { 2308 | "contents": "select(${1})", 2309 | "trigger": "select\tfunction" 2310 | }, 2311 | { 2312 | "contents": "sensor_panorama_create(${1})", 2313 | "trigger": "sensor_panorama_create\tfunction" 2314 | }, 2315 | { 2316 | "contents": "sensor_panorama_getcolor(${1})", 2317 | "trigger": "sensor_panorama_getcolor\tfunction" 2318 | }, 2319 | { 2320 | "contents": "sensor_panorama_getcone(${1})", 2321 | "trigger": "sensor_panorama_getcone\tfunction" 2322 | }, 2323 | { 2324 | "contents": "sensor_panorama_getdepth(${1})", 2325 | "trigger": "sensor_panorama_getdepth\tfunction" 2326 | }, 2327 | { 2328 | "contents": "sensor_save(${1})", 2329 | "trigger": "sensor_save\tfunction" 2330 | }, 2331 | { 2332 | "contents": "serialize(${1})", 2333 | "trigger": "serialize\tfunction" 2334 | }, 2335 | { 2336 | "contents": "set(${1})", 2337 | "trigger": "set\tfunction" 2338 | }, 2339 | { 2340 | "contents": "setagentclipnames(${1})", 2341 | "trigger": "setagentclipnames\tfunction" 2342 | }, 2343 | { 2344 | "contents": "setagentclips(${1})", 2345 | "trigger": "setagentclips\tfunction" 2346 | }, 2347 | { 2348 | "contents": "setagentcliptimes(${1})", 2349 | "trigger": "setagentcliptimes\tfunction" 2350 | }, 2351 | { 2352 | "contents": "setagentclipweights(${1})", 2353 | "trigger": "setagentclipweights\tfunction" 2354 | }, 2355 | { 2356 | "contents": "setagentcollisionlayer(${1})", 2357 | "trigger": "setagentcollisionlayer\tfunction" 2358 | }, 2359 | { 2360 | "contents": "setagentcurrentlayer(${1})", 2361 | "trigger": "setagentcurrentlayer\tfunction" 2362 | }, 2363 | { 2364 | "contents": "setagentlocaltransform(${1})", 2365 | "trigger": "setagentlocaltransform\tfunction" 2366 | }, 2367 | { 2368 | "contents": "setagentlocaltransforms(${1})", 2369 | "trigger": "setagentlocaltransforms\tfunction" 2370 | }, 2371 | { 2372 | "contents": "setagentworldtransform(${1})", 2373 | "trigger": "setagentworldtransform\tfunction" 2374 | }, 2375 | { 2376 | "contents": "setagentworldtransforms(${1})", 2377 | "trigger": "setagentworldtransforms\tfunction" 2378 | }, 2379 | { 2380 | "contents": "setattrib(${1})", 2381 | "trigger": "setattrib\tfunction" 2382 | }, 2383 | { 2384 | "contents": "setattribtypeinfo(${1})", 2385 | "trigger": "setattribtypeinfo\tfunction" 2386 | }, 2387 | { 2388 | "contents": "setcomp(${1})", 2389 | "trigger": "setcomp\tfunction" 2390 | }, 2391 | { 2392 | "contents": "setcurrentlight(${1})", 2393 | "trigger": "setcurrentlight\tfunction" 2394 | }, 2395 | { 2396 | "contents": "setdetailattrib(${1})", 2397 | "trigger": "setdetailattrib\tfunction" 2398 | }, 2399 | { 2400 | "contents": "setedgegroup(${1})", 2401 | "trigger": "setedgegroup\tfunction" 2402 | }, 2403 | { 2404 | "contents": "setpointattrib(${1})", 2405 | "trigger": "setpointattrib\tfunction" 2406 | }, 2407 | { 2408 | "contents": "setpointgroup(${1})", 2409 | "trigger": "setpointgroup\tfunction" 2410 | }, 2411 | { 2412 | "contents": "setprimattrib(${1})", 2413 | "trigger": "setprimattrib\tfunction" 2414 | }, 2415 | { 2416 | "contents": "setprimgroup(${1})", 2417 | "trigger": "setprimgroup\tfunction" 2418 | }, 2419 | { 2420 | "contents": "setprimintrinsic(${1})", 2421 | "trigger": "setprimintrinsic\tfunction" 2422 | }, 2423 | { 2424 | "contents": "setprimvertex(${1})", 2425 | "trigger": "setprimvertex\tfunction" 2426 | }, 2427 | { 2428 | "contents": "setsamplestore(${1})", 2429 | "trigger": "setsamplestore\tfunction" 2430 | }, 2431 | { 2432 | "contents": "setvertexattrib(${1})", 2433 | "trigger": "setvertexattrib\tfunction" 2434 | }, 2435 | { 2436 | "contents": "setvertexgroup(${1})", 2437 | "trigger": "setvertexgroup\tfunction" 2438 | }, 2439 | { 2440 | "contents": "setvertexpoint(${1})", 2441 | "trigger": "setvertexpoint\tfunction" 2442 | }, 2443 | { 2444 | "contents": "shadow(${1})", 2445 | "trigger": "shadow\tfunction" 2446 | }, 2447 | { 2448 | "contents": "shadow_light(${1})", 2449 | "trigger": "shadow_light\tfunction" 2450 | }, 2451 | { 2452 | "contents": "shadowmap(${1})", 2453 | "trigger": "shadowmap\tfunction" 2454 | }, 2455 | { 2456 | "contents": "shimport(${1})", 2457 | "trigger": "shimport\tfunction" 2458 | }, 2459 | { 2460 | "contents": "shl(${1})", 2461 | "trigger": "shl\tfunction" 2462 | }, 2463 | { 2464 | "contents": "shr(${1})", 2465 | "trigger": "shr\tfunction" 2466 | }, 2467 | { 2468 | "contents": "shrz(${1})", 2469 | "trigger": "shrz\tfunction" 2470 | }, 2471 | { 2472 | "contents": "sign(${1})", 2473 | "trigger": "sign\tfunction" 2474 | }, 2475 | { 2476 | "contents": "simport(${1})", 2477 | "trigger": "simport\tfunction" 2478 | }, 2479 | { 2480 | "contents": "sin(${1})", 2481 | "trigger": "sin\tfunction" 2482 | }, 2483 | { 2484 | "contents": "sinh(${1})", 2485 | "trigger": "sinh\tfunction" 2486 | }, 2487 | { 2488 | "contents": "sleep(${1})", 2489 | "trigger": "sleep\tfunction" 2490 | }, 2491 | { 2492 | "contents": "slerp(${1})", 2493 | "trigger": "slerp\tfunction" 2494 | }, 2495 | { 2496 | "contents": "slice(${1})", 2497 | "trigger": "slice\tfunction" 2498 | }, 2499 | { 2500 | "contents": "slideframe(${1})", 2501 | "trigger": "slideframe\tfunction" 2502 | }, 2503 | { 2504 | "contents": "smooth(${1})", 2505 | "trigger": "smooth\tfunction" 2506 | }, 2507 | { 2508 | "contents": "smoothrotation(${1})", 2509 | "trigger": "smoothrotation\tfunction" 2510 | }, 2511 | { 2512 | "contents": "snoise(${1})", 2513 | "trigger": "snoise\tfunction" 2514 | }, 2515 | { 2516 | "contents": "solid_angle(${1})", 2517 | "trigger": "solid_angle\tfunction" 2518 | }, 2519 | { 2520 | "contents": "solvecubic(${1})", 2521 | "trigger": "solvecubic\tfunction" 2522 | }, 2523 | { 2524 | "contents": "solvepoly(${1})", 2525 | "trigger": "solvepoly\tfunction" 2526 | }, 2527 | { 2528 | "contents": "solvequadratic(${1})", 2529 | "trigger": "solvequadratic\tfunction" 2530 | }, 2531 | { 2532 | "contents": "sort(${1})", 2533 | "trigger": "sort\tfunction" 2534 | }, 2535 | { 2536 | "contents": "specular(${1})", 2537 | "trigger": "specular\tfunction" 2538 | }, 2539 | { 2540 | "contents": "specularBRDF(${1})", 2541 | "trigger": "specularBRDF\tfunction" 2542 | }, 2543 | { 2544 | "contents": "spline(${1})", 2545 | "trigger": "spline\tfunction" 2546 | }, 2547 | { 2548 | "contents": "split(${1})", 2549 | "trigger": "split\tfunction" 2550 | }, 2551 | { 2552 | "contents": "split_bsdf(${1})", 2553 | "trigger": "split_bsdf\tfunction" 2554 | }, 2555 | { 2556 | "contents": "splitpath(${1})", 2557 | "trigger": "splitpath\tfunction" 2558 | }, 2559 | { 2560 | "contents": "sprintf(${1})", 2561 | "trigger": "sprintf\tfunction" 2562 | }, 2563 | { 2564 | "contents": "sqrt(${1})", 2565 | "trigger": "sqrt\tfunction" 2566 | }, 2567 | { 2568 | "contents": "sssapprox(${1})", 2569 | "trigger": "sssapprox\tfunction" 2570 | }, 2571 | { 2572 | "contents": "startswith(${1})", 2573 | "trigger": "startswith\tfunction" 2574 | }, 2575 | { 2576 | "contents": "storelightexport(${1})", 2577 | "trigger": "storelightexport\tfunction" 2578 | }, 2579 | { 2580 | "contents": "strip(${1})", 2581 | "trigger": "strip\tfunction" 2582 | }, 2583 | { 2584 | "contents": "strlen(${1})", 2585 | "trigger": "strlen\tfunction" 2586 | }, 2587 | { 2588 | "contents": "sum(${1})", 2589 | "trigger": "sum\tfunction" 2590 | }, 2591 | { 2592 | "contents": "switch(${1})", 2593 | "trigger": "switch\tfunction" 2594 | }, 2595 | { 2596 | "contents": "swizzle(${1})", 2597 | "trigger": "swizzle\tfunction" 2598 | }, 2599 | { 2600 | "contents": "tan(${1})", 2601 | "trigger": "tan\tfunction" 2602 | }, 2603 | { 2604 | "contents": "tanh(${1})", 2605 | "trigger": "tanh\tfunction" 2606 | }, 2607 | { 2608 | "contents": "tet_adjacent(${1})", 2609 | "trigger": "tet_adjacent\tfunction" 2610 | }, 2611 | { 2612 | "contents": "tet_faceindex(${1})", 2613 | "trigger": "tet_faceindex\tfunction" 2614 | }, 2615 | { 2616 | "contents": "teximport(${1})", 2617 | "trigger": "teximport\tfunction" 2618 | }, 2619 | { 2620 | "contents": "texprintf(${1})", 2621 | "trigger": "texprintf\tfunction" 2622 | }, 2623 | { 2624 | "contents": "texture(${1})", 2625 | "trigger": "texture\tfunction" 2626 | }, 2627 | { 2628 | "contents": "texture3d(${1})", 2629 | "trigger": "texture3d\tfunction" 2630 | }, 2631 | { 2632 | "contents": "texture3dBox(${1})", 2633 | "trigger": "texture3dBox\tfunction" 2634 | }, 2635 | { 2636 | "contents": "titlecase(${1})", 2637 | "trigger": "titlecase\tfunction" 2638 | }, 2639 | { 2640 | "contents": "toNDC(${1})", 2641 | "trigger": "toNDC\tfunction" 2642 | }, 2643 | { 2644 | "contents": "tolower(${1})", 2645 | "trigger": "tolower\tfunction" 2646 | }, 2647 | { 2648 | "contents": "toupper(${1})", 2649 | "trigger": "toupper\tfunction" 2650 | }, 2651 | { 2652 | "contents": "trace(${1})", 2653 | "trigger": "trace\tfunction" 2654 | }, 2655 | { 2656 | "contents": "translate(${1})", 2657 | "trigger": "translate\tfunction" 2658 | }, 2659 | { 2660 | "contents": "translucent(${1})", 2661 | "trigger": "translucent\tfunction" 2662 | }, 2663 | { 2664 | "contents": "transpose(${1})", 2665 | "trigger": "transpose\tfunction" 2666 | }, 2667 | { 2668 | "contents": "trunc(${1})", 2669 | "trigger": "trunc\tfunction" 2670 | }, 2671 | { 2672 | "contents": "tw_nspace(${1})", 2673 | "trigger": "tw_nspace\tfunction" 2674 | }, 2675 | { 2676 | "contents": "tw_space(${1})", 2677 | "trigger": "tw_space\tfunction" 2678 | }, 2679 | { 2680 | "contents": "tw_vspace(${1})", 2681 | "trigger": "tw_vspace\tfunction" 2682 | }, 2683 | { 2684 | "contents": "uniqueval(${1})", 2685 | "trigger": "uniqueval\tfunction" 2686 | }, 2687 | { 2688 | "contents": "unpack_intfromsafefloat(${1})", 2689 | "trigger": "unpack_intfromsafefloat\tfunction" 2690 | }, 2691 | { 2692 | "contents": "unserialize(${1})", 2693 | "trigger": "unserialize\tfunction" 2694 | }, 2695 | { 2696 | "contents": "upush(${1})", 2697 | "trigger": "upush\tfunction" 2698 | }, 2699 | { 2700 | "contents": "uvdist(${1})", 2701 | "trigger": "uvdist\tfunction" 2702 | }, 2703 | { 2704 | "contents": "uvintersect(${1})", 2705 | "trigger": "uvintersect\tfunction" 2706 | }, 2707 | { 2708 | "contents": "uvsample(${1})", 2709 | "trigger": "uvsample\tfunction" 2710 | }, 2711 | { 2712 | "contents": "uvunwrap(${1})", 2713 | "trigger": "uvunwrap\tfunction" 2714 | }, 2715 | { 2716 | "contents": "variance(${1})", 2717 | "trigger": "variance\tfunction" 2718 | }, 2719 | { 2720 | "contents": "velocityname(${1})", 2721 | "trigger": "velocityname\tfunction" 2722 | }, 2723 | { 2724 | "contents": "vertex(${1})", 2725 | "trigger": "vertex\tfunction" 2726 | }, 2727 | { 2728 | "contents": "vertexattrib(${1})", 2729 | "trigger": "vertexattrib\tfunction" 2730 | }, 2731 | { 2732 | "contents": "vertexattribsize(${1})", 2733 | "trigger": "vertexattribsize\tfunction" 2734 | }, 2735 | { 2736 | "contents": "vertexattribtype(${1})", 2737 | "trigger": "vertexattribtype\tfunction" 2738 | }, 2739 | { 2740 | "contents": "vertexattribtypeinfo(${1})", 2741 | "trigger": "vertexattribtypeinfo\tfunction" 2742 | }, 2743 | { 2744 | "contents": "vertexhedge(${1})", 2745 | "trigger": "vertexhedge\tfunction" 2746 | }, 2747 | { 2748 | "contents": "vertexindex(${1})", 2749 | "trigger": "vertexindex\tfunction" 2750 | }, 2751 | { 2752 | "contents": "vertexnext(${1})", 2753 | "trigger": "vertexnext\tfunction" 2754 | }, 2755 | { 2756 | "contents": "vertexpoint(${1})", 2757 | "trigger": "vertexpoint\tfunction" 2758 | }, 2759 | { 2760 | "contents": "vertexprev(${1})", 2761 | "trigger": "vertexprev\tfunction" 2762 | }, 2763 | { 2764 | "contents": "vertexprim(${1})", 2765 | "trigger": "vertexprim\tfunction" 2766 | }, 2767 | { 2768 | "contents": "vertexprimindex(${1})", 2769 | "trigger": "vertexprimindex\tfunction" 2770 | }, 2771 | { 2772 | "contents": "vnoise(${1})", 2773 | "trigger": "vnoise\tfunction" 2774 | }, 2775 | { 2776 | "contents": "volume(${1})", 2777 | "trigger": "volume\tfunction" 2778 | }, 2779 | { 2780 | "contents": "volumegradient(${1})", 2781 | "trigger": "volumegradient\tfunction" 2782 | }, 2783 | { 2784 | "contents": "volumeindex(${1})", 2785 | "trigger": "volumeindex\tfunction" 2786 | }, 2787 | { 2788 | "contents": "volumeindexorigin(${1})", 2789 | "trigger": "volumeindexorigin\tfunction" 2790 | }, 2791 | { 2792 | "contents": "volumeindextopos(${1})", 2793 | "trigger": "volumeindextopos\tfunction" 2794 | }, 2795 | { 2796 | "contents": "volumeindexv(${1})", 2797 | "trigger": "volumeindexv\tfunction" 2798 | }, 2799 | { 2800 | "contents": "volumepostoindex(${1})", 2801 | "trigger": "volumepostoindex\tfunction" 2802 | }, 2803 | { 2804 | "contents": "volumeres(${1})", 2805 | "trigger": "volumeres\tfunction" 2806 | }, 2807 | { 2808 | "contents": "volumesample(${1})", 2809 | "trigger": "volumesample\tfunction" 2810 | }, 2811 | { 2812 | "contents": "volumesamplev(${1})", 2813 | "trigger": "volumesamplev\tfunction" 2814 | }, 2815 | { 2816 | "contents": "volumevoxeldiameter(${1})", 2817 | "trigger": "volumevoxeldiameter\tfunction" 2818 | }, 2819 | { 2820 | "contents": "vtransform(${1})", 2821 | "trigger": "vtransform\tfunction" 2822 | }, 2823 | { 2824 | "contents": "warning(${1})", 2825 | "trigger": "warning\tfunction" 2826 | }, 2827 | { 2828 | "contents": "wireblinn(${1})", 2829 | "trigger": "wireblinn\tfunction" 2830 | }, 2831 | { 2832 | "contents": "wirediffuse(${1})", 2833 | "trigger": "wirediffuse\tfunction" 2834 | }, 2835 | { 2836 | "contents": "wnoise(${1})", 2837 | "trigger": "wnoise\tfunction" 2838 | }, 2839 | { 2840 | "contents": "wo_nspace(${1})", 2841 | "trigger": "wo_nspace\tfunction" 2842 | }, 2843 | { 2844 | "contents": "wo_space(${1})", 2845 | "trigger": "wo_space\tfunction" 2846 | }, 2847 | { 2848 | "contents": "wo_vspace(${1})", 2849 | "trigger": "wo_vspace\tfunction" 2850 | }, 2851 | { 2852 | "contents": "writepixel(${1})", 2853 | "trigger": "writepixel\tfunction" 2854 | }, 2855 | { 2856 | "contents": "wt_nspace(${1})", 2857 | "trigger": "wt_nspace\tfunction" 2858 | }, 2859 | { 2860 | "contents": "wt_space(${1})", 2861 | "trigger": "wt_space\tfunction" 2862 | }, 2863 | { 2864 | "contents": "wt_vspace(${1})", 2865 | "trigger": "wt_vspace\tfunction" 2866 | }, 2867 | { 2868 | "contents": "xnoise(${1})", 2869 | "trigger": "xnoise\tfunction" 2870 | }, 2871 | { 2872 | "contents": "xnoised(${1})", 2873 | "trigger": "xnoised\tfunction" 2874 | }, 2875 | { 2876 | "contents": "xyzdist(${1})", 2877 | "trigger": "xyzdist\tfunction" 2878 | }, 2879 | { 2880 | "contents": "xyztorgb(${1})", 2881 | "trigger": "xyztorgb\tfunction" 2882 | } 2883 | ], 2884 | "scope": "source.vex" 2885 | } -------------------------------------------------------------------------------- /VEX.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | "extensions": 3 | [ 4 | "vfl" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /VEX.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | vfl 8 | 9 | foldingStartMarker 10 | (\{\s*(//.*)?$|^\s*// \{\{\{) 11 | foldingStopMarker 12 | ^\s*(\}|// \}\}\}$) 13 | name 14 | VEX 15 | patterns 16 | 17 | 18 | begin 19 | \b(chop|cop2|cvex|displace|fog|image3d|light|pop|shadow|sop|surface)\b 20 | beginCaptures 21 | 22 | 1 23 | 24 | name 25 | keyword.context.vex 26 | 27 | 28 | comment 29 | Defines the context of the VEX code. 30 | end 31 | \b(\w*)\s?(\() 32 | endCaptures 33 | 34 | 1 35 | 36 | name 37 | entity.name.class.vex 38 | 39 | 2 40 | 41 | name 42 | punctuation.group.vex 43 | 44 | 45 | 46 | 47 | match 48 | \b(break|continue|do|else|for|foreach|forpoints|function|gather|if|illuminance|return|while)\b 49 | name 50 | keyword.control.vex 51 | 52 | 53 | match 54 | \b(const|export)\b 55 | name 56 | storage.modifier.vex 57 | 58 | 59 | match 60 | \b(bsdf|char|color|float|int|integer|matrix|matrix2|matrix3|matrix4|normal|string|struct|typedef|union|vector|vector2|vector4|void)\b 61 | name 62 | storage.type.builtin.vex 63 | 64 | 65 | captures 66 | 67 | 1 68 | 69 | name 70 | support.function.library.vex 71 | 72 | 2 73 | 74 | name 75 | punctuation.group.vex 76 | 77 | 78 | match 79 | \b(Du|Dv|Dw|abs|accessframe|acos|addattrib|addattribute|adddetailattrib|addgroup|addpoint|addpointattrib|addprim|addprimattrib|addvariablename|addvertex|addvertexattrib|addvisualizer|agentaddclip|agentclipcatalog|agentclipchannel|agentcliplength|agentclipnames|agentclipsample|agentclipsamplelocal|agentclipsamplerate|agentclipsampleworld|agentcliptimes|agentcliptransformgroups|agentclipweights|agentcollisionlayer|agentcurrentlayer|agentlayerbindings|agentlayers|agentlayershapes|agentlocaltransform|agentlocaltransforms|agentrigchildren|agentrigfind|agentrigparent|agenttransformcount|agenttransformgroupmember|agenttransformgroups|agenttransformnames|agenttransformtolocal|agenttransformtoworld|agentworldtransform|agentworldtransforms|albedo|alphaname|ambient|anoise|append|area|argsort|array|ashikhmin|asin|assert_enabled|assign|atan|atan2|atof|atoi|atten|attrib|attribclass|attribsize|attribtype|attribtypeinfo|avg|binput|blackbody|blinn|blinnBRDF|bouncelabel|bouncemask|bumpmap|bumpmapA|bumpmapB|bumpmapG|bumpmapL|bumpmapR|bumpname|cbrt|ceil|ch|ch3|ch4|chattr|chend|chendf|chendt|chf|chi|chindex|chinput|chname|chnumchan|chp|chr|chramp|chrate|chreadbuf|chresizebuf|chs|chsetattr|chsraw|chstart|chstartf|chstartt|chv|chwritebuf|cinput|ckspline|clamp|clip|colormap|colorname|computenormal|concat|cone|cos|cosh|cracktransform|create_cdf|create_pdf|cross|cspline|ctransform|curlnoise|curlnoise2d|curlxnoise|curlxnoise2d|cvex_bsdf|degrees|depthmap|depthname|detail|detailattrib|detailattribsize|detailattribtype|detailattribtypeinfo|detailintrinsic|determinant|diffuse|diffuseBRDF|dihedral|dimport|distance|distance2|dot|dsmpixel|efit|eigenvalues|endswith|environment|erf|erf_inv|erfc|error|eulertoquaternion|eval_bsdf|exp|expand_udim|expandedgegroup|expandpointgroup|expandprimgroup|fastshadow|filamentsample|file_stat|filtershadow|filterstep|find|findattribval|findattribvalcount|finput|fit|fit01|fit10|fit11|floor|flownoise|flowpnoise|frac|fresnel|fromNDC|frontface|fuzzify|fuzzy_and|fuzzy_defuzz_centroid|fuzzy_nand|fuzzy_nor|fuzzy_not|fuzzy_nxor|fuzzy_or|fuzzy_xor|geoself|geounwrap|getattrib|getattribute|getbbox|getbbox_center|getbbox_max|getbbox_min|getbbox_size|getblurP|getbounces|getbounds|getcomp|getcomponents|getderiv|getfogname|getglobalraylevel|getgroupid|getlight|getlightid|getlightname|getlights|getlightscope|getlocalcurvature|getmaterial|getmaterialid|getobjectid|getobjectname|getphotonlight|getpointbbox|getpointbbox_center|getpointbbox_max|getpointbbox_min|getpointbbox_size|getprimid|getptextureid|getraylevel|getrayweight|getsamplestore|getscope|getsmoothP|getspace|getuvtangents|gradient|hair|hasattrib|hasdetailattrib|haslight|hasmetadata|hasplane|haspointattrib|hasprimattrib|hasvertexattrib|hedge_dstpoint|hedge_dstvertex|hedge_equivcount|hedge_isequiv|hedge_isprimary|hedge_isvalid|hedge_next|hedge_nextequiv|hedge_postdstpoint|hedge_postdstvertex|hedge_presrcpoint|hedge_presrcvertex|hedge_prev|hedge_prim|hedge_primary|hedge_srcpoint|hedge_srcvertex|henyeygreenstein|hscript_noise|hscript_rand|hscript_snoise|hscript_sturb|hscript_turb|hsvtorgb|iaspect|ichname|ident|idtopoint|idtoprim|iend|iendtime|ihasplane|import|inedgegroup|ingroup|inpointgroup|inprimgroup|insert|instance|interpolate|intersect|intersect_all|intersect_lights|inumplanes|invert|invertexgroup|iplaneindex|iplanename|iplanesize|irate|irradiance|isalpha|isbound|isconnected|isdigit|isfinite|isfogray|isframes|isnan|isotropic|israytracing|issamples|isseconds|isshadowray|istart|istarttime|isuvrendering|isvalidindex|isvarying|itoa|ixres|iyres|join|kspline|len|length|length2|lerp|lightbounces|lightid|limit_sample_space|limport|lkspline|log|log10|lookat|lspline|lstrip|luminance|lumname|makebasis|maketransform|maskname|match|matchvex_blinn|matchvex_specular|mattrib|max|mdensity|metadata|metaimport|metamarch|metanext|metastart|metaweight|min|minpos|mspace|nametopoint|nametoprim|nbouncetypes|nearpoint|nearpoints|nedgesgroup|neighbour|neighbourcount|neighbours|newgroup|newsampler|nextsample|ninput|ninputs|noise|noised|normal_bsdf|normalize|normalname|npoints|npointsgroup|nprimitives|nprimitivesgroup|nrandom|ntransform|nuniqueval|nvertices|nverticesgroup|occlusion|ocean_sample|ocio_import|ocio_spaces|ocio_transform|onoise|opdigits|opend|opfullpath|opparentbonetransform|opparenttransform|opparmtransform|oppreconstrainttransform|oppretransform|opstart|optransform|ord|osd_facecount|osd_firstpatch|osd_limitsurface|osd_limitsurfacevertex|osd_lookupface|osd_lookuppatch|osd_patchcount|osd_patches|outerproduct|ow_nspace|ow_space|ow_vspace|pack_inttosafefloat|pathtrace|pcclose|pcconvex|pcexport|pcfarthest|pcfilter|pcfind|pcfind_radius|pcgenerate|pcimport|pcimportbyidx3|pcimportbyidx4|pcimportbyidxf|pcimportbyidxi|pcimportbyidxp|pcimportbyidxs|pcimportbyidxv|pciterate|pcnumfound|pcopen|pcopenlod|pcsampleleaf|pcsize|pcunshaded|pcwrite|pgfind|phong|phongBRDF|phonglobe|photonmap|planeindex|planename|planepointdistance|planesize|planesphereintersect|pluralize|pnoise|point|pointattrib|pointattribsize|pointattribtype|pointattribtypeinfo|pointedge|pointhedge|pointhedgenext|pointname|pointprims|pointvertex|pointvertices|polardecomp|pop|pow|predicate_incircle|predicate_insphere|predicate_orient2d|predicate_orient3d|prim|prim_attribute|prim_normal|primarclen|primattrib|primattribsize|primattribtype|primattribtypeinfo|primduv|primfind|primhedge|primintrinsic|primpoint|primpoints|primuv|primuvconvert|primvertex|primvertexcount|primvertices|print_once|printf|product|ptexture|ptlined|ptransform|push|qconvert|qdistance|qinvert|qmultiply|qrotate|quaternion|radians|rand|random|random_fhash|random_ihash|random_shash|random_sobol|rawbumpmap|rawbumpmapA|rawbumpmapB|rawbumpmapG|rawbumpmapL|rawbumpmapR|rawcolormap|rayhittest|rayimport|re_find|re_findall|re_match|re_replace|re_split|reflect|reflectlight|refract|refractlight|relativepath|relbbox|relpointbbox|removegroup|removeindex|removepoint|removeprim|removevalue|renderstate|reorder|resample_linear|resize|resolvemissedray|reverse|rgbtohsv|rgbtoxyz|rint|rotate|rotate_x_to|rstrip|sample_bsdf|sample_cauchy|sample_cdf|sample_circle_arc|sample_circle_edge_uniform|sample_circle_slice|sample_circle_uniform|sample_direction_cone|sample_direction_uniform|sample_discrete|sample_exponential|sample_geometry|sample_hemisphere|sample_hypersphere_cone|sample_hypersphere_uniform|sample_light|sample_lognormal|sample_lognormal_by_median|sample_normal|sample_orientation_cone|sample_orientation_uniform|sample_photon|sample_sphere_cone|sample_sphere_uniform|sampledisk|scale|scatter|select|sensor_panorama_create|sensor_panorama_getcolor|sensor_panorama_getcone|sensor_panorama_getdepth|sensor_save|serialize|set|setagentclipnames|setagentclips|setagentcliptimes|setagentclipweights|setagentcollisionlayer|setagentcurrentlayer|setagentlocaltransform|setagentlocaltransforms|setagentworldtransform|setagentworldtransforms|setattrib|setattribtypeinfo|setcomp|setcurrentlight|setdetailattrib|setedgegroup|setpointattrib|setpointgroup|setprimattrib|setprimgroup|setprimintrinsic|setprimvertex|setsamplestore|setvertexattrib|setvertexgroup|setvertexpoint|shadow|shadow_light|shadowmap|shimport|shl|shr|shrz|sign|simport|sin|sinh|sleep|slerp|slice|slideframe|smooth|smoothrotation|snoise|solid_angle|solvecubic|solvepoly|solvequadratic|sort|specular|specularBRDF|spline|split|split_bsdf|splitpath|sprintf|sqrt|sssapprox|startswith|storelightexport|strip|strlen|sum|switch|swizzle|tan|tanh|tet_adjacent|tet_faceindex|teximport|texprintf|texture|texture3d|texture3dBox|titlecase|toNDC|tolower|toupper|trace|translate|translucent|transpose|trunc|tw_nspace|tw_space|tw_vspace|uniqueval|unpack_intfromsafefloat|unserialize|upush|uvdist|uvintersect|uvsample|uvunwrap|variance|velocityname|vertex|vertexattrib|vertexattribsize|vertexattribtype|vertexattribtypeinfo|vertexhedge|vertexindex|vertexnext|vertexpoint|vertexprev|vertexprim|vertexprimindex|vnoise|volume|volumegradient|volumeindex|volumeindexorigin|volumeindextopos|volumeindexv|volumepostoindex|volumeres|volumesample|volumesamplev|volumevoxeldiameter|vtransform|warning|wireblinn|wirediffuse|wnoise|wo_nspace|wo_space|wo_vspace|writepixel|wt_nspace|wt_space|wt_vspace|xnoise|xnoised|xyzdist|xyztorgb)\b\s*(\() 80 | 81 | 82 | begin 83 | (\w+)\s*\( 84 | beginCaptures 85 | 86 | 1 87 | 88 | name 89 | entity.name.function.vex 90 | 91 | 92 | end 93 | \) 94 | name 95 | meta.method.identifier.vex 96 | patterns 97 | 98 | 99 | include 100 | $self 101 | 102 | 103 | 104 | 105 | match 106 | \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b 107 | name 108 | constant.numeric.vex 109 | 110 | 111 | captures 112 | 113 | 1 114 | 115 | name 116 | comment.block.preprocessor.vex 117 | 118 | 2 119 | 120 | name 121 | keyword.preprocessor.vex 122 | 123 | 124 | match 125 | \s*((#define|#else|#endif|#ifndef|#ifdef|#if|#include|#pragma|#undef).*$\n?) 126 | 127 | 128 | begin 129 | " 130 | beginCaptures 131 | 132 | 1 133 | 134 | name 135 | punctuation.definition.string.begin.vex 136 | 137 | 138 | end 139 | " 140 | endCaptures 141 | 142 | 1 143 | 144 | name 145 | punctuation.definition.string.end.vex 146 | 147 | 148 | name 149 | string.quoted.double.vex 150 | patterns 151 | 152 | 153 | match 154 | \\. 155 | name 156 | constant.character.escape.vex 157 | 158 | 159 | 160 | 161 | captures 162 | 163 | 1 164 | 165 | name 166 | comment.line.double-slash.vex 167 | 168 | 2 169 | 170 | name 171 | punctuation.definition.comment.vex 172 | 173 | 174 | match 175 | \s*((//).*$\n?) 176 | 177 | 178 | begin 179 | /\* 180 | captures 181 | 182 | 1 183 | 184 | name 185 | punctuation.definition.comment.vex 186 | 187 | 188 | end 189 | \*/ 190 | name 191 | comment.block.vex 192 | 193 | 194 | match 195 | \(|\)|,|:|; 196 | name 197 | punctuation.group.vex 198 | 199 | 200 | match 201 | \+\+?|--?|\*|@|\^=?|\|\|?|\|=|&&?|&=|%=?|!=?|==?|~=?|<=?|>=?|\+=|\*=|-=|\/=? 202 | name 203 | keyword.operator.vex 204 | 205 | 206 | match 207 | \b(LN10|LN2|LOG10E|LOG2E|PI|PI_2|PI_4|SQRT1_2|SQRT2|TOLERANCE)\b 208 | name 209 | constant.language 210 | 211 | 212 | scopeName 213 | source.vex 214 | uuid 215 | edd78512-59d9-4cb6-9733-a6adcc972160 216 | 217 | 218 | -------------------------------------------------------------------------------- /src/compile_and_run.py: -------------------------------------------------------------------------------- 1 | # http://www.sidefx.com/docs/houdini13.0/vex/vcc 2 | # vcc 3 | 4 | # http://www.sidefx.com/docs/houdini13.0/ref/utils/vexexec 5 | # vexexec [-p nproc] [-t] ... 6 | 7 | import os 8 | import re 9 | import sys 10 | import platform 11 | import subprocess 12 | 13 | 14 | LIN_DEFAULT = '/opt' 15 | OSX_DEFAULT = '/Applications' 16 | WIN_DEFAULT = 'C:/Program Files/Side Effects Software' 17 | 18 | 19 | def version_tuple(name): 20 | """Given 'Houdini 13.0.376', returns the tuple (13, 0, 376).""" 21 | return tuple([int(d) for d in re.findall('[0-9]{1,4}', name)]) 22 | 23 | 24 | def common_install(): 25 | """Returns the common houdini install parent directory based on the 26 | platform as well as the regex for the install name pattern.""" 27 | plat = platform.platform(terse=True) 28 | 29 | if plat.startswith('Win'): 30 | install = WIN_DEFAULT 31 | regex = '^Houdini.*' # Houdini 13.0.376 32 | 33 | elif plat.startswith('Dar'): 34 | install = OSX_DEFAULT 35 | regex = '^Houdini.*' # Houdini 13.0.376 36 | 37 | elif plat.startswith('Lin'): 38 | install = LIN_DEFAULT 39 | regex = '^hfs.*' # hfs13.0.376 40 | 41 | else: 42 | raise Exception('Unknown platform, cannot find Houdini.') 43 | 44 | return (os.path.normpath(install), regex) 45 | 46 | 47 | def find_latest_houdini(): 48 | """Searches the default sidefx install locations for the most up to date 49 | install of houdini and returns the normalized path and version as a tuple. 50 | 51 | Example return: 52 | ( '/Applications/Houdini 13.0.376', (13, 0, 376) ).""" 53 | install, regex = common_install() 54 | 55 | # find all the houdini directories in the install parent directory 56 | versions = [] 57 | for folder in os.listdir(install): 58 | if re.match(regex, folder): 59 | versions.append(folder) 60 | 61 | # find the most up to date version in the install path by comparing the 62 | # major, minor and bug release numbers 63 | current_name = 'Houdini 0.0.0' 64 | current_mmb = (0, 0, 0) 65 | 66 | for ver in versions: 67 | # find groups of digits of min length 1, max length 4, and cast to int 68 | mmb = version_tuple(ver) 69 | 70 | if len(mmb) < 3: 71 | raise Exception('Unexpected version format.') 72 | 73 | # compare major 74 | newer = False 75 | if mmb[0] > current_mmb[0]: 76 | newer = True 77 | elif mmb[0] == current_mmb[0]: 78 | # same major, so compare minor version 79 | if mmb[1] > current_mmb[1]: 80 | newer = True 81 | elif mmb[1] == current_mmb[1]: 82 | # same minor, so compare bug version 83 | if mmb[2] > current_mmb[2]: 84 | newer = True 85 | 86 | if newer: 87 | current_name = ver 88 | current_mmb = mmb 89 | 90 | # we should now have the most current houdini install 91 | return (os.path.join(install, current_name), current_mmb) 92 | 93 | 94 | def find_houdini(): 95 | """Returns the version of Houdini specified by the hfs environment 96 | variable and failing that calls find_latest_houdini() which will search 97 | commmon default install locations. 98 | 99 | Example return: 100 | ( '/Applications/Houdini 13.0.376', (13, 0, 376) ).""" 101 | try: 102 | hfs = os.environ['HFS'] 103 | head, tail = os.path.split(hfs) 104 | return (hfs, version_tuple(tail)) 105 | 106 | except: 107 | return find_latest_houdini() 108 | 109 | 110 | def execute(bin, vex, threads=1, time=True): 111 | """Uses vexexec to run simple vex programs. Not incredibly useful.""" 112 | vexexec = os.path.normpath(os.path.join(bin, 'vexexec')) 113 | 114 | # execute vex 115 | if time: 116 | subprocess.call([vexexec, '-p', str(threads), '-t', vex], shell=True) 117 | else: 118 | subprocess.call([vexexec, '-p', str(threads), vex], shell=True) 119 | 120 | 121 | def build(bin, vfl): 122 | """Builds the vfl path. Compilation name is the same but with the vex 123 | extension.""" 124 | vcc = os.path.normpath(os.path.join(bin, 'vcc')) 125 | 126 | # compile vfl to vex 127 | vex = vfl.replace('.vfl', '.vex') 128 | subprocess.call([vcc, vfl, '-o', vex], shell=True) 129 | 130 | return vex 131 | 132 | 133 | def main(vfl, run=False, version=True, threads=1, time=True): 134 | """Compiles and optionally runs vex code. Arguments: 135 | vfl: the path to compile '/some/code.vlf' 136 | run: if this is true, we call execute() and thus vexexec 137 | version: print the houdini version called for compiling and running 138 | threads: number of threads when run is true 139 | time: print the execution time when running 140 | """ 141 | hfs, version = find_houdini() 142 | if version: 143 | print('Using houdini path:\n\t%s' % hfs) 144 | 145 | # compile 146 | print('Compiling:\n\t%s' % vfl) 147 | bin = os.path.join(hfs, 'bin') 148 | vex = build(bin, vfl) 149 | 150 | # execute 151 | if run: 152 | print('Executing:\n\t%s' % vex) 153 | execute(bin, vex, threads, time) 154 | 155 | 156 | if __name__ == '__main__': 157 | if len(sys.argv) < 2: 158 | raise Exception('No vfl specified for compilation.') 159 | 160 | elif len(sys.argv) == 2: 161 | # build 162 | main(sys.argv[1]) 163 | 164 | elif len(sys.argv) == 3: 165 | # build and run 166 | main(sys.argv[1], sys.argv[2]) 167 | 168 | else: 169 | raise Exception('To many arguments.') 170 | -------------------------------------------------------------------------------- /src/vcc_utils.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import re 4 | import subprocess 5 | import json 6 | 7 | VCC_PATH = 'C:/Program Files/Side Effects Software/Houdini 16.0.600/bin/vcc.exe' 8 | SYN_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..') 9 | COMP_PATH = os.path.join(SYN_PATH, 'VEX.sublime-completions') 10 | FUNC_PATH = os.path.join(os.path.join(SYN_PATH, 'syntax_lists'), 'VexFunctions.txt') 11 | 12 | 13 | def contexts(vcc_path=VCC_PATH): 14 | """Return a sorted list of all vex contexts.""" 15 | ctxs = subprocess.check_output([vcc_path, '-X']) 16 | ctxs = ctxs.decode('ascii').split('\n') 17 | return sorted([x for x in ctxs if x != '' and x != None]) 18 | 19 | 20 | def context_functions(context, vcc_path=VCC_PATH, as_set=False): 21 | """Return the sorted list of all function names for a vex context.""" 22 | ctx_info = subprocess.check_output([vcc_path, '-X', context]) 23 | ctx_info = ctx_info.decode('ascii') 24 | 25 | funcs = set() 26 | for f in re.findall('\w+\(', ctx_info): 27 | if len(f) > 1: 28 | funcs.add(f[:-1]) 29 | 30 | if as_set: 31 | return funcs 32 | else: 33 | return sorted(list(funcs)) 34 | 35 | 36 | def context_function_signatures(context, vcc_path=VCC_PATH): 37 | ctx_info = subprocess.check_output([vcc_path, '-X', context]) 38 | ctx_info = ctx_info.decode('ascii') 39 | 40 | sigs = [] 41 | for s in re.findall('(\w+(\[\])?) (\w+)\((.*)\)', ctx_info): 42 | sig_str = '%s %s(%s)' % (s[0], s[2], s[3]) 43 | if s[3] == 'void': 44 | hint_str = '' 45 | else: 46 | hint_str = '%s\n(%s)' % (s[0], s[3].rstrip().lstrip().rstrip(';')) 47 | args = [x.strip() for x in s[3].split(';')] 48 | sigs.append({'returns':s[0], 'name':s[2], 'ctx':context, 'args':args, 'str':sig_str, 49 | 'hint':hint_str}) 50 | 51 | return sigs 52 | 53 | 54 | def all_functions(vcc_path=VCC_PATH, write_functions=True, function_path=FUNC_PATH): 55 | """Returns a sorted list of all vex functions in all contexts.""" 56 | all_funcs = set() 57 | for ctx in contexts(): 58 | all_funcs.update(context_functions(ctx, as_set=True)) 59 | 60 | all_funcs_sorted = sorted(all_funcs) 61 | 62 | if write_functions: 63 | with open(function_path, 'w') as f: 64 | for func in all_funcs_sorted: 65 | f.write('{}\n'.format(func)) 66 | 67 | return all_funcs_sorted 68 | 69 | 70 | def all_function_signatures(vcc_path=VCC_PATH): 71 | all_sigs = [] 72 | sig_strs = set() 73 | 74 | for ctx in contexts(): 75 | ctx_sigs = context_function_signatures(ctx) 76 | 77 | for ctx_sig in ctx_sigs: 78 | if ctx_sig['str'] not in sig_strs: 79 | sig_strs.add(ctx_sig['str']) 80 | all_sigs.append(ctx_sig) 81 | 82 | return all_sigs 83 | 84 | 85 | def generate_simple_completions(sublime_completion_path=COMP_PATH): 86 | """Converts the function signitures generated by vcc into SublimeText compatable completion 87 | JSON files.""" 88 | completions = [] 89 | for name in all_functions(): 90 | completions.append({'trigger' : ('%s\tfunction' % name), 91 | 'contents': ('%s(${1})' % name)}) 92 | 93 | data = {'scope': 'source.vex', 'completions': completions} 94 | 95 | with open(sublime_completion_path, 'w') as f: 96 | json.dump(data, f, sort_keys=True, indent=4, separators=(',', ': ')) 97 | 98 | 99 | def generate_completions(sublime_completion_path=COMP_PATH): 100 | """Converts the function signitures generated by vcc into SublimeText compatable completion 101 | JSON files.""" 102 | completions = [] 103 | for sig in all_function_signatures(): 104 | 105 | if len(sig['args']) == 1 and sig['args'][0] == 'void': 106 | comp_arg_fmt = '' 107 | else: 108 | comp_arg_fmt = '' 109 | comp_arg_fmt_no_varadic = '' 110 | c = 1 111 | 112 | for arg_type in sig['args']: 113 | comp_arg_fmt += ('${%d:%s}, ' % (c, arg_type)) 114 | c += 1 115 | if arg_type != '...': 116 | comp_arg_fmt_no_varadic = comp_arg_fmt 117 | 118 | comp_arg_fmt = comp_arg_fmt[:-2] # stripping ', ' before closing parenthesis 119 | comp_arg_fmt_no_varadic = comp_arg_fmt_no_varadic[:-2] 120 | 121 | # in the varadic case, we'll generate two completions - one with and one without the 122 | # varadic argument elipsis 123 | if sig['args'][-1] == '...': 124 | new_hint = sig['hint'][:-4] 125 | new_hint = new_hint.rstrip().rstrip(';') 126 | new_hint += ')' 127 | completions.append({'trigger' : ('%s\t%s' % (sig['name'], new_hint)), 128 | 'contents': ('%s(%s)' % (sig['name'], comp_arg_fmt_no_varadic))}) 129 | 130 | completions.append({'trigger' : ('%s\t%s' % (sig['name'], sig['hint'])), 131 | 'contents': ('%s(%s)' % (sig['name'], comp_arg_fmt))}) 132 | 133 | data = {'scope': 'source.vex', 'completions': completions} 134 | 135 | with open(sublime_completion_path, 'w') as f: 136 | json.dump(data, f, sort_keys=True, indent=4, separators=(',', ': ')) 137 | 138 | 139 | if __name__ == '__main__': 140 | if len(sys.argv) < 2: 141 | generate_simple_completions() 142 | elif len(sys.argv) == 2: 143 | generate_simple_completions(sys.argv[1]) 144 | else: 145 | raise Exception('To many arguments.') 146 | -------------------------------------------------------------------------------- /syntax_lists/VexComments.txt: -------------------------------------------------------------------------------- 1 | /* 2 | */ 3 | // -------------------------------------------------------------------------------- /syntax_lists/VexContexts.txt: -------------------------------------------------------------------------------- 1 | chop 2 | cop2 3 | cvex 4 | displace 5 | fog 6 | image3d 7 | light 8 | pop 9 | shadow 10 | sop 11 | surface -------------------------------------------------------------------------------- /syntax_lists/VexDataTypes.txt: -------------------------------------------------------------------------------- 1 | bsdf 2 | char 3 | color 4 | float 5 | int 6 | integer 7 | matrix 8 | matrix2 9 | matrix3 10 | matrix4 11 | normal 12 | point 13 | string 14 | struct 15 | typedef 16 | union 17 | vector 18 | vector2 19 | vector4 20 | void -------------------------------------------------------------------------------- /syntax_lists/VexFunctions.txt: -------------------------------------------------------------------------------- 1 | Du 2 | Dv 3 | Dw 4 | abs 5 | accessframe 6 | acos 7 | addattrib 8 | addattribute 9 | adddetailattrib 10 | addgroup 11 | addpoint 12 | addpointattrib 13 | addprim 14 | addprimattrib 15 | addvariablename 16 | addvertex 17 | addvertexattrib 18 | addvisualizer 19 | agentaddclip 20 | agentclipcatalog 21 | agentclipchannel 22 | agentcliplength 23 | agentclipnames 24 | agentclipsample 25 | agentclipsamplelocal 26 | agentclipsamplerate 27 | agentclipsampleworld 28 | agentcliptimes 29 | agentcliptransformgroups 30 | agentclipweights 31 | agentcollisionlayer 32 | agentcurrentlayer 33 | agentlayerbindings 34 | agentlayers 35 | agentlayershapes 36 | agentlocaltransform 37 | agentlocaltransforms 38 | agentrigchildren 39 | agentrigfind 40 | agentrigparent 41 | agenttransformcount 42 | agenttransformgroupmember 43 | agenttransformgroups 44 | agenttransformnames 45 | agenttransformtolocal 46 | agenttransformtoworld 47 | agentworldtransform 48 | agentworldtransforms 49 | albedo 50 | alphaname 51 | ambient 52 | anoise 53 | append 54 | area 55 | argsort 56 | array 57 | ashikhmin 58 | asin 59 | assert_enabled 60 | assign 61 | atan 62 | atan2 63 | atof 64 | atoi 65 | atten 66 | attrib 67 | attribclass 68 | attribsize 69 | attribtype 70 | attribtypeinfo 71 | avg 72 | binput 73 | blackbody 74 | blinn 75 | blinnBRDF 76 | bouncelabel 77 | bouncemask 78 | bumpmap 79 | bumpmapA 80 | bumpmapB 81 | bumpmapG 82 | bumpmapL 83 | bumpmapR 84 | bumpname 85 | cbrt 86 | ceil 87 | ch 88 | ch3 89 | ch4 90 | chattr 91 | chend 92 | chendf 93 | chendt 94 | chf 95 | chi 96 | chindex 97 | chinput 98 | chname 99 | chnumchan 100 | chp 101 | chr 102 | chramp 103 | chrate 104 | chreadbuf 105 | chresizebuf 106 | chs 107 | chsetattr 108 | chsraw 109 | chstart 110 | chstartf 111 | chstartt 112 | chv 113 | chwritebuf 114 | cinput 115 | ckspline 116 | clamp 117 | clip 118 | colormap 119 | colorname 120 | computenormal 121 | concat 122 | cone 123 | cos 124 | cosh 125 | cracktransform 126 | create_cdf 127 | create_pdf 128 | cross 129 | cspline 130 | ctransform 131 | curlnoise 132 | curlnoise2d 133 | curlxnoise 134 | curlxnoise2d 135 | cvex_bsdf 136 | degrees 137 | depthmap 138 | depthname 139 | detail 140 | detailattrib 141 | detailattribsize 142 | detailattribtype 143 | detailattribtypeinfo 144 | detailintrinsic 145 | determinant 146 | diffuse 147 | diffuseBRDF 148 | dihedral 149 | dimport 150 | distance 151 | distance2 152 | dot 153 | dsmpixel 154 | efit 155 | eigenvalues 156 | endswith 157 | environment 158 | erf 159 | erf_inv 160 | erfc 161 | error 162 | eulertoquaternion 163 | eval_bsdf 164 | exp 165 | expand_udim 166 | expandedgegroup 167 | expandpointgroup 168 | expandprimgroup 169 | fastshadow 170 | filamentsample 171 | file_stat 172 | filtershadow 173 | filterstep 174 | find 175 | findattribval 176 | findattribvalcount 177 | finput 178 | fit 179 | fit01 180 | fit10 181 | fit11 182 | floor 183 | flownoise 184 | flowpnoise 185 | frac 186 | fresnel 187 | fromNDC 188 | frontface 189 | fuzzify 190 | fuzzy_and 191 | fuzzy_defuzz_centroid 192 | fuzzy_nand 193 | fuzzy_nor 194 | fuzzy_not 195 | fuzzy_nxor 196 | fuzzy_or 197 | fuzzy_xor 198 | geoself 199 | geounwrap 200 | getattrib 201 | getattribute 202 | getbbox 203 | getbbox_center 204 | getbbox_max 205 | getbbox_min 206 | getbbox_size 207 | getblurP 208 | getbounces 209 | getbounds 210 | getcomp 211 | getcomponents 212 | getderiv 213 | getfogname 214 | getglobalraylevel 215 | getgroupid 216 | getlight 217 | getlightid 218 | getlightname 219 | getlights 220 | getlightscope 221 | getlocalcurvature 222 | getmaterial 223 | getmaterialid 224 | getobjectid 225 | getobjectname 226 | getphotonlight 227 | getpointbbox 228 | getpointbbox_center 229 | getpointbbox_max 230 | getpointbbox_min 231 | getpointbbox_size 232 | getprimid 233 | getptextureid 234 | getraylevel 235 | getrayweight 236 | getsamplestore 237 | getscope 238 | getsmoothP 239 | getspace 240 | getuvtangents 241 | gradient 242 | hair 243 | hasattrib 244 | hasdetailattrib 245 | haslight 246 | hasmetadata 247 | hasplane 248 | haspointattrib 249 | hasprimattrib 250 | hasvertexattrib 251 | hedge_dstpoint 252 | hedge_dstvertex 253 | hedge_equivcount 254 | hedge_isequiv 255 | hedge_isprimary 256 | hedge_isvalid 257 | hedge_next 258 | hedge_nextequiv 259 | hedge_postdstpoint 260 | hedge_postdstvertex 261 | hedge_presrcpoint 262 | hedge_presrcvertex 263 | hedge_prev 264 | hedge_prim 265 | hedge_primary 266 | hedge_srcpoint 267 | hedge_srcvertex 268 | henyeygreenstein 269 | hscript_noise 270 | hscript_rand 271 | hscript_snoise 272 | hscript_sturb 273 | hscript_turb 274 | hsvtorgb 275 | iaspect 276 | ichname 277 | ident 278 | idtopoint 279 | idtoprim 280 | iend 281 | iendtime 282 | ihasplane 283 | import 284 | inedgegroup 285 | ingroup 286 | inpointgroup 287 | inprimgroup 288 | insert 289 | instance 290 | interpolate 291 | intersect 292 | intersect_all 293 | intersect_lights 294 | inumplanes 295 | invert 296 | invertexgroup 297 | iplaneindex 298 | iplanename 299 | iplanesize 300 | irate 301 | irradiance 302 | isalpha 303 | isbound 304 | isconnected 305 | isdigit 306 | isfinite 307 | isfogray 308 | isframes 309 | isnan 310 | isotropic 311 | israytracing 312 | issamples 313 | isseconds 314 | isshadowray 315 | istart 316 | istarttime 317 | isuvrendering 318 | isvalidindex 319 | isvarying 320 | itoa 321 | ixres 322 | iyres 323 | join 324 | kspline 325 | len 326 | length 327 | length2 328 | lerp 329 | lightbounces 330 | lightid 331 | limit_sample_space 332 | limport 333 | lkspline 334 | log 335 | log10 336 | lookat 337 | lspline 338 | lstrip 339 | luminance 340 | lumname 341 | makebasis 342 | maketransform 343 | maskname 344 | match 345 | matchvex_blinn 346 | matchvex_specular 347 | mattrib 348 | max 349 | mdensity 350 | metadata 351 | metaimport 352 | metamarch 353 | metanext 354 | metastart 355 | metaweight 356 | min 357 | minpos 358 | mspace 359 | nametopoint 360 | nametoprim 361 | nbouncetypes 362 | nearpoint 363 | nearpoints 364 | nedgesgroup 365 | neighbour 366 | neighbourcount 367 | neighbours 368 | newgroup 369 | newsampler 370 | nextsample 371 | ninput 372 | ninputs 373 | noise 374 | noised 375 | normal_bsdf 376 | normalize 377 | normalname 378 | npoints 379 | npointsgroup 380 | nprimitives 381 | nprimitivesgroup 382 | nrandom 383 | ntransform 384 | nuniqueval 385 | nvertices 386 | nverticesgroup 387 | occlusion 388 | ocean_sample 389 | ocio_import 390 | ocio_spaces 391 | ocio_transform 392 | onoise 393 | opdigits 394 | opend 395 | opfullpath 396 | opparentbonetransform 397 | opparenttransform 398 | opparmtransform 399 | oppreconstrainttransform 400 | oppretransform 401 | opstart 402 | optransform 403 | ord 404 | osd_facecount 405 | osd_firstpatch 406 | osd_limitsurface 407 | osd_limitsurfacevertex 408 | osd_lookupface 409 | osd_lookuppatch 410 | osd_patchcount 411 | osd_patches 412 | outerproduct 413 | ow_nspace 414 | ow_space 415 | ow_vspace 416 | pack_inttosafefloat 417 | pathtrace 418 | pcclose 419 | pcconvex 420 | pcexport 421 | pcfarthest 422 | pcfilter 423 | pcfind 424 | pcfind_radius 425 | pcgenerate 426 | pcimport 427 | pcimportbyidx3 428 | pcimportbyidx4 429 | pcimportbyidxf 430 | pcimportbyidxi 431 | pcimportbyidxp 432 | pcimportbyidxs 433 | pcimportbyidxv 434 | pciterate 435 | pcnumfound 436 | pcopen 437 | pcopenlod 438 | pcsampleleaf 439 | pcsize 440 | pcunshaded 441 | pcwrite 442 | pgfind 443 | phong 444 | phongBRDF 445 | phonglobe 446 | photonmap 447 | planeindex 448 | planename 449 | planepointdistance 450 | planesize 451 | planesphereintersect 452 | pluralize 453 | pnoise 454 | point 455 | pointattrib 456 | pointattribsize 457 | pointattribtype 458 | pointattribtypeinfo 459 | pointedge 460 | pointhedge 461 | pointhedgenext 462 | pointname 463 | pointprims 464 | pointvertex 465 | pointvertices 466 | polardecomp 467 | pop 468 | pow 469 | predicate_incircle 470 | predicate_insphere 471 | predicate_orient2d 472 | predicate_orient3d 473 | prim 474 | prim_attribute 475 | prim_normal 476 | primarclen 477 | primattrib 478 | primattribsize 479 | primattribtype 480 | primattribtypeinfo 481 | primduv 482 | primfind 483 | primhedge 484 | primintrinsic 485 | primpoint 486 | primpoints 487 | primuv 488 | primuvconvert 489 | primvertex 490 | primvertexcount 491 | primvertices 492 | print_once 493 | printf 494 | product 495 | ptexture 496 | ptlined 497 | ptransform 498 | push 499 | qconvert 500 | qdistance 501 | qinvert 502 | qmultiply 503 | qrotate 504 | quaternion 505 | radians 506 | rand 507 | random 508 | random_fhash 509 | random_ihash 510 | random_shash 511 | random_sobol 512 | rawbumpmap 513 | rawbumpmapA 514 | rawbumpmapB 515 | rawbumpmapG 516 | rawbumpmapL 517 | rawbumpmapR 518 | rawcolormap 519 | rayhittest 520 | rayimport 521 | re_find 522 | re_findall 523 | re_match 524 | re_replace 525 | re_split 526 | reflect 527 | reflectlight 528 | refract 529 | refractlight 530 | relativepath 531 | relbbox 532 | relpointbbox 533 | removegroup 534 | removeindex 535 | removepoint 536 | removeprim 537 | removevalue 538 | renderstate 539 | reorder 540 | resample_linear 541 | resize 542 | resolvemissedray 543 | reverse 544 | rgbtohsv 545 | rgbtoxyz 546 | rint 547 | rotate 548 | rotate_x_to 549 | rstrip 550 | sample_bsdf 551 | sample_cauchy 552 | sample_cdf 553 | sample_circle_arc 554 | sample_circle_edge_uniform 555 | sample_circle_slice 556 | sample_circle_uniform 557 | sample_direction_cone 558 | sample_direction_uniform 559 | sample_discrete 560 | sample_exponential 561 | sample_geometry 562 | sample_hemisphere 563 | sample_hypersphere_cone 564 | sample_hypersphere_uniform 565 | sample_light 566 | sample_lognormal 567 | sample_lognormal_by_median 568 | sample_normal 569 | sample_orientation_cone 570 | sample_orientation_uniform 571 | sample_photon 572 | sample_sphere_cone 573 | sample_sphere_uniform 574 | sampledisk 575 | scale 576 | scatter 577 | select 578 | sensor_panorama_create 579 | sensor_panorama_getcolor 580 | sensor_panorama_getcone 581 | sensor_panorama_getdepth 582 | sensor_save 583 | serialize 584 | set 585 | setagentclipnames 586 | setagentclips 587 | setagentcliptimes 588 | setagentclipweights 589 | setagentcollisionlayer 590 | setagentcurrentlayer 591 | setagentlocaltransform 592 | setagentlocaltransforms 593 | setagentworldtransform 594 | setagentworldtransforms 595 | setattrib 596 | setattribtypeinfo 597 | setcomp 598 | setcurrentlight 599 | setdetailattrib 600 | setedgegroup 601 | setpointattrib 602 | setpointgroup 603 | setprimattrib 604 | setprimgroup 605 | setprimintrinsic 606 | setprimvertex 607 | setsamplestore 608 | setvertexattrib 609 | setvertexgroup 610 | setvertexpoint 611 | shadow 612 | shadow_light 613 | shadowmap 614 | shimport 615 | shl 616 | shr 617 | shrz 618 | sign 619 | simport 620 | sin 621 | sinh 622 | sleep 623 | slerp 624 | slice 625 | slideframe 626 | smooth 627 | smoothrotation 628 | snoise 629 | solid_angle 630 | solvecubic 631 | solvepoly 632 | solvequadratic 633 | sort 634 | specular 635 | specularBRDF 636 | spline 637 | split 638 | split_bsdf 639 | splitpath 640 | sprintf 641 | sqrt 642 | sssapprox 643 | startswith 644 | storelightexport 645 | strip 646 | strlen 647 | sum 648 | switch 649 | swizzle 650 | tan 651 | tanh 652 | tet_adjacent 653 | tet_faceindex 654 | teximport 655 | texprintf 656 | texture 657 | texture3d 658 | texture3dBox 659 | titlecase 660 | toNDC 661 | tolower 662 | toupper 663 | trace 664 | translate 665 | translucent 666 | transpose 667 | trunc 668 | tw_nspace 669 | tw_space 670 | tw_vspace 671 | uniqueval 672 | unpack_intfromsafefloat 673 | unserialize 674 | upush 675 | uvdist 676 | uvintersect 677 | uvsample 678 | uvunwrap 679 | variance 680 | velocityname 681 | vertex 682 | vertexattrib 683 | vertexattribsize 684 | vertexattribtype 685 | vertexattribtypeinfo 686 | vertexhedge 687 | vertexindex 688 | vertexnext 689 | vertexpoint 690 | vertexprev 691 | vertexprim 692 | vertexprimindex 693 | vnoise 694 | volume 695 | volumegradient 696 | volumeindex 697 | volumeindexorigin 698 | volumeindextopos 699 | volumeindexv 700 | volumepostoindex 701 | volumeres 702 | volumesample 703 | volumesamplev 704 | volumevoxeldiameter 705 | vtransform 706 | warning 707 | wireblinn 708 | wirediffuse 709 | wnoise 710 | wo_nspace 711 | wo_space 712 | wo_vspace 713 | writepixel 714 | wt_nspace 715 | wt_space 716 | wt_vspace 717 | xnoise 718 | xnoised 719 | xyzdist 720 | xyztorgb -------------------------------------------------------------------------------- /syntax_lists/VexKeywords.txt: -------------------------------------------------------------------------------- 1 | break 2 | bsdf 3 | char 4 | color 5 | continue 6 | do 7 | else 8 | float 9 | for 10 | foreach 11 | forpoints 12 | function 13 | gather 14 | hpoint 15 | if 16 | illuminance 17 | int 18 | integer 19 | matrix 20 | matrix3 21 | matrix4 22 | normal 23 | point 24 | return 25 | string 26 | struct 27 | typedef 28 | union 29 | vector 30 | vector2 31 | vector4 32 | while -------------------------------------------------------------------------------- /syntax_lists/VexMacros.txt: -------------------------------------------------------------------------------- 1 | #define 2 | #else 3 | #endif 4 | #ifndef 5 | #ifdef 6 | #if 7 | #include 8 | #pragma 9 | #undef -------------------------------------------------------------------------------- /syntax_lists/VexOperators.txt: -------------------------------------------------------------------------------- 1 | () 2 | ! 3 | ~ 4 | ++ 5 | -- 6 | * 7 | / 8 | % 9 | + 10 | - 11 | < 12 | > 13 | <= 14 | >= 15 | == 16 | != 17 | & 18 | ^ 19 | | 20 | && 21 | || 22 | ? : 23 | = 24 | += 25 | -= 26 | *= 27 | /= 28 | %= 29 | &= 30 | |= 31 | ^= 32 | , 33 | @ -------------------------------------------------------------------------------- /syntax_lists/VexVariables.txt: -------------------------------------------------------------------------------- 1 | A 2 | AI 3 | AR 4 | AS 5 | Af 6 | B 7 | C 8 | C4 9 | Cb 10 | Cd 11 | Cf 12 | Cg 13 | Cl 14 | Cr 15 | E 16 | EF 17 | Eye 18 | F 19 | FR 20 | Frame 21 | G 22 | H 23 | I 24 | IX 25 | IY 26 | L 27 | Lz 28 | N 29 | NC 30 | NI 31 | NP 32 | Ng 33 | Npt 34 | Of 35 | P 36 | PL 37 | PNAME 38 | PS 39 | PXSC 40 | Ps 41 | Pw 42 | Pz 43 | R 44 | S 45 | SF 46 | SID 47 | SR 48 | TIME 49 | TINC 50 | Time 51 | TimeInc 52 | V 53 | X 54 | XRES 55 | Y 56 | YRES 57 | accel 58 | age 59 | dPds 60 | dPdt 61 | dPdz 62 | density 63 | id 64 | life 65 | pstate 66 | ptnum 67 | s 68 | t 69 | v --------------------------------------------------------------------------------