This Vim plugin provides syntax highlighting and omnifunc completion of built-in function names for SideFX's VEX programming language.
Documentation (including installation instructions) is in vim.vex.txt.
VEX Development Plugin for Vim
License: The Unlicense
This Vim plugin provides syntax highlighting and omnifunc completion of built-in function names for SideFX's VEX programming language.
Documentation (including installation instructions) is in vim.vex.txt.
Implement object node completion that works like the build in editor/shell. For example, in Python shell, when you enter hou.node("/obj/
a list of objects from that HIP file appear.
In VEX, this would be triggered by functions marked as taking a node path parameter, like ch.
A Python IPC server running in the HIP file could use hou.node.glob to implement node name completion.
Example:
>>> [n.name() for n in hou.root().glob("/*")]
['obj', 'out', 'ch', 'shop', 'img', 'vex', 'mat']
>>> [n.name() for n in hou.root().glob("/o*")]
['obj', 'out']
>>> [n.name() for n in hou.root().glob("/obj/*")]
['terrain', 'Scatter', 'Overlap_Grain_Solve', 'Scatter_Objects']
Houdini's Environment Variables contain information that may be useful to give context, for example the HFS
and HIP
variables.
Since this plugin can be used with any version of Houdini, it should be able to generate the dictionary/omnifunc completion database on demand in case new VEX functions are added.
Identifying the VEX context will allow automatic selection of the proper VEX context completion dictionary. Currently, the user has to manually set which VEX context to use with the g:vex_context
variable.
Add snippets for control statements. Take ideas from:
vcc -X surface
provides information about each function, including return type and parameter types. Use this to implement omnifunc completion for built-in functions.
This feature does not include support for user define function auto-completion.
Vim configuration (including bundles in .vim) do not load. This is a generic Vim/Houdini integration problem, but it also prevents vex.vim from loading.
By default, Houdini modifies the HOME variable from c:\Users\USERNAME or c:\Users\USERNAME\Documents.
I've only experienced this issue on Windows 10. I'm not sure if it happens on macOS or Linux.
There are two workarounds, but unfortunately they must be done manually by the Vim user, since this bundle isn't loaded when the problem occurs.
In houdini.env, change HOME back to c:\Users\YOUR_USERNAME.
On side effect of this is that some files that were written to c:\Users\USERNAME\Documents\houdini17.5 will now be written to c:\Users\USERNAME\houdini17.5.
Place a .vimrc in c:\Users\USERNAME\Documents that sources c:\Users\USERNAME.
Add an environment variable HOME to point to $env:USERPROFILE.
Demo of bug here: https://youtu.be/gAuqh-HcpOs
Vim disappears with the following message:
Fatal Python error: initfsencoding: unable to load the file system codec
File "C:/PROGRA~1/SIDEEF~1/HOUDIN~1.229/python27\lib\encodings\__init__.py", line 123
raise CodecRegistryError
SyntaxError: invalid syntax
Current thread 0x000055f0 (most recent call first):
If snippet engine (e.g. UltiSnips) is installed, provide function argument placeholders. For UltiSnips, I think you can use UltiSnips#Anon for this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.