Skip to content

This is a Visual Studio Code extension providing Venice Unleashed type information and intermediate code generation to make mod development less tedious.

License

Notifications You must be signed in to change notification settings

Imposter/vscode-lua-vu

Repository files navigation

logo

Vua

This is a Visual Studio Code extension providing Venice Unleashed type information and intermediate code generation to make mod development less tedious. It utilizes Sumneko's Lua extension for VS Code and adds an additional parser to read documentation from user code and generate intermediate code files to help the IntelliSense engine work with how classes and functions are defined in VU.

Usage

  • Install the extension (Currently only Windows is supported!)
  • Find Vua Commands command menu and then download and build the project templates and VU doc types using the Download and Build Content command
  • Create a new project by providing a name and a path using the Create New Project command
  • Write your code and enjoy type information

Features

The following are the supported and planned features for this extension:

  • Creating a new project
  • Updating cached project templates and documentation
  • Rebuilding intermediate code
  • Support for all Venice Unleashed types defined in the documentation
    • Frostbite types
    • Shared libraries/types
    • Server libraries/types
    • Client libraries/types
  • Support for generating type information for user code
  • Documentation support

Examples

The following is the recommended code style for user-defined classes:

---This is a customized user type containing public fields name and position
---@class MyObject
---@field name string|nil
---@field position Vec3
MyObject = class('MyObject')

---Constructor which initializes the class instance
---@param name string|nil
---@param position Vec3
function MyObject:__init(name, position)
    self.name = name
    self.position = position
end

---Get object's string representation
---@return string @ Returns a string representation of the object
function MyObject:ToString()
    return self.name .. ' : ' .. self.position
end

...

local obj = MyObject('obj', Vec3(1.0, 2.0, 3.0))

Changelog

See changelog for more information.

Acknowledgements

Some people I want to thank for their hard work.

Venice Unleashed Developers:

Contributors:

  • FlashHit For actively doing research and contributing to this extension ♥

For libraries and technologies used by this extension:

About

This is a Visual Studio Code extension providing Venice Unleashed type information and intermediate code generation to make mod development less tedious.

Resources

License

Stars

Watchers

Forks

Packages

No packages published