13
Creating IDEs for the Eclipse Platform Survey de Introdução à Investigação

Creating IDEs for the Eclipse Platform

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

Page 1: Creating IDEs for the Eclipse Platform

Creating IDEs for the Eclipse Platform

Survey de Introdução à Investigação

Page 2: Creating IDEs for the Eclipse Platform

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.

Page 3: Creating IDEs for the Eclipse Platform

IDE Features

Code editor. Syntax highlighting. File/project explorer. Program builder. Outline. Debugger. Code completion. Code formatting. Refactoring.

Page 4: Creating IDEs for the Eclipse Platform

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.

Page 5: Creating IDEs for the Eclipse Platform

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.

Page 6: Creating IDEs for the Eclipse Platform

Basic IDE Architecture

Page 7: Creating IDEs for the Eclipse Platform

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.

Page 8: Creating IDEs for the Eclipse Platform

UI Component

Page 9: Creating IDEs for the Eclipse Platform

UI Component

Text Framework

Source ViewerDocument

Editor

Page 10: Creating IDEs for the Eclipse Platform

UI Component

Editor

Source ViewerDocument

EclipseWorkbench

DocumentProvider

Source ViewerConfiguration

Text Framework

StyledText

Page 11: Creating IDEs for the Eclipse Platform

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.

Page 12: Creating IDEs for the Eclipse Platform

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.

Page 13: Creating IDEs for the Eclipse Platform

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.