LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

35
LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Luís Eduardo Jason Santos Lua Workshop 2009 Lua Workshop 2009

Transcript of LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

Page 1: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse

integrating tools in Lua development

Luís Eduardo Jason SantosLuís Eduardo Jason Santos Lua Workshop 2009Lua Workshop 2009

Page 2: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

Special ThanksSpecial ThanksThe Lua TeamThe Lua Team

IdeaisIdeais

Andre Carregal and the Kepler ProjectAndre Carregal and the Kepler Project

Fábrica DigitalFábrica Digital

FINEP/SEBRAEFINEP/SEBRAE

IT Quality SystemsIT Quality Systems

Move NetworksMove Networks

Anywhere TechAnywhere Tech

Comunidade LuaComunidade Lua

LuaEclipse

Luís Eduardo Jason SantosLuís Eduardo Jason Santos Lua Workshop 2009Lua Workshop 2009

Page 3: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipseLuaEclipse

   An integrated An integrated

development environment development environment built on the Eclipse built on the Eclipse

platformplatform

The platform

Some members of the Eclipse Foundation

Page 4: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

The Eclipse platformThe Eclipse platform

Strong presence in several Strong presence in several areas areas

- SOA orchestration- SOA orchestration

- Java development- Java development

- web and script langugages- web and script langugages

- C/C++ development- C/C++ development

- mobile platforms- mobile platforms(including (including linux mobile and symbian)linux mobile and symbian)

- microcontrollers- microcontrollers

Page 5: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse – What it is?LuaEclipse – What it is?

IDE - Integrated IDE - Integrated Development EnvironmentDevelopment Environment

Page 6: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

What it is not...What it is not...

LuaEclipse is not aLuaEclipse is not aCode editorCode editor

- like scite, gedit, - like scite, gedit, notepad++, ultraedit, vi, etc.notepad++, ultraedit, vi, etc.

Page 7: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

What is it?What is it?

IDE - Integrated IDE - Integrated Development Environment Development Environment

usually have:usually have:- code editor- code editor

- compiler/interpreter- compiler/interpreter

- integrated development tools- integrated development tools

- debugger- debugger

Page 8: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

Modern IDEsModern IDEs

Popular toolsPopular tools- context detection- context detection

- dependency analyzer- dependency analyzer

- refactoring tools- refactoring tools

- builders and- builders anddeployment toolsdeployment tools

- version control integration- version control integration

Page 9: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse - MotivationLuaEclipse - Motivation

HistoricalHistorical- - corporate worldcorporate world origins origins

ContextContext- lua as an - lua as an extension extension languagelanguage

Page 10: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse - MotivationLuaEclipse - Motivation

Main issuesMain issues- - integrationintegration with host with host

application application toolchaintoolchain

- keep contact with - keep contact with development teams development teams cultureculture

Page 11: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

OriginsOrigins

2003

LuaEclipse 0.5LuaEclipse 0.5

Eclipse 2.1

IdeaisDanilo Tuler

Page 12: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

OriginsOrigins

LuaEclipse 1.0LuaEclipse 1.0

Eclipse 3.2

Danilo Tuler

2003 2004 2005 2006 2007 2008

Guilherme Martins

Thiago Ponte

André Carregal

Page 13: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

OriginsOrigins

LuaEclipse 1.1LuaEclipse 1.1

Eclipse 3.2/3.3

2004 2005 2006 2007 2008

Guilherme Martins

Thiago Ponte

André Carregal

Jason Santos

Lua 5.1

Page 14: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

OriginsOrigins

LuaEclipse 1.2LuaEclipse 1.2

Eclipse 3.3

2005 2006 2007 2008

Jason Santos

Guilherme Martins

André Carregal

Edgard Arakaki

Lua 5.1

2009

LuaDoc

LuaProfiler

Page 15: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

OriginsOrigins

LuaEclipse 1.3betaLuaEclipse 1.3beta

Eclipse 3.4

2005 2006 2007 2008

Jason Santos

André Carregal

Lua 5.1

2009

LuaDoc

LuaProfiler

RemDebug

Page 16: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2005 2006 2007 2008 20092003 2004

LuaEclipse LuaEclipse 0.50.5

Eclipse 2.1 3.0 3.1 3.2 3.3 3.4 3.5

1.01.0 1.11.1 1.21.2 1.31.3 1.3.11.3.1

In the paralel universe...In the paralel universe...

2007 2008 2009

Jason Santos

Edgard ArakakiLuaEclipse 2.xLuaEclipse 2.x

Based on DLTKRequires Eclipse 3.3

design2.x2.x

Page 17: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2007 2008 2009

2.0alpha2.x2.x

Back to the real worldBack to the real world

2005 2006 2007 2008 20092003 2004

LuaEclipse LuaEclipse 0.50.5

Eclipse 2.1 3.0 3.1 3.2 3.3 3.4 3.5

Jason SantosInvestimento da FINEPInvestimento da FINEP

- descrição do projeto feita em 2005- início do Kepler Mobile- branch 2.x congelado na versão alpha

1.01.0 1.11.1 1.21.2 1.31.3 1.3.11.3.1

Edgard Arakaki

Page 18: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

"Herrick Muhlestein, et al."www.movenetworks.com

