LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009 LuaEclipse 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 Luís Eduardo Jason Santos Lua Workshop 2009 LuaEclipse An integrated development environment built on the Eclipse platform Some members of the Eclipse Foundation The platform 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 Danilo Tuler Ideais Eclipse 2.1 LuaEclipse 0.5 2003 Origins Guilherme Martins Thiago Ponte André Carregal Danilo Tuler Eclipse 3.2 LuaEclipse 1.0 2003 2004 2005 2006 2007 2008 Origins Guilherme Martins Jason Santos Thiago Ponte Lua 5.1 André Carregal Eclipse 3.2/3.3 LuaEclipse 1.1 2004 2005 2006 2007 2008 Origins Jason Santos Edgard Arakaki Guilherme Martins Lua 5.1 LuaProfiler André Carregal Eclipse 3.3 LuaDoc LuaEclipse 1.2 2005 2006 2007 2008 2009 Origins Jason Santos André Carregal Lua 5.1 RemDebug LuaProfiler Eclipse 3.4 LuaDoc 2005 2006 2007 LuaEclipse 1.3beta 2008 2009 In the paralel universe... Eclipse 2.1 3.0 3.1 LuaEclipse 0.5 2003 3.2 3.3 1.0 2004 2005 1.1 2006 2007 3.4 1.2 3.5 1.3 2008 1.3.1 2009 Jason Santos LuaEclipse 2.x Based on DLTK Requires Eclipse 3.3 Edgard Arakaki 2.x design 2007 2008 2009 Back to the real world Eclipse 2.1 3.0 LuaEclipse 0.5 2003 3.1 3.2 1.0 2004 2005 3.3 1.1 2006 2007 1.2 3.5 1.3 2008 1.3.1 2009 Jason Santos Investimento da FINEP - descrição do projeto feita em 2005 - início do Kepler Mobile - branch 2.x congelado na versão alpha 3.4 Edgard Arakaki 2.x 2007 2.0alpha 2008 2009 2009 - LuaEclipse 1.3.x "Herrick Muhlestein, et al." www.movenetworks.com Jason Santos Lua 5.1 RemDebug Eclipse 3.4 LuaProfiler LuaDoc 2005 2006 André Carregal 2007 LuaEclipse 1.3.1 2008 2009 2009 - LuaEclipse 1.3.x Code highlight Code completion generated from a customizable Lua State Documentation reference (using LuaDoc) Integrated Debugger Integrated Profiler (using LuaProfiler) Execution using a system installed interpreter 2009 - LuaEclipse 1.3.x Code-highlight Lua 5.1 parser (JFlex) Syntax errors LuaJava loadstring() Code-completion LuaJava New LuaState Reference LuaJava LuaDoc* Execution Java Launcher LuaBinaries Profiler Java Launcher LuaProfiler Debugger Java Remdebug Client Sockets IDE Features use different integration forms RemDebug* 2009 - LuaEclipse 1.3.x Code highlight Compilation errors on saving 2009 - LuaEclipse 1.3.x Autocomplete Comment and function folding 2009 - O LuaEclipse 1.3.x Referência de funções do manual de referência de Lua 5.1 2009 - LuaEclipse 1.3.x Sumário do LuaProfiler 2009 - LuaEclipse 1.3.x Integrated debugger: Stack control Inspection of local and global variables 2009 - LuaEclipse 1.3.x Integrated debugger: Stack control Inspection of local and global variables 2009 - LuaEclipse 1.3.x Integrated debugger: Stack control Inspection of local and global variables LuaEclipse 1.3.x - problems Complexity 9357 lines of code 128 Java classes Several non-integrated forms of implementing features Parser is impossible to extend Doesn't use DLTK 2009 - O LuaEclipse 2.0 DLTK implementa Code highlight, code completion, referências de documentação e erros de compilação AST montada usando um parser em Lua Refactoring e formatadores escritos em Lua Debugger integrado Profiler integrado (usando LuaProfiler) Execução utilizando LuaJava além do interpretador instalado no sistema 2009 - LuaEclipse 2.0 Code-highlight Lua AST DLTK Syntax errors LuaJava Code-completion Parser in Lua Metalua* LEG Greater DLTK integration Incremental parsers written in Lua outros References LuaBinaries Execution Java Launcher Built-in interpreter Profiler Debugger Java Launcher Java Remdebug Client LuaProfiler Sockets RemDebug* 2010 - LuaEclipse 2.1 Ability to publish, retrieve and rate e avaliar code snippets and 'recipes' from the internet – straight from the IDE LuaRocks – Integration of dependency installation MoonMonkey – ability to extend and automate the IDE in Lua LuaEclipse 2.x - problems Manpower LuaEclipse 2.x - problemas Manpower Manpower Manpower Expectations Create new development opportunities Enhance user experience Raise productivity Reduce development costs Bring the Lua community closer Speed up evolution Contact/downloads Website http://luaeclipse.luaforge.net SVN https://svn.anyware-tech.com/luaeclipse/luaeclipse Update-sites http://luaeclipse.luaforge.net/preview/update-site Luís Eduardo Jason Santos <[email protected]>