My Work On a Lua IDE

akhtar, I got it working and the plug-in is very nice! It takes some getting used to since it’s my first time with the editor but I like the features so far. However, I can’t get the parameter auto-complete to work even after following the install guide. Any ideas? [import]uid: 8692 topic_id: 2200 reply_id: 32647[/import]

I’ll look into it. You might try “Invalidate Caches” from (I think) the file menu.

I am not sure that will fix your issue.

I’ll look into it. [import]uid: 846 topic_id: 2200 reply_id: 32648[/import]

I have been spending so much time working on the editor, I have been relying on users to provide usage feedback.

I think this weekend I will write a Corona app myself just to make see what the main hurdles are, and how to set everything up.

Then I can make a “setup” screencast which may help. Once you have set it up once, it becomes quite easy to set up…but the first time is always confusing. [import]uid: 846 topic_id: 2200 reply_id: 32651[/import]

I’d be glad to provide some feedback as I learn it. The install process was a bit unfamiliar because I had to install Lua and it wasn’t clear how to do that since I never needed to with Corona.

I think I found the bug, looks like it’s trying to do autocomplete for parameters but gets an error. Sorry for the long message but I figure you’ll find this stack trace helpful:
:1: ‘’ expected near ): :1: ‘’ expected near )
se.krka.kahlua.vm.KahluaException: :1: ‘’ expected near )
at org.luaj.kahluafork.compiler.LexState.lexerror(LexState.java:270)
at org.luaj.kahluafork.compiler.LexState.syntaxerror(LexState.java:281)
at org.luaj.kahluafork.compiler.LexState.error_expected(LexState.java:675)
at org.luaj.kahluafork.compiler.LexState.check(LexState.java:688)
at org.luaj.kahluafork.compiler.LexState.compile(LexState.java:191)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:125)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:117)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadstring(LuaCompiler.java:129)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLua(KahluaPluginDocumentationProvider.java:244)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLuaQuickNavigateDocGenerator(KahluaPluginDocumentationProvider.java:217)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.getQuickNavigateInfo(KahluaPluginDocumentationProvider.java:115)
at com.intellij.lang.documentation.CompositeDocumentationProvider.getQuickNavigateInfo(CompositeDocumentationProvider.java:59)
at com.sylvanaar.idea.Lua.codeInsight.LuaParameterInfoHandler.showParameterInfo(LuaParameterInfoHandler.java:81)
at com.sylvanaar.idea.Lua.codeInsight.LuaParameterInfoHandler.showParameterInfo(LuaParameterInfoHandler.java:31)
at com.intellij.codeInsight.hint.ShowParameterInfoHandler.invoke(ShowParameterInfoHandler.java:94)
at com.intellij.codeInsight.AutoPopupController$4.run(AutoPopupController.java:145)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:229)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:332)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:678)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:652)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:505)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:404)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

se.krka.kahlua.vm.KahluaException: :1: ‘’ expected near )
at org.luaj.kahluafork.compiler.LexState.lexerror(LexState.java:270)
at org.luaj.kahluafork.compiler.LexState.syntaxerror(LexState.java:281)
at org.luaj.kahluafork.compiler.LexState.error_expected(LexState.java:675)
at org.luaj.kahluafork.compiler.LexState.check(LexState.java:688)
at org.luaj.kahluafork.compiler.LexState.compile(LexState.java:191)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:125)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:117)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadstring(LuaCompiler.java:129)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLua(KahluaPluginDocumentationProvider.java:244)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLuaQuickNavigateDocGenerator(KahluaPluginDocumentationProvider.java:217)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.getQuickNavigateInfo(KahluaPluginDocumentationProvider.java:115)
at com.intellij.lang.documentation.CompositeDocumentationProvider.getQuickNavigateInfo(CompositeDocumentationProvider.java:59)
at com.intellij.codeInsight.navigation.CtrlMouseHandler.generateInfo(CtrlMouseHandler.java:234)
at com.intellij.codeInsight.navigation.CtrlMouseHandler.access$1000(CtrlMouseHandler.java:81)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$InfoSingle.getInfo(CtrlMouseHandler.java:313)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.showHint(CtrlMouseHandler.java:538)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.access$1900(CtrlMouseHandler.java:432)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider$2.run(CtrlMouseHandler.java:516)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:678)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:652)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:505)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:404)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

se.krka.kahlua.vm.KahluaException: :1: ‘’ expected near )
at org.luaj.kahluafork.compiler.LexState.lexerror(LexState.java:270)
at org.luaj.kahluafork.compiler.LexState.syntaxerror(LexState.java:281)
at org.luaj.kahluafork.compiler.LexState.error_expected(LexState.java:675)
at org.luaj.kahluafork.compiler.LexState.check(LexState.java:688)
at org.luaj.kahluafork.compiler.LexState.compile(LexState.java:191)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:125)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadis(LuaCompiler.java:117)
at se.krka.kahlua.luaj.compiler.LuaCompiler.loadstring(LuaCompiler.java:129)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLua(KahluaPluginDocumentationProvider.java:244)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.runLuaQuickNavigateDocGenerator(KahluaPluginDocumentationProvider.java:217)
at com.sylvanaar.idea.Lua.lang.documentor.KahluaPluginDocumentationProvider.getQuickNavigateInfo(KahluaPluginDocumentationProvider.java:115)
at com.intellij.lang.documentation.CompositeDocumentationProvider.getQuickNavigateInfo(CompositeDocumentationProvider.java:59)
at com.intellij.codeInsight.navigation.CtrlMouseHandler.generateInfo(CtrlMouseHandler.java:234)
at com.intellij.codeInsight.navigation.CtrlMouseHandler.access$1000(CtrlMouseHandler.java:81)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$InfoSingle.getInfo(CtrlMouseHandler.java:313)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.showHint(CtrlMouseHandler.java:538)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider.access$1900(CtrlMouseHandler.java:432)
at com.intellij.codeInsight.navigation.CtrlMouseHandler$TooltipProvider$2.run(CtrlMouseHandler.java:516)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:678)
at java.awt.EventQueue.access$000(EventQueue.java:86)
at java.awt.EventQueue$1.run(EventQueue.java:639)
at java.awt.EventQueue$1.run(EventQueue.java:637)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:648)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:652)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:505)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:404)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:368)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
[import]uid: 8692 topic_id: 2200 reply_id: 32653[/import]

