diff --git a/docs/lua/lua.md b/docs/lua/lua.md index 1f9e57e0..b2f2b8b0 100644 --- a/docs/lua/lua.md +++ b/docs/lua/lua.md @@ -14,6 +14,7 @@ Lua scripts you make can be placed either the `mods` folder in the base director ## Tips - When developing Lua mods, run the game from a console. Lua errors and logs will appear there. - You can use the `print()` command when debugging. Your logs will show up in the console. +- [Setting up Visual Studio Code](vs-code-setup.md) will give you autocomplete and other nice things.
diff --git a/docs/lua/vs-code-setup.md b/docs/lua/vs-code-setup.md new file mode 100644 index 00000000..892e710f --- /dev/null +++ b/docs/lua/vs-code-setup.md @@ -0,0 +1,43 @@ +## [:rewind: Lua Reference](lua.md) + +Setting up Visual Studio Code will allow you to have all of the modern benefits of IDEs like autocomplete. + +1. Install the `Lua` extension by `sumneko` in VS Code: + +![extension](https://user-images.githubusercontent.com/12403224/158046548-a8deba76-ca5f-4f35-aa73-62984820d290.png) + +2. Goto settings (`ctrl+,`) and type `diagnostics disable` in the settings search bar: + +![diagnostics](https://user-images.githubusercontent.com/12403224/158046741-3bcf513c-5da8-42ee-b3aa-ab2dbab0e3dc.png) + +3. Add a new item called `lowercase-global` and click `ok` + +![lowercase-global](https://user-images.githubusercontent.com/12403224/158046761-65883e86-fd17-4d90-a566-78fe93b4b51d.png) + +4. Type `workspace library` in the settings search bar: + +![workspace-library](https://user-images.githubusercontent.com/12403224/158046786-12b8a150-65a7-4f23-96c7-1508f8f80713.png) + +5. Add a new item containing the location of `/autogen/lua_definitions` + +![lua-definitions](https://user-images.githubusercontent.com/12403224/158046824-1894318a-7ce9-41ef-bacc-17f95fa05f31.png) + +6. Open a lua mod file be amazed at autocompletion and all of that good stuff +![autocompletion](https://user-images.githubusercontent.com/12403224/158046824-1894318a-7ce9-41ef-bacc-17f95fa05f31.png) + +Note: For your custom functions you will need to provide type definitions to get autocomplete. + +For instance, this will not autocomplete for the mario struct: +``` +function mario_update(m) + -- code here +end +``` + +But this will autocomplete for the mario struct: +``` +--- @param m MarioState +function mario_update(m) + -- code here +end +``` \ No newline at end of file