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]>
Download

LuaEclipse_presentation_slides