Upload
celeste-albert
View
20
Download
1
Embed Size (px)
DESCRIPTION
Creating IDEs for the Eclipse Platform. Survey de Introdução à Investigação. Motivação. Porquê uma IDE? Uma IDE é um componente fundamental do toolchain de uma linguagem. Influencia bastante a productividade do programador. Porquê o Eclipse? - PowerPoint PPT Presentation
Citation preview
Creating IDEs for the Eclipse Platform
Survey de Introdução à Investigação
Motivação
Porquê uma IDE? Uma IDE é um componente fundamental do
toolchain de uma linguagem. Influencia bastante a productividade do
programador. Porquê o Eclipse?
Muita infra-estructura e funcionalidades disponiveis, trabalho poupado.
Integração com outras ferramentas de desenvolvimento.
IDE Features
Code editor. Syntax highlighting. File/project explorer. Program builder. Outline. Debugger. Code completion. Code formatting. Refactoring.
Eclipse Platform
Extendido através de plug-ins. Cada plug-in implementa um conjunto de
extensões a extension points pré-definidos. O próprio Eclipse é composto por plug-ins.
Uma IDE do Eclipse: Separada em components como o Core,
User Interface, Debug, Build, etc., cada uma correspondendo a uma plug-in.
Core Component
Project Description Descreve os ficheiros e directórios do projecto,
opções de compilador, condicionais, etc. Project Builder
Invoca o compilador, constrói o projecto. Parser & Language Model
Cria uma representação estruturada do código. Project Nature
Associa o projecto à IDE.
Basic IDE Architecture
UI Component
Consiste em vários elementos como: Editor Views Outline Dialogs Wizards Preferences Actions (buttons e menus)
Em geral simples de implementar, o editor e a text framework é que são um pouco mais complicados.
UI Component
UI Component
Text Framework
Source ViewerDocument
Editor
UI Component
Editor
Source ViewerDocument
EclipseWorkbench
DocumentProvider
Source ViewerConfiguration
Text Framework
StyledText
Advanced Concepts
AST Conter toda a informação relevante ao utilizador. Arvore heterogénea com bom mecanismos de navegação.
Advanced Parser Functionality Permitir recuperação de erros. Parsing parcial (de um sub-elemento da unidade de
compilação).
Entity References Mecanismo para poder navegar de um elemento-
referência da AST, para o elemento-definição.
Advanced Concepts
DOM AST Estruturar a AST como o DOM de XML/HTML. É um mecanismo mais rico para manipular a AST (bom
para refactoring).
Model scalability Permitir que a UI continue usável (responsive) em
projectos muito grandes. Criar um modelo mais simples e mais lightweight que a
AST, para a estrutura de nomes do programa. Gerir os elementos desse modelo através duma cache.
Advanced Concepts
Model updating Definir como actualizar o modelo após mudanças textuais
do código. Solução ideal: actualizar numa background thread, 2 a 5
vezes por segundo. Refactoring
A “ultimate” feature duma IDE, tanto em utilidade como complexidade.
Eclipse oferece algum suporte através do LTK ( Language Toolkit).
Mas cabe ao developer implementar a lógica de cada operação.