1 / 13

Creating IDEs for the Eclipse Platform

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?

Download Presentation

Creating IDEs for the Eclipse Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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.

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

  4. 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.

  5. 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.

  6. Basic IDE Architecture

  7. 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.

  8. UI Component

  9. UI Component • Text Framework Editor Document Source Viewer

  10. UI Component Eclipse Workbench • Text Framework Editor Document Provider Document Source Viewer Source Viewer Configuration StyledText

  11. 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.

  12. 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.

  13. 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.

More Related