LuaEclipse 1.3.1LuaEclipse 1.3.1

Eclipse 3.4

2005 2006 2007 2008

Jason Santos

André CarregalLua 5.1

2009

LuaDoc

LuaProfiler

RemDebug

Page 19: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Code highlightCode highlight Code completionCode completion generated from a generated from a customizable Lua Statecustomizable Lua State

Documentation reference Documentation reference (using LuaDoc)(using LuaDoc)

Integrated DebuggerIntegrated Debugger Integrated ProfilerIntegrated Profiler (using (using LuaProfiler)LuaProfiler)

Execution using a Execution using a system installed interpretersystem installed interpreter

Page 20: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

IDE Features IDE Features use use differentdifferent integration integration formsforms

Code-highlight

Syntax errors

Lua 5.1 parser(JFlex)

loadstring()LuaJava

Execution

Profiler

Java Launcher LuaBinaries

Java Launcher LuaProfiler

DebuggerJava Remdebug

ClientSockets

Reference LuaJava LuaDoc*

RemDebug*

Code-completion New LuaStateLuaJava

Page 21: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Code Code highlighthighlight

CompilatioCompilation errors on n errors on savingsaving

Page 22: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Auto-Auto-completecomplete

Comment Comment and and function function foldingfolding

Page 23: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - O LuaEclipse 1.3.x2009 - O LuaEclipse 1.3.x

Referência Referência de funções de funções do manual do manual de de referência referência de Lua 5.1de Lua 5.1

Page 24: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Sumário do Sumário do LuaProfilerLuaProfiler

Page 25: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Integrated Integrated debugger:debugger:

Stack Stack controlcontrol

Inspection Inspection of local of local and global and global variablesvariables

Page 26: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Integrated Integrated debugger:debugger:

Stack Stack controlcontrol

Inspection Inspection of local of local and global and global variablesvariables

Page 27: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - LuaEclipse 1.3.x2009 - LuaEclipse 1.3.x

Integrated Integrated debugger:debugger:

Stack Stack controlcontrol

Inspection Inspection of local of local and global and global variablesvariables

Page 28: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse 1.3.x - problemsLuaEclipse 1.3.x - problems

ComplexityComplexity 9357 lines of code9357 lines of code 128 Java classes128 Java classes Several non-integrated forms of Several non-integrated forms of implementing featuresimplementing features

Parser is impossible to extendParser is impossible to extend Doesn't use DLTKDoesn't use DLTK

Page 29: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2009 - O LuaEclipse 2.02009 - O LuaEclipse 2.0

DLTK implementa DLTK implementa Code highlight, Code highlight, code completion,code completion, referências de referências de documentação e erros de compilaçãodocumentação e erros de compilação

AST montada usando um parser em AST montada usando um parser em LuaLua

RefactoringRefactoring e formatadores escritos e formatadores escritos em Luaem Lua

Debugger Debugger integradointegrado Profiler Profiler integrado (usando integrado (usando LuaProfiler)LuaProfiler)

Execução utilizando LuaJava além do Execução utilizando LuaJava além do interpretador instalado no sistemainterpretador instalado no sistema

Page 30: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

Java Launcher

Java RemdebugClient

LuaProfiler

Sockets RemDebug*

2009 - LuaEclipse 2.02009 - LuaEclipse 2.0

Code-highlight

Syntax errors

DLTK

LuaJava

Execution

Profiler

Debugger

References

Greater DLTK Greater DLTK integrationintegration

Incremental Incremental parsers written in parsers written in LuaLua

Code-completion

Lua AST

Parser in Lua

Metalua* LEG

LuaBinaries

outros

Built-in interpreterJava Launcher

Page 31: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

2010 - LuaEclipse 2.12010 - LuaEclipse 2.1

Ability to publish, retrieve and rate e Ability to publish, retrieve and rate e avaliar code snippets and 'recipes' from avaliar code snippets and 'recipes' from the internet – straight from the IDEthe internet – straight from the IDE

LuaRocks – LuaRocks – Integration of dependency Integration of dependency installationinstallation

MoonMonkeyMoonMonkey – ability to extend and – ability to extend and automate the IDE in Lua automate the IDE in Lua

Page 32: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse 2.x - problemsLuaEclipse 2.x - problems

ManpowerManpower

Page 33: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

LuaEclipse 2.x - problemasLuaEclipse 2.x - problemas

ManpowerManpower ManpowerManpower ManpowerManpower

Page 34: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

ExpectationsExpectations

Create new development opportunities Create new development opportunities Enhance user experienceEnhance user experience Raise productivityRaise productivity Reduce development costsReduce development costs Bring the Lua community closerBring the Lua community closer Speed up evolutionSpeed up evolution

Page 35: LuaEclipse integrating tools in Lua development Luís Eduardo Jason Santos Lua Workshop 2009.

Contact/downloadsContact/downloads

Website

http://luaeclipse.luaforge.net

SVNSVN

https://svn.anyware-tech.com/luaeclipse/luaeclipsehttps://svn.anyware-tech.com/luaeclipse/luaeclipse

Update-sitesUpdate-sites

http://luaeclipse.luaforge.net/preview/update-site/preview/update-site

Luís Eduardo Jason Santos <[email protected]>Luís Eduardo Jason Santos <[email protected]>