Making a nice toolchain for developing Renoise Tools on MacOSX

Hi, has anybody found a nice way to use modern IDE features like auto-completion suggestions and jump to definition for editing lua scripts?

I have tried getting Sublime, VS Code, and Vim to work the way i want, but none of them are 100%. Actually, Vim is pretty close but i keep forgetting how i have it configured when i take a break from coding, and the keyboard heavy work style isn’t ideal for my space, i need more mouse.

Both VS Code and Sublime have nice modern features built in, but they don’t work too well with lua, so i’ve been searching out packages and no one single package does it all. I have to have a combo of various ones for different things like linting and tags, using command line back end tools like luacheck. Sublime has trouble finding some of my methods. Whereas VS code just wont jump to definitions at all (at least last time i was using it).

I’m going to crack on using Sublime for the moment, have got the luacheck linter running ok, and some ctags set up which seems to be doing the job in vim and possibly sublime too, honestly can’t remember how i did all this. Plus it’s easy to read the code on my screen.

Would be good to hear ideas.

2 Likes

Got back to renoise-scripting recently and at first I was using QtCreator, it has only decent syntax highlighting, no navigation.
But I noticed that Geany allows jumping to function definitions in the RMB context menu (I think only if in same file) and it also outlines functions in the side panel.

Google also found me this ZeroBrane FOSS IDE, I have not tried it myself, may be worth.
Alas for code completion it appears to require a hand-made definition file, not sure whether it also takes regular lua files as given by the Renoise API.

This is all I got for you. I am also a vim fan but I used to spend crazy amounts on he “tooling” to customize it but for programming I always ended up using some dedicated IDE in the end. My choices were QtCreator for C++ and Wing IDE for Python.

image

Hi, thanks for joining in. I was thinking of writing a language plugin for ZeroBrane with all the xrnx API objects, but actually, it’s just too much work and i’d rather be making tools with that time. Otherwise, it’s a nice piece of software, but i just like the minimalist style of Sublime too much to switch over. I feel spoiled by how slick it is. The others i’ve never heard of, but i think i’d have the same reaction to them as with ZeroBrane. Also, something about the way Sublime renders text just makes my eyes happy. VS Code is close second, but a bit weird in places. Then Vim for its total no frills work ethic. The badwolf colourscheme is really nice to look at, i find.

So far i have got a pretty good set up on Sublime 3, but the thing i’m really missing is a symbol browser like in that screen shot. I installed the ctags package last night, and it seems to work ok with my luabind definitions that i made in universal ctags. It reads the class parameters correctly. Will need to test it a bit more. Willing to share them if anyone is interested. I got the tag definitions pretty close now, and they work on the c++ like class-method style that i’m using for the xrnx tools. I can get a list of the symbols in the ‘palette’, but it’s not as nice as having a sidepane, as the list blocks out the code i’m working on! Pretty annoying. Looks like a feature people have been asking for for 10 years, and still nothing, so i guess it’s not happening any time soon. Actually, that command palette system really gets on my tits, it’s not as clever as it thinks it is.

Just rambling now. I wish Vim looked as hot as Sublime and used more mouse…

VSCode is very good, for LUA, too. And free. EDIT: You already mentioned it. I think VSCode so far is the best option.

Yes, i like VS Code, but for some reason cannot get ‘jump to definition’ to work for my projects. It just doesn’t respond at all when i hit F12. I think it has a problem with the way luabind obscures the normal table style of lua, plus having multiple layers of nested tables and references. I think if i removed all the ‘class’ stuff and just went with a normal metatable for making objects then maybe it would function, but i like the syntax luabind gives you, simple as it is.