LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009
Special Thanks The Lua Team Ideais Andre Carregal and the Kepler Project Fábrica Digital FINEP/SEBRAE IT Quality Systems Move Networks Anywhere Tech Comunidade Lua LuaEclipse Luís Eduardo Jason Santos Lua Workshop 2009
LuaEclipse An integrated development environment built on the Eclipse platform The platform Some members of the Eclipse Foundation
The Eclipse platform Strong presence in several areas - SOA orchestration - Java development - web and script langugages - C/C++ development - mobile platforms (including linux mobile and symbian) - microcontrollers
LuaEclipse – What it is? IDE - Integrated Development Environment
What it is not... LuaEclipse is not a Code editor - like scite, gedit, notepad++, ultraedit, vi, etc.
What is it? IDE - Integrated Development Environment usually have: - code editor - compiler/interpreter - integrated development tools - debugger
Modern IDEs Popular tools - context detection - dependency analyzer - refactoring tools - builders and deployment tools - version control integration
LuaEclipse - Motivation Historical - corporate world origins Context - lua as an extension language
LuaEclipse - Motivation Main issues - integration with host application toolchain - keep contact with development teams culture
Origins 2003 LuaEclipse 0.5 Eclipse 2.1 Ideais Danilo Tuler
Origins LuaEclipse 1.0 Eclipse 3.2 Danilo Tuler Guilherme Martins Thiago Ponte André Carregal
Origins LuaEclipse 1.1 Eclipse 3.2/ Guilherme Martins Thiago Ponte André Carregal Jason Santos Lua 5.1
Origins LuaEclipse 1.2 Eclipse Jason Santos Guilherme Martins André Carregal Edgard Arakaki Lua LuaDoc LuaProfiler
Origins LuaEclipse 1.3beta Eclipse Jason Santos André Carregal Lua LuaDoc LuaProfiler RemDebug
LuaEclipse 0.5 Eclipse In the paralel universe Jason Santos Edgard Arakaki LuaEclipse 2.x Based on DLTK Requires Eclipse 3.3 design 2.x
alpha 2.x Back to the real world LuaEclipse 0.5 Eclipse Jason Santos Investimento da FINEP - descrição do projeto feita em início do Kepler Mobile - branch 2.x congelado na versão alpha Edgard Arakaki
LuaEclipse 1.3.x "Herrick Muhlestein, et al." LuaEclipse Eclipse Jason Santos André Carregal Lua LuaDoc LuaProfiler RemDebug
LuaEclipse 1.3.x Code highlight Code highlight Code completion generated from a customizable Lua State Code completion generated from a customizable Lua State Documentation reference (using LuaDoc) Documentation reference (using LuaDoc) Integrated Debugger Integrated Debugger Integrated Profiler (using LuaProfiler) Integrated Profiler (using LuaProfiler) Execution using a system installed interpreter Execution using a system installed interpreter
LuaEclipse 1.3.x IDE Features use different integration forms IDE Features use different integration forms Code-highlight Syntax errors Lua 5.1 parser (JFlex) loadstring()LuaJava Execution Profiler Java Launcher LuaBinaries Java Launcher LuaProfiler Debugger Java Remdebug Client Sockets ReferenceLuaJava LuaDoc* RemDebug* Code-completionNew LuaStateLuaJava
LuaEclipse 1.3.x Code highlight Code highlight Compilation errors on saving Compilation errors on saving
LuaEclipse 1.3.x Auto- complete Auto- complete Comment and function folding Comment and function folding
O LuaEclipse 1.3.x Referência de funções do manual de referência de Lua 5.1 Referência de funções do manual de referência de Lua 5.1
LuaEclipse 1.3.x Sumário do LuaProfiler Sumário do LuaProfiler
LuaEclipse 1.3.x Integrated debugger: Stack control Stack control Inspection of local and global variables Inspection of local and global variables
LuaEclipse 1.3.x Integrated debugger: Stack control Stack control Inspection of local and global variables Inspection of local and global variables
LuaEclipse 1.3.x Integrated debugger: Stack control Stack control Inspection of local and global variables Inspection of local and global variables
LuaEclipse 1.3.x - problems Complexity 9357 lines of code 9357 lines of code 128 Java classes 128 Java classes Several non-integrated forms of implementing features Several non-integrated forms of implementing features Parser is impossible to extend Parser is impossible to extend Doesn't use DLTK Doesn't use DLTK
O LuaEclipse 2.0 DLTK implementa Code highlight, code completion, referências de documentação e erros de compilação DLTK implementa Code highlight, code completion, referências de documentação e erros de compilação AST montada usando um parser em Lua AST montada usando um parser em Lua Refactoring e formatadores escritos em Lua Refactoring e formatadores escritos em Lua Debugger integrado Debugger integrado Profiler integrado (usando LuaProfiler) Profiler integrado (usando LuaProfiler) Execução utilizando LuaJava além do interpretador instalado no sistema Execução utilizando LuaJava além do interpretador instalado no sistema
Java Launcher Java Remdebug Client LuaProfiler Sockets RemDebug* LuaEclipse 2.0 Code-highlight Syntax errors DLTK LuaJava Execution Profiler Debugger References Greater DLTK integration Greater DLTK integration Incremental parsers written in Lua Incremental parsers written in Lua Code-completion Lua AST Parser in Lua Metalua*LEG LuaBinaries outros Built-in interpreter Java Launcher
LuaEclipse 2.1 Ability to publish, retrieve and rate e avaliar code snippets and 'recipes' from the internet – straight from the IDE Ability to publish, retrieve and rate e avaliar code snippets and 'recipes' from the internet – straight from the IDE LuaRocks – Integration of dependency installation LuaRocks – Integration of dependency installation MoonMonkey – ability to extend and automate the IDE in Lua MoonMonkey – ability to extend and automate the IDE in Lua
LuaEclipse 2.x - problems Manpower Manpower
LuaEclipse 2.x - problemas Manpower Manpower
Expectations Create new development opportunities Create new development opportunities Enhance user experience Enhance user experience Raise productivity Raise productivity Reduce development costs Reduce development costs Bring the Lua community closer Bring the Lua community closer Speed up evolution Speed up evolution
Contact/downloads Website SVNhttps://svn.anyware-tech.com/luaeclipse/luaeclipseUpdate-sites Luís Eduardo Jason Santos Luís Eduardo Jason Santos