06000208 / ttt-gravity-gun

Half Life's Gravity Gun for TTT
https://steamcommunity.com/sharedfiles/filedetails/?id=1414206909
0 stars 1 forks source link

IDE Extensions & Build/test/release workflow #13

Open 06000208 opened 3 years ago

06000208 commented 3 years ago

Revisiting addon and lua development after programming in other languages, I find myself wanting real IDE features for it, and a better workflow for building addons, testing them, and releasing to the workshop/on github. I'll be using this issue to document my findings in various editors and what I think works best

06000208 commented 3 years ago

VS Code

What works

vscode's native lua syntax highlighting appears to work fine, but is missing plenty

sumneko.lua provides seemingly consistent syntax highlighting and working autocompletion for variables

goz3rr.vscode-glualint with glualint.exe works perfectly and provides legitimately helpful code linting for glua, including deprecated warnings and syntax mistakes

What doesn't work

venner.vscode-glua-enhanced seems like a great extension, but it's syntax highlighting seems inconsistent, doesn't support variables created by local, and it doesn't recognize variables inside {}. Maybe after https://github.com/WilliamVenner/vscode-glua-enhanced/issues/3 is fully implemented? image

trixnz.vscode-lua provides intellisense and linting features for lua, but it doesn't support some of glua's features such as !variable, causing errors

yinfei.luahelper provides intellisense but has the same issue, using ! trips it up/is unrecognized syntax. It's also owned by https://github.com/Tencent

aStonedPenguin.glua provides glua specific syntax highlighting, but things appear to be inconsistently highlighted

yobson.glua provides glua specific syntax highlighting, but it has a minor inconsistency issue with SWEP.Distance being yellow while the rest of the variables like SWEP.Weight are blue

gccfeli.vscode-lua provides code formatting, but it has spelling mistakes and fails on glua with "Cannot formet code due to syntax error" with no further details

What I haven't tried

NicholaScott.luamod2, acidic9.glua, keyring.Lua, and WilWilson.gmod-entity-base because as far as I can tell, they're code snippets and templating, which I'm not particularly interested in

BadgerCode.gmod-sdk, because I haven't started looking at build processes yet, but I may check back with this one

Koihik.vscode-lua-format, because it requires the installation of Koihik/LuaFormatter