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 <jasonsantos@gmail.com>
Download

pt - Lua