I have created an issue for this:

https://bitbucket.org/sylvanaar2/lua-for-idea/issue/53/exception-in-corona-doclua [import]uid: 846 topic_id: 2200 reply_id: 32654[/import]

It is an obvious feature. However, the Corona SDK runtime is proprietary, so I’m doubtful that it’ll ever happen without direct involvement from Corona. [import]uid: 21649 topic_id: 2200 reply_id: 32665[/import]

Just an update, I got the latest version and the issue above has been fixed. I’m starting to use this as my primary editor now and will post feedback here as I go. One thing I’d like to see improved is the way parameters are displayed. It would be nice if it highlights the hint for each parameter as you type one without removing the tooltip in case there are many parameters. I think Eclipse and other IDE’s do it this way so it’s what I’m used to. [import]uid: 8692 topic_id: 2200 reply_id: 33347[/import]

Thanks akhtar, as an IntelliJ fan I found this plugin through the normal plugin installer. It has been working great! [import]uid: 2927 topic_id: 2200 reply_id: 34043[/import]

Hey akhtar, I’ve been using this as my main editor for Lua/Corona and it’s been working great with the plugin. I have run into a few bugs that I’d like to report. Is there a place to do so, I could post here but don’t want to clutter up this thread if there’s a better place. Please keep developing this, it has alot of potential. [import]uid: 8692 topic_id: 2200 reply_id: 34723[/import]

I just found this. Akhtar, I love you. [import]uid: 49205 topic_id: 2200 reply_id: 38733[/import]

Great. Report any issues you run into here:

https://bitbucket.org/sylvanaar2/lua-for-idea/issues?status=new&status=open [import]uid: 846 topic_id: 2200 reply_id: 38736[/import]

akhtar, just an update on using the IDE for a bit longer. It’s my primary editor now with your plug-ins and I love it! I’ll be creating some enhancement requests on your site but this tool has already saved me a ton of time and pain compared to what I was using before. I also shared it with my friend and he’s already a fan after using it for a day. Please keep updating it and adding to it as it’s a great help. [import]uid: 8692 topic_id: 2200 reply_id: 38853[/import]

Neat! :slight_smile: [import]uid: 10389 topic_id: 2200 reply_id: 38883[/import]

Where is the lua sdk stored on a mac? this looks really useful! [import]uid: 68741 topic_id: 2200 reply_id: 40442[/import]

You have to download it yourself from the bitbucket page here:

https://bitbucket.org/sylvanaar2/idlua-sdk-corona/wiki/Home [import]uid: 846 topic_id: 2200 reply_id: 40558[/import]

Hi, how are you? this seems to be a really interesting project, is it still under active development?

Cheers,
Nahuel. [import]uid: 77774 topic_id: 2200 reply_id: 46998[/import]

Yes. It is.

I am re-evaluating how I want to continue. I am interested in trying to attract some more developers to the project going forward, but I would describe my development pace over the past 18 months as being quite active. I think feature-wise this is one of the best options out there. I think on average a new version has been released every 1-2 weeks sometimes more.

The only real issue I think this project has is that it takes a little effort to set things up the first time - after you do it once though - it becomes really trivial. This does have a an upside as my users tend to not need a lot of hand holding - but I would like to broaden the appeal of the tool in any case. People still even use LuaEclipse - and it hasn’t really been updated in years. I need to figure out how to improve that situation.

Personally, I do all my Lua editing this way now - it is just so much better having features like auto-complete, syntax checking, code formatting, and semantic awareness. Not to mention that the IDE itself provides a full set of tools for development in general and is cross platform. [import]uid: 846 topic_id: 2200 reply_id: 47006[/import]

Hi I’m stuck on installing this…

I setup a new project in thwe wizard, when I get to “specify the Lua binaries directory” it already is populated with kaluha (unlike the screencast) if I add a new one I cannot find the Lua SDK despite downloading every zip I can find on the bitbucket page (really confusing lots of zips all over the place unsure which ones I need)

Can somebody please let me know which zips I need from the bitbucket page, and where to find the Lua 5.1.4 SDK?

Thanks! [import]uid: 43961 topic_id: 2200 reply_id: 47275[/import]

It is where you install Lua. You would need to download Lua itself.

BUT you don’t have to, you can choose kahlua if you want and set it up as your sdk. Using a native Lua interpreter isn’t crucial for you as a corona developer since you won’t actually be running your code via IntelliJ. [import]uid: 846 topic_id: 2200 reply_id: 47293[/import]

Hi akhtar,

appreciate your reply…

Ok so I’ve installed sylvanaar2-idlua-sdk-corona and its now listed in external libraries for my empty template, if I click on the corona_api.lua file within the external library group I can see the corona sdk commands…

So I make a file called main.lua in my project group, it shows the standard lua tips but none for corona, the screencast doesn’t mention any other steps, but I’m obviously missing something…

[import]uid: 43961 topic_id: 2200 reply_id: 47297[/import]