The Official Eclipse FAQs
Note that this FAQ is updated less frequently than this FAQ. You may find your answer there before it makes its way here.
Part I -- The Eclipse Ecosystem
The Eclipse Community
Eclipse has taken the computing industry by storm. The download data for the Eclipse Software Development Kit (SDK) is astounding and a true ecosystem is forming around this new phenomenon. In this chapter we discuss what Eclipse is and who is involved in it and give you a glimpse of how large a community has put its weight behind this innovative technology.
An open source project would be nothing without a supporting community. The Eclipse ecosystem is a thriving one, with many research projects based on Eclipse, commercial products that ship on top of Eclipse, lively discussions in newsgroups and mailing lists, and a long list of articles and books that address the platform. The following pages will give you a roadmap of the community, so that you will feel more at home as you come to wander its winding streets.
Galatasaray Real Madrid Canlı izle Real Madrid Galatasaray maçı canlı izle /Real-Madrid-Galatasaray-maci-canli-izle_545...4 gün önce – Netgazete ile ilgili haberleri mi aramıştınız? Real Madrid Galatasaray maçı canlı izle haberi için hemen tıklayın! - Şampiyonlar Ligi'nde bugün ... Az Tv Real Madrid Galatasaray Maçı Canlı İzle /az-tv-real-madrid-galatasaray-maci-canli-i...3 gün önce – Az Tv Real Madrid Galatasaray Maçı Canlı İzle Az Tv İnternet Sitesinde Çarşamba Program Akışına göre Real Madrid Galatasaray Maçınını ... Real Madrid 3 Galatasaray 0 Maç Özeti izle - Google+ real Madrid 3-0 Galatasaray,R.Madrid Gs 3-0 Maçı izle,Real Madrid 3-0 Galatasaray Maçını izle,Real Madrid Galatasaray 3-0 izle,Real Madrid ... D smart Gs - Real madrid maçını canlı izle - Eğitim Haber Portalı d-smart-gs-real-madrid-macini-canli-izle-izle,...4 gün önce – D smart Gs - Real madrid maçını canlı izle izle, Galatasaray, D smart Galatasaray Real madrid Maçını Canlı izle izle 03 Nisan 2013,Galatasaray ... CANLI MAÇ iZLE Real Madrid Galatasaray Maçı 3 Nisan 2013 Azz Tv ... Real Madrid Galatasaray Maçı,R.Madrid Gs Maçı Canlı izle,Real Madrid Galatasaray Maçını izle,Real Madrid Galatasaray Maçı kanalı,Real ... Galatasaray Real Madrid Maçı Canlı izle ... | Yookos Real Madrid Galatasaray Maçı Canlı izle Justin Tv izle realmadrid-galatasaray-maci-canli-justin-tv- 6 dakika ... 21:45 Real Madrid - Galatasaray Maçını Canlı İzle 2 - Canlı Maç İzle wwwcanlimacizleco/.../2145-real-madrid-galatasaray-macn-canl_22...5 gün önce – Şampiyonlar Ligi çeyrek final kuraları çekildikten sonra temsilcimiz Galatasaray'a rakip Real Madrid çıkmıştı. Bu belki bir şansızlık beklide?]]
- FAQ What is a view?
- FAQ What is the difference between a view and a viewer?
- FAQ How do I create my own view?
- FAQ How do I set the size or position of my view?
- FAQ Why can't I control when, where, and how my view is presented?
- FAQ How will my view show up in the Show View menu?
- FAQ How do I make my view appear in the Show In menu?
- FAQ How do I add actions to a view's menu and toolbar?
- FAQ How do I make a view respond to selection changes in another view?
- FAQ How does a view persist its state between sessions?
- FAQ How do I open multiple instances of the same view?
In Eclipse, editors are parts that have an associated input inside a workbench window and additional lifecycle methods, such as save and revert. This chapter answers questions about interacting with editors and about writing your own editors, whether they are text based or graphical. See Chapter 15 for a complete treatment of questions about writing your own text-based editors.
- FAQ What is the difference between a view and an editor?
- FAQ How do I open an editor programmatically?
- FAQ How do I open an external editor?
- FAQ How do I dynamically register an editor to handle a given extension?
- FAQ How do I switch to vi or emacs-style key bindings?
- FAQ How do I create my own editor?
- FAQ How do I enable the Save and Revert actions?
- FAQ How do I enable global actions such as Cut, Paste, and Print in my editor?
- FAQ How do I hook my editor to the Back and Forward buttons?
- FAQ How do I create a form-based editor, such as the plug-in Manifest Editor?
- FAQ How do I create a graphical editor?
- FAQ How do I make an editor that contains another editor?
Actions, Commands, and Activities
This chapter answers questions about creating menu bars, context menus, and tool bars and the actions that fill them. A variety of both declarative and programmatic methods are available for contributing actions to the Eclipse UI and for managing and filtering those actions once they have been defined. This chapter also discusses the various ways to execute the long-running tasks that can be triggered by menu and toolbar actions.
Actions are currently considered to be inferior to commands. The following information about actions is still left here to help people which are still using actions. If you can you should use commands.
- FAQ Actions, commands, operations, jobs: What does it all mean?
- FAQ What is an action set?
- FAQ How do I make my action set visible?
- FAQ How do I add actions to the global toolbar?
- FAQ How do I add menus to the main menu?
- FAQ How do I add actions to the main menu?
- FAQ Why are some actions activated without a target?
- FAQ Where can I find a list of existing action group names?
- FAQ What is the difference between a command and an action?
- FAQ How do I associate an action with a command?
- FAQ How do I create my own key-binding configuration?
- FAQ How do I provide a keyboard shortcut for my action?
- FAQ How can I change the name or tooltip of my action?
- FAQ How do I hook into global actions, such as Copy and Delete?
- FAQ How do I build menus and toolbars programmatically?
- FAQ How do I make menus with dynamic contents?
- FAQ What is the difference between a toolbar and a cool bar?
- FAQ How to create a context menu & add actions to the same?
- FAQ Can other plug-ins add actions to my part's context menu?
- FAQ How do I add other plug-ins' actions to my menus?
- FAQ What is the purpose of activities?
- FAQ How do I add activities to my plug-in?
- FAQ How do activities get enabled?
- FAQ What is the difference between perspectives and activities?
Building Your Own Application
Prior to the introduction of RCP, most of the Eclipse community was focused on developing plug-ins for a particular Eclipse application called the workbench. Eclipse, however, has always supported the ability to create your own stand alone applications based on the Eclipse plug-in architecture. Eclipse applications can range from simple headless programs with no user interface to full-blown IDEs. In Eclipse 3.0, the platform began a shift toward giving greater power and flexibility to applications built on the Eclipse infrastructure. This chapter guides you through the process of building your own Eclipse application and explores some of the new Eclipse 3.0 APIs available only to applications.
- FAQ What is an Eclipse application?
- FAQ How do I create an application?
- FAQ What is the minimal Eclipse configuration?
- FAQ How do I create a Rich Client application?
- FAQ How do I customize the menus in an RCP application?
- FAQ How do I make key bindings work in an RCP application?
- FAQ Can I create an application that doesn't have views or editors?
- FAQ How do I specify where application data is stored?
- FAQ Can I create an application that doesn't have a data location?
- FAQ What is an Eclipse product?
- FAQ How do I create an Eclipse product?
- FAQ What is the difference between a product and an application?
- FAQ How do I distribute my Eclipse offering?
- FAQ Can I use an installation program to distribute my Eclipse product?
- FAQ Can I install my product as an add-on to another product?
Productizing an Eclipse Offering
In this chapter, we look at turning an Eclipse configuration into a product. When an Eclipse product is created, the anonymous collection of plug-ins takes on application-specific branding, complete with custom images, splash screen, and launcher. In creating your own product, you typically also need to write an installer and uninstaller and consider how your users will obtain and upgrade your product.
- FAQ Where do I find suitable Eclipse logos and wordmarks?
- FAQ When do I need to write a plug-in install handler?
- FAQ How do I support multiple natural languages in my plug-in messages?
- FAQ How do I replace the Eclipse workbench window icon with my own?
- FAQ How do I write my own eclipseexe platform launcher?
- FAQ Who shows the Eclipse splash screen?
- FAQ How can I publish partial upgrades (patches) to my product?
Part III -- The Eclipse IDE Platform
The most important purpose of an IDE is to browse and edit code. Therefore, perhaps even more than any other IDE platform, the Eclipse editor framework has grown into a highly evolved, flexible, easy-to-use, and easy-to-extend environment for editing program source files. In this chapter, we look at what support exists for writing editors and how easy it is to plug them into the Eclipse IDE platform.
- FAQ What support is there for creating custom text editors?
- Where can I find RCP text editor examples?
- FAQ I'm still confused! How do all the editor pieces fit together?
- FAQ How do I get started with creating a custom text editor?
- FAQ How do I use the text document model?
- FAQ What is a document partition?
- FAQ How do I add Content Assist to my editor?
- FAQ How do I provide syntax coloring in an editor?
- FAQ How do I support formatting in my editor?
- FAQ How do I insert text in the active text editor?
- FAQ What is the difference between highlight range and selection?
- FAQ How do I change the selection on a double-click in my editor?
- FAQ How do I use a model reconciler?
Help, Search, and Compare
Admittedly, this chapter covers a number of unrelated components in the Eclipse Platform. They have in common the fact that each is designed as an independent plug-in that can be added to any Eclipse-based application. Although they are at home mostly in IDE applications, these plug-ins can also be inserted into RCP applications when help, search, or compare facilities are needed.
- FAQ How do I add help content to my plug-in?
- FAQ How do I provide F1 help?
- FAQ How do I contribute help contexts?
- FAQ How can I generate HTML and toc.xml files?
- FAQ How do I write a Search dialog?
- FAQ How do I implement a search operation?
- FAQ How do I display search results?
- FAQ How can I use and extend the compare infrastructure?
- FAQ How do I create a Compare dialog?
- FAQ How do I create a compare editor?
- FAQ How can I run an infocenter on different servers?
Workspace and Resources API
A program is never written in isolation but instead depends on other code, icons, data, and configuration files. An extendable IDE should provide access to wherever these artifacts are stored. In Eclipse, the artifacts are referred to as resources and are stored in a workspace. The FAQs in this chapter show how resources are managed in a workspace and what API is available to control and track their lifecycle.
- FAQ How are resources created?
- FAQ Can I create resources that don't reside in the file system?
- FAQ What is the difference between a path and a location?
- FAQ When should I use refreshLocal?
- FAQ How do I create my own tasks, problems, bookmarks, and so on?
- FAQ How can I be notified of changes to the workspace?
- FAQ How do I prevent builds between multiple changes to the workspace?
- FAQ Why should I add my own project nature?
- FAQ Where can I find information about writing builders?
- FAQ How do I store extra properties on a resource?
- FAQ How can I be notified on property changes on a resource?
- FAQ How and when do I save the workspace?
- FAQ How can I be notified when the workspace is being saved?
- FAQ Where is the workspace local history stored?
- FAQ How can I repair a workspace that is broken?
- FAQ What support does the workspace have for team tools?
The remaining plug-ins in the Eclipse Platform are truly oriented toward writing development tools. This chapter covers elements of the Eclipse IDE workbench, found in the org.eclipse.ui.ide plug-in. This plug-in includes most of the standard platform views, such as Navigator, Tasks, Problems, Properties, and Bookmark. We also take a quick look at advanced topics, such as writing repository clients and debuggers.
- FAQ How do I open an editor on a file in the workspace?
- FAQ How do I open an editor on a file outside the workspace?
- FAQ How do I open an editor on something that is not a file?
- FAQ Why don't my markers show up in the Tasks view?
- FAQ Why don't my markers appear in the editor's vertical ruler?
- FAQ How do I access the active project?
- FAQ What are IWorkspaceRunnable, IRunnableWithProgress, and WorkspaceModifyOperation?
- FAQ How do I write to the console from a plug-in?
- FAQ How do I prompt the user to select a resource?
- FAQ Can I use the actions from the Navigator in my own plug-in?
- FAQ What APIs exist for integrating repository clients into Eclipse?
- FAQ How do I deploy projects to a server and keep the two synchronized?
- FAQ What is the difference between a repository provider and a team subscriber?
- FAQ What is a launch configuration?
- FAQ When do I use a launch delegate?
- FAQ What is Ant?
- FAQ Why can't my Ant build find javac?
- FAQ How do I add my own external tools?
- FAQ How do I create an external tool builder?
Implementing Support for Your Own Language
Through its JDT project, Eclipse has strong support for Java development, such as editing, refactoring, building, launching, and debugging. Likewise, the C development tools (CDT) project aims for similar support for writing C/C++ code. This chapter discusses some of the issues to address when you have your own language and want to host it in Eclipse for writing programs and plug-ins. We look at the various ways of integrating with Eclipse: from no integration to a fully integrated language development environment. To structure our discussion, we take a closer look at eScript, an experimental script language developed especially for this book. As is the case for all examples described in this book, you can find eScript on this book’s CD-ROM or Web site (http://eclipsefaq.org).
Many questions have been addressed in other FAQs in this book and may be somewhat repetitive. However, if you are planning to implement support for your own programming language, this chapter might serve well as a comprehensive overview of how to approach this big task.
Any classification of integration of a new programming language with Eclipse is somewhat arbitrary. We have identified the following degrees of integration of a new programming language, such as eScript, with Eclipse:
- Phase 1—Compiling code and building projects. To obtain full integration with Eclipse in the area of compilation of programs and build processes for your own language, follow the various steps outlined in the FAQs below.
- Phase 2—Implementing a DOM. The DOM is an in-memory structural representation of the source code of a program written in your language. Using the structural information contained in the DOM, all kinds of analysis and refactoring tools can be built.
- Phase 3—editing programs. After writing a compiler, a builder, and a DOM, you are ready to consider all the individual steps to build the ultimate Eclipse editor for your language.
- Phase 4—Adding the finishing touches. To give your language IDE a professional look, follow the steps outlined in the FAQs below.
If you carefully observe these four phases, you will find that the visual aspects of your language IDE happen late in the process. You will have to do some legwork before you are able to get to the pretty parts. We recommend patience and restraint. Time spent in phases 1 and 2 will be well spent, and once you get to phase 3 and 4, you will be grateful that you followed all the steps we outlined.
- FAQ What is eScript?
- FAQ Language integration phase 1: How do I compile and build programs?
- FAQ How do I load source files edited outside Eclipse?
- FAQ How do I run an external builder on my source files?
- FAQ How do I implement a compiler that runs inside Eclipse?
- FAQ How do I react to changes in source files?
- FAQ How do I implement an Eclipse builder?
- FAQ Where are project build specifications stored?
- FAQ How do I add a builder to a given project?
- FAQ How do I implement an incremental project builder?
- FAQ How do I handle setup problems for a given builder?
- FAQ How do I make my compiler incremental?
- FAQ Language integration phase 2: How do I implement a DOM?
- FAQ How do I implement a DOM for my language?
- FAQ How can I ensure that my model is scalable?
- FAQ Language integration phase 3: How do I edit programs?
- FAQ How do I write an editor for my own language?
- FAQ How do I add Content Assist to my language editor?
- FAQ How do I add hover support to my text editor?
- FAQ How do I create problem markers for my compiler?
- FAQ How do I implement Quick Fixes for my own language?
- FAQ How do I support refactoring for my own language?
- FAQ How do I create an Outline view for my own language editor?
- FAQ Language integration phase 4: What are the finishing touches?
- FAQ What wizards do I define for my own language?
- FAQ When does my language need its own nature?
- FAQ When does my language need its own perspective?
- FAQ How do I add documentation and help for my own language?
- FAQ How do I support source-level debugging for my own language?
Java Development Tool API
From the outset, Eclipse has been used to develop Eclipse itself. The plug-ins that make up Eclipse are written in Java, and the concept of self-hosting has propelled the JDT to their current maturity level. When you are writing your plug-ins, you will also spend considerable time inside the JDT. A full coverage of JDT’s functionality is way beyond the scope of the list of FAQs in this chapter; however, we do focus on topics that are directly related to writing plug-ins and discuss aspects of JDT that warrant a discussion about how they are implemented rather than used.
It is important to realize that JDT itself has been written as a set of plug-ins and receives no special support from the platform. JDT represents a wealth of knowledge and is by far the most elaborate and advanced set of plug-ins in Eclipse. It is definitely worth spending some time to observe how JDT extends the platform and how its own extension points and API have been designed. It is likely that your plug-ins will deploy very similar patterns of extensions, extendibility, and reuse.
Finally, the JDT is a useful set of plug-ins in its own right, but it has also been carefully designed for extension by other plug-ins. By having a published API, it is easy to create new Java projects, generate Java source code, manage Java builds, inspect and analyze Java projects, and implement special refactorings. Refer to Help > Help Contents > JDT Plug-in Developer Guide for extensive documentation and tutorials describing the extension points and API published by JDT. For a comprehensive guide to Java development using Eclipse, see the Java Developers Guide to Eclipse (Addison-Wesley, 2003).
- FAQ How do I extend the JDT?
- FAQ What is the Java model?
- FAQ How do I create Java elements?
- FAQ How do I create a Java project?
- FAQ How do I manipulate Java code?
- FAQ What is a working copy?
- FAQ What is a JDOM?
- FAQ What is an AST?
- FAQ How do I create and examine an AST?
- FAQ How do I distinguish between internal and external JARs on the build path?
- FAQ How do I launch a Java program?
- FAQ What is JUnit?
- FAQ How do I participate in a refactoring?
- FAQ What is LTK?
Where to buy the original book
The initial contents for these FAQ pages has come from The Offical Eclipse 3.0 FAQs written by John Arthorne and Chris Laffra.
Permission to publish the FAQ book contents here has been graciously offered by Addison-Wesley, publishers of the official Eclipse Series which wouldn't be possible without the great help from Greg Doench.
The book can be purchased from Amazon.com