## ZeroBrane Studio Lua IDE v0.50 is out

General discussion about LÖVE, Lua, game development, puns, and unicorns.
paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### ZeroBrane Studio Lua IDE v0.50 is out

For those not yet familiar with it, ZeroBrane Studio is a lightweight Lua IDE that runs on Windows, Linux, and OSX and provides debugging, auto-complete, and integration with various Lua engines, including love2d. The last version includes love2d API updated for v0.9 and fixes issues on OSX 9.1+. It also includes handling of command line parameters that some love2d users suggested.

As @SneakySnake mentioned, the IDE itself is written in Lua, so everyone familiar with Lua should be able to hack on it.

You can find the download and documentation on the project website. Please let me know if you have comments/suggestions or run into any issues with it. Thank you.

Paul.
Last edited by paulclinger on Sat Mar 15, 2014 5:44 am, edited 2 times in total.

drakmaniso
Prole
Posts: 14
Joined: Mon Mar 10, 2014 4:25 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

I've started using it recently, and so far I like it, especially the integrated debugger and static analyzer. Here's a few comments:

1. You should really setup a forum for it. I know there's a mailing list, and though these give me a warm nostalgia feeling, I don't think many people use them anymore. If you want to build a community around the editor, a forum is a must, IMHO.

2. I had some trouble running it on Arch Linux, under vanilla Gnome. With the default theme (Adwaita), the GUI wouldn't draw, only the text was displayed (the UI was still functional, just invisible). I'm not sure if this is a problem with WxGTK or ZeroBrane, so I haven't filed a bug report yet.

3. I'd like to have more refactoring tools. Currently I can rename local variables, but what is really useful (at least to me) is renaming globals and table keys accross the whole project. I'm not sure how difficult/impossible the latter is, considering the dynamic nature of Lua.

4. There's a few details in the editor that bother me, though I'm sure they'll be fixed in time. Things like no unindenting on backspace, autocomplete not "validated" if you type the whole word (instead of hitting return), and a few others I can't remember right now.

5. I find the interface a bit cluttered. I think the success of many modern editors (e.g. Sublime) comes from a clear interface which gets rid of all unnecessary parts, and I would love to see ZeroBrane choose this path too. I'm not sure how much it is possible to achieve with WxGTK.

To conclude, great work on the project, and I really look forward to see how it evolves.

SiENcE
Party member
Posts: 791
Joined: Thu Jul 24, 2008 2:25 pm
Location: Berlin/Germany
Contact:

### Re: ZeroBrane Studio Lua IDE v0.50 is out

Hej paulclinger,

i really appreciate your work! Since two month i switch between Zerobrane and Notepad++ the whole time.

I don't know the reason, but I like more coding in Notepad++. But I use Zerobrane for Debugging and Testing .

Suggestions for Editing:
- all love runtimes 0.7.2->0.9.0 are supported?
- clear all Breakpoints option in the menu
- F11 to make fullscreen view
- doubbleclick a word, should highlight the same words
- no automatic autocomplete, but when user presses CTRL-SPACE
- the autocomplete be also available not only at '.', but also for half written function names
- Is there any possibility to add a generic autocomplete for classes (https://github.com/bartbes/Class-Commons and supported libs: middleclass, 30log)?
- the linenumber should be greyed and not so prominent, i also suggest a line between linenumbers and code ( http://www.chip.de/ii/3/2/2/8/6/notepad ... 1c8a6e.jpg )
- i also support drakmaniso point 5.

I had some issues trying Live-Coding:
- Firewall needs to be deactivated
- only values in the current opened file when lauchning the 'Scratchpad' are changeable (or do i miss something)? Sadly for big projects it's not really possible to use :-/.

My game also crashes every time i change a value in the draw routine.

Anyway, thanks for creating this nice piece of Software!

cheers

paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

@drakmaniso, @SiENcE, thank you for the detailed feedback! I'll respond item-by-item later today as some of the things you requested are already available and some I need to think about.

OttoRobba
Party member
Posts: 104
Joined: Mon Jan 06, 2014 5:02 am
Location: Sao Paulo, Brazil

### Re: ZeroBrane Studio Lua IDE v0.50 is out

Functionality wise, I think it is great. It is one of the better alternatives for all things Lua and I really like the direction it is going, with inspiration from Bret Victor's talk and other great ideas.

Despite this though, I don't use it. Partly because it behaves oddly under Arch with Gnome 3 and partly because, even if I run it in Windows, I feel it is too noisy and I can't think properly when using it.

My honest suggestion would be changing the defaults. Let the user fine tune it later, just as it currently is, but provide a better starting ground.

Increase font size
It looks really small on my screen. I'm guessing the size might be fine for 13"/11" notebooks but even so, increasing the default by one or two points should really help readability.

Change default colors
Currently, there is a lot of things competing for the user's attention. Everything is too high contrast and not all things are equally relevant. Nothing is as important as the code, line numbers and the code folding mechanism should be lower contrast. Comments as big blocks of green draws a lot of attention and really breaks the flow of the software. Instead, why not lowering contrast, removing the background and using a non-vibrant color?

The line number padding feels honestly wrong. It is just too much. This contributes to the overall feeling of chunkyness. But maybe it has to do with the point I raise next

General Interface
I'm not gonna lie, I'm not a fan of the interface, I think it is way too busy.
Look at it, doesn't it seem to box in the user? Sublety would give a sense of freedom.
I would suggest taking cues from minimalistic editors in order to achieve a better workflow.

I'm attaching two screenshots just to show the difference between editors in aesthetics.
Gedit x Zbstudio
Brackets x non-default, the-very-least-I-would-need-to-change-in-order-to-be-able-to-use-Zbstudio

TL:DR; All in all, I think it is a great piece of software that could go even further with a bit of polish in the user interface side.

SneakySnake
Citizen
Posts: 94
Joined: Fri May 31, 2013 2:01 pm
Contact:

### Re: ZeroBrane Studio Lua IDE v0.50 is out

You should edit the original post to encourage people to contribute to the project on GitHub.

I imagine most people here are comfortable enough with Lua to be able to hack on the project.

I got over my laziness and submitted a Pull Request for a feature I've been missing: https://github.com/pkulchenko/ZeroBraneStudio/pull/284

paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

drakmaniso wrote:I've started using it recently, and so far I like it, especially the integrated debugger and static analyzer. Here's a few comments:
> 1. You should really setup a forum for it. I know there's a mailing list, and though these give me a warm nostalgia feeling, I don't think many people use them anymore. If you want to build a community around the editor, a forum is a must, IMHO.

I've been going back and forth on this one. It may very well happen, but I haven't decided on this yet.

> 2. I had some trouble running it on Arch Linux, under vanilla Gnome. With the default theme (Adwaita), the GUI wouldn't draw, only the text was displayed (the UI was still functional, just invisible). I'm not sure if this is a problem with WxGTK or ZeroBrane, so I haven't filed a bug report yet.

I have Arch Linux running in a VM and should be able to check over the weekend.

> 3. I'd like to have more refactoring tools. Currently I can rename local variables, but what is really useful (at least to me) is renaming globals and table keys accross the whole project. I'm not sure how difficult/impossible the latter is, considering the dynamic nature of Lua.

Globals across project files are planned, but table fields are going to be difficult.

> 4. There's a few details in the editor that bother me, though I'm sure they'll be fixed in time. Things like no unindenting on backspace, autocomplete not "validated" if you type the whole word (instead of hitting return), and a few others I can't remember right now.

Shift-Tab will unindent, but I took a note to add unindenting on backspace. What do you mean by not "validated" if you type the whole word? If the typed word matches, the auto-complete will be hidden (although the case of the word is not checked; maybe that's what you mean).

> 5. I find the interface a bit cluttered. I think the success of many modern editors (e.g. Sublime) comes from a clear interface which gets rid of all unnecessary parts, and I would love to see ZeroBrane choose this path too. I'm not sure how much it is possible to achieve with WxGTK.

Do you mean along the lines of what OttoRobba has suggested? Or do you mean hiding things like the toolbar and the menubar?

> To conclude, great work on the project, and I really look forward to see how it evolves.

Thank you for the feedback!

paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

SiENcE wrote:i really appreciate your work! Since two month i switch between Zerobrane and Notepad++ the whole time.
> - all love runtimes 0.7.2->0.9.0 are supported?

yes.

> - clear all Breakpoints option in the menu

Good idea; noted.

> - F11 to make fullscreen view

you can configure it yourself in the config: local G = ...; keymap[G.ID_VIEWFULLSCREEN] = "F11"

> - doubbleclick a word, should highlight the same words

Ctrl/Cmd-DblClick does this for variables, but not for arbitrary words. Are you looking for something that works for things like table fields or for anything at all (including text in comments)?

> - no automatic autocomplete, but when user presses CTRL-SPACE

autocomplete=false -- disable auto-complete
local G = ...; keymap[G.ID_AUTOCOMPLETE] = "Ctrl-SPACE"

> - the autocomplete be also available not only at '.', but also for half written function names

You can enable dynamic words, which will offer suggestion based on all the words in opened files:

acandtip.nodynwords = false

> - Is there any possibility to add a generic autocomplete for classes (https://github.com/bartbes/Class-Commons and supported libs: middleclass, 30log)?

Possibly, but not at the moment. Do you mean something like this:

Code: Select all

local Fruit = class('Fruit')
function Fruit:isSweet() return true end
local Lemon = class('Lemon', Fruit)
local lemon = Lemon:new()
lemon: --<-- this would offer isSweet?

This would be quite challenging (especially if this code is in some other file in the project as often happens). I'm interested, what are the expectations here?

> - the linenumber should be greyed and not so prominent, i also suggest a line between linenumbers and code ( http://www.chip.de/ii/3/2/2/8/6/notepad ... 1c8a6e.jpg )
> - i also support drakmaniso point 5.

Yes, I agree with the UI suggestions. Most of these things can be modified, but several require code changes that I'll be implementing.

> I had some issues trying Live-Coding:
> - Firewall needs to be deactivated

That's strange; live coding has exactly the same requirements as normal debugging, so if the debugging works, there shouldn't be any additional firewall requirements.

> - only values in the current opened file when lauchning the 'Scratchpad' are changeable (or do i miss something)? Sadly for big projects it's not really possible to use :-/.

Live coding by default is enabled to the current file (the one that was current when the live coding was started), but you can add any other tab to it: right click on the editor and select Add to Scratchpad. This will start tracking changes in that editor as well and will evaluate them in the application.

> My game also crashes every time i change a value in the draw routine.

I'll need some details to see what may be going on; maybe a simplified example?

> Anyway, thanks for creating this nice piece of Software!

Thank you for the comments and suggestions!

paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

OttoRobba wrote:Functionality wise, I think it is great. It is one of the better alternatives for all things Lua and I really like the direction it is going, with inspiration from Bret Victor's talk and other great ideas.
> Partly because it behaves oddly under Arch with Gnome 3

Any more details on this? Maybe it's something that can be addressed?

> My honest suggestion would be changing the defaults. Let the user fine tune it later, just as it currently is, but provide a better starting ground.
> Increase font size

Agree; the font size should probably be set based on the screen size (by default); still can be changed in the config.

> Change default colors

Tend to agree. ZBS comes with several popular color schemes (btw, Notepadd++ is one of them; contributed by SiENcE ), but the default one may have less contrast. You can see/test the different schemes by opening cfg/scheme-picker.lua in ZBS and clicking on those links. v0.50 made some improvements there as it also allows to set back/foreground colors on the filetree/stack/watch windows.

> Comments as big blocks of green draws a lot of attention and really breaks the flow of the software. Instead, why not lowering contrast, removing the background and using a non-vibrant color?

Good suggestions; I just got too used to the current scheme to see its flaws. Having said that, some users do want more contrast

> Fix the padding; The line number padding feels honestly wrong. It is just too much. This contributes to the overall feeling of chunkyness. But maybe it has to do with the point I raise next

I thought about making it smaller, for example 999 by default, but what if the file has more lines? Increase the margin dynamically?

> General Interface
> I'm not gonna lie, I'm not a fan of the interface, I think it is way too busy.
> Look at it, doesn't it seem to box in the user? Sublety would give a sense of freedom.
> I would suggest taking cues from minimalistic editors in order to achieve a better workflow.

Thank you for the screenshots and specific suggestions. I do want to stay minimalistic and most of the suggestions are already doable with config changes, although margin width and folding symbols require code changes to make them configurable.

Do you mind sharing your ZBS config from the second screenshot? I'd like to play with the colors to see if I can come up with a better overall look as the default.

> TL:DR; All in all, I think it is a great piece of software that could go even further with a bit of polish in the user interface side.

Hear, hear.

paulclinger
Party member
Posts: 225
Joined: Thu Jun 28, 2012 8:46 pm

### Re: ZeroBrane Studio Lua IDE v0.50 is out

SneakySnake wrote:You should edit the original post to encourage people to contribute to the project on GitHub.
I imagine most people here are comfortable enough with Lua to be able to hack on the project.
Thank you for the suggestion; updated the post.

> I got over my laziness and submitted a Pull Request for a feature I've been missing: https://github.com/pkulchenko/ZeroBraneStudio/pull/284

This pushed me to get all the plugins I've accumulated for ZBS and put them in a repository. I've been working on a package manager, but it's been taking a bit longer than I hoped and in the meantime some of the functions that are available as plugins have been difficult to find. All the available packages are now in this repository: https://github.com/pkulchenko/ZeroBranePackage and "zoommenu" plugin is one of them. I'm trying to push most of the new functionality into plugins for several reasons: it allows to iterate on some ideas much faster; it keeps the UI less cluttered for those who don't use that functionality. I'll have a way to install plugins right from the IDE as well as to publish them (and am working on a webhook for github repositories as well).

The list of available packages include checking syntax on typing (syntaxcheckontype.lua), clone view, real-time watches, auto-delimiters (autodelimiter.lua), and other things that may be of use.

Thanks for the nudge!

### Who is online

Users browsing this forum: Bing [Bot] and 5 guests