LuaEclipse integrando ferramentas no desenvolvimento Lua Luís Eduardo Jason Santos Lua Workshop 2009 LuaEclipse Agradecimentos Equipe Lua Ideais André Carregal e Projeto Kepler Fábrica Digital FINEP/SEBRAE IT Quality Systems Move Networks Anywhere Tech Comunidade Lua Luís Eduardo Jason Santos Lua Workshop 2009 LuaEclipse Um ambiente integrado de desenvolvimento criado sobre a plataforma Eclipse Alguns membros da Eclipse Foundation A plataforma Plataforma Eclipse Presença forte em diversas áreas - orquestração SOA - desenvolvimento Java - web e linguagens de script - desenvolvimento C/C++ - plataformas móveis (inclusive linux mobile e symbian) - microcontroladores LuaEclipse - O que é? IDE - Ambiente Integrado de Desenvolvimento O que não é... LuaEclipse não é um Editor de código - como scite, gedit, notepad++, ultraedit, vi O que é? IDE - Ambiente Integrado de Desenvolvimento - editor de código - compilador/interpretador - ferramentas de desenvolvimento integradas - depurador (debugger) IDEs modernas Ferramentas populares - detecção de contexto - analisador de dependências - ferramentas de refactoring - empacotadores e ferramentas de deployment - integração com controle de versão LuaEclipse - Motivação Histórico - origens no mundo corporativo Contexto - lua como linguagem de extensão LuaEclipse - Motivação Questões principais - integração com o toolchain dos aplicativos hospedeiros - não-ruptura com a cultura das equipes de desenvolvimento Origens Danilo Tuler Ideais Eclipse 2.1 LuaEclipse 0.5 2003 Origens Guilherme Martins Thiago Ponte André Carregal Danilo Tuler Eclipse 3.2 LuaEclipse 1.0 2003 2004 2005 2006 2007 2008 Origens Guilherme Martins Jason Santos Thiago Ponte Lua 5.1 André Carregal Eclipse 3.2/3.3 LuaEclipse 1.1 2004 2005 2006 2007 2008 Origens Jason Santos Edgard Arakaki Guilherme Martins Lua 5.1 LuaProfiler André Carregal Eclipse 3.3 LuaDoc LuaEclipse 1.2 2005 2006 2007 2008 2009 Origens Jason Santos André Carregal Lua 5.1 RemDebug LuaProfiler Eclipse 3.4 LuaDoc 2005 2006 2007 LuaEclipse 1.3beta 2008 2009 No universo paralelo.. 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 Baseado em DLTK Exigia Eclipse 3.3 Edgard Arakaki 2.x design 2007 2008 2009 De volta ao mundo real 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 - O 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 - O LuaEclipse 1.3.x Code highlight Code completion a partir de um estado lua customizável Referência da documentação (usando LuaDoc) Debugger integrado Profiler integrado (usando LuaProfiler) Execução utilizando um interpretador instalado no sistema 2009 - O LuaEclipse 1.3.x Code-highlight Parser de Lua 5.1 (JFlex) Erros de sintaxe LuaJava loadstring() Code-completion LuaJava New LuaState Referência LuaJava LuaDoc* Execução Java Launcher LuaBinaries Profiler Java Launcher LuaProfiler Debugger Java Remdebug Client Sockets Funcionalidades usam diversas formas de integração RemDebug* 2009 - O LuaEclipse 1.3.x Code highlight Erros de compilação ao salvar 2009 - O LuaEclipse 1.3.x Autocomplete Colapso de comentários e funções 2009 - O LuaEclipse 1.3.x Referência de funções do manual de referência de Lua 5.1 2009 - O LuaEclipse 1.3.x Sumário do LuaProfiler 2009 - O LuaEclipse 1.3.x Debugger integrado: Controle do stack Inspeção de variáveis 2009 - O LuaEclipse 1.3.x Debugger integrado: Controle do stack Inspeção de variáveis 2009 - O LuaEclipse 1.3.x Debugger integrado: Controle do stack Inspeção de variáveis LuaEclipse 1.3.x - problemas Complexidade 9357 linhas de código 128 classes Java Diversas formas não-integradas de implementação de funcionalidades Parser impossível de estender Não faz uso do 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 - O LuaEclipse 2.0 Code-highlight Lua AST DLTK Erros de sintaxe LuaJava Code-completion Parser em Lua Metalua* LEG Maior Integração com o DLTK Parsers incrementais escritos em Lua outros Referência LuaBinaries Execução Java Launcher Interpretador embutido Profiler Debugger Java Launcher Java Remdebug Client LuaProfiler Sockets RemDebug* 2010 - O LuaEclipse 2.1 Capacidade de publicar, obter e avaliar trechos de código e 'recipes' da internet direto do IDE LuaRocks – Integração para instalação de dependências MoonMonkey – capacidade de estender e criar automações para o IDE em Lua LuaEclipse 2.x - problemas Manpower LuaEclipse 2.x - problemas Manpower Manpower Manpower Expectativas Criar novas oportunidades de desenvolvimento Melhorar a experiência de uso da ferramenta Aumento de produtividade dos usuários Redução de custos de desenvolvimento Aproximar a comunidade Lua Maior velocidade de evolução Contato/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]>