Add functionality to all Eclipse TextEditors - eclipse

I need to add some functionality to eclipse text editors. The goal is to get a Graphics Context or add a SWT Canvas to any and all Eclipse AbstractTextEditors and package these modifications within a plug-in (so by installing the plugin I provide, the editor modification will work for the Java Editor, XML Editor, plain text editor, etc.). Are there any extension points that would suffice for this purpose, or is my best bet with a fragment? Any help is appreciated.

I would recommend looking at the source code for AbstractTextEditor to see if an extension point exists for this purpose. If an extension point exists, it will be evident in that class source.
I would wager that such extension point does not exist. You are left with opening an enhancement request and in the meantime patching the plugin containing AbstractTextEditor plugin to alter the source of that file. A fragment isn't going to do the trick. Another alternative to consider is to learn and apply a bytecode weaving framework such as AspectJ (http://eclipse.org/ajdt/).

Related

How to insert visual elements inside the Java text editor of Eclipse?

I'd like to add extra visual elements inside the Java text editor of Eclipse, more specifically on top of classes and methods declarations. Things like indicators and links.
The best example is what Microsoft has done in Visual Studio with what they call CodeLens:
The closest solution I can think of is using Annotations (displayed in the rulers) but it's far from the user experience I want to have.
Are there any Eclipse plugins that have done this before?
Any pointers to give me somewhere to start?
Annotations are typically shown in the vertical and overview rulers (left and right), but they're not limited to them. Take a closer look at the documentation you linked to, particularly the mentions of AnnotationPainter, and then how it uses drawing strategies. I expect you'd need a rather complicated one, and I haven't even thought through how you'd generate the information in the first place, never mind adding it directly to the Annotation Model if you're not just going to stash it in a Marker on disk.
Of course, some of this looks like information you can already find through Team->Show Annotations (although that does use the ruler to let you find them by line).
Disclaimer, I'm the author of CodeLens Eclipse.
Eclipse doesn't provide Codelens feature, but it exists CodeLens Eclipse.
This project provides a CodeLens extension point to implement your own CodeLens. Today TypeScript, Java JDT CodeLens and lsp4e CodeLens are available. Here a little demo with Java JDT Editor:

difference between MultiSourceEditor and MultiPageEditorPart

I found the source code for the Plugin Manifest Editor, from Eclipse, and noticed that it uses another class as model. The MultiSourceEditor.
In my editor I´m using MultiPageEditorPart. And I need to open 2 source files here with it.
Basically, what are the differences between them? Maybe I should switch to this one?
Thanks a lot.
org.eclipse.pde.internal.ui.editor.MultiSourceEditor is an internal editor used by the Plugin Development Environment. It extends FormEditor which itself is based on MultiPageEditorPart. The editor is just a specialized multi-page editor for PDE.
You must not use any internal classes, they are subject to change without notice - Eclipse API Rules of Engagement. You can, of course, look at the source code to see what it does.

Is it possible to use Eclipse IDE as just a text editor?

Is it possible to use Eclipse IDE just as a text editor (with features like sytax highlighting, etc., possibly with extra features) , by dragging files into it or using a 'File>Open' kind of thing, without creating any "Projects" and the like, editing the files and saving them to their original location? Is this a feature built into Eclipse, or would a plugin be necessary?
(In case the language makes a difference, this is for Python, although information for other languages would also be useful.)
Yes, you can, but it has much the same feeling as chartering a 747 to taxi to the convenience store.
I'm using Eclipse SDK
Version: 3.5.0
Build id: I20090611-1540
And yes, you can open a .txt file, make changes, then save and it will save the file to the original open location.
Just did it.
I don't know about Python syntax highlighting, but yes, it's completely possible to use it as a text editor. I've even prettified single files of C++ code in Eclipse; just drag-'n-drop the file into the window.
I use Eclipse for:
text editor
Sql perspective (sql client)
Task list
Find in files (Open Resource by name)
Svn plugin (subversion client)
and many other useful task.
I would like to make it more light by removing the Java compiler and SDK.
How can I do that?

Can I add JavaDoc to a package easily with Eclipse?

I use javadoc to document my classes and methods. I would like to add some overview information to my packages, too. I like how Eclipse creates a stub of a matching Doc Comment for each class or method once I type /**<Enter>. Does Eclipse have an easy way to generate a package.html file, too?
Update 4 years later (Oct. 2013)
javabeangrinder's answer (upvoted) mentions the following trick:
To create a package-info.java file in an existing package:
Right click on the package where you want a package-info.java.
Select new->package.
Check the Create package.info.java check box.
Click on Finish
Original answer (May 2009)
There is no template or wizard to easily create a package.html file.
As mmyers said in his comment, since Java1.5, the correct file to create would be package-info.java.
That file can be used not only for javadocs, but also for package-level annotations (as illustrated here).
There is an opened Bug (#86168) for demanding a wizard for the creation of package-info.java (since the class wizard does not allow the package-info name).
The reflections on that topic are on since... 2005! The problem is that any solution should
be implemented in a way that it also helps with 1.4 code.
The current workaround is to create a package-info.java as a text file.
From that point forward, package-info.java behaves as a normal Java class, and Eclipse places a package-info.class file in the output folder.
The Javadocs are correctly built using package-info.java, and not the package.html file.
(source: developpez.com)
Note (in response to Strawberry's comment):
bug 77451 (2004!, for package.html)
bug 163633 and bug 163926 (2006, for package-info.java)
both wish a preview of the package overview in package-info.java in the Javadoc
view.
So far, no patch has been proposed/implemented.
There is simply not enough demands for that feature to be added.
In eclipse
Since package-info.java isn't a valid identifier for a class it cannot be created as a class in Eclipse.
I found that when you create a new package there is a check box to check if you want a package-info.java.
To create a package-info.java file in an existing package:
Right click on the package where you want a package-info.java.
Select new->package.
Check the Create package.info.java check box.
Click on Finish
The JAutodoc plugin does a great job of this, as well as all your other documentation needs. Install and configure the plugin and right click the package and click JAutodoc > Add Package Javadoc
There are configurations and templates available for the .java or .html package documentation.
This plugin also does a great job of standardizing all your Javadoc needs, with a great deal of customization.
http://jautodoc.sourceforge.net/
There's a plugin that seems to create package.html files. I haven't used it but someone landing here might find it useful.
http://sourceforge.net/projects/package-javadoc/

Why does one need the Eclipse Snippets View when editor templates already exist?

What are the tradeoffs of the Eclipse Snippets View vs. editor templates? Why were Snippets introduced in the first place?
Snippets appear to be a custom version of templates, with a view in the perspective and GUI dialogs to prompt for variable values in the template.
The only "new" functionality they have is to offer up their functionality through toolbar items in the editors.
Snippets view is sort of an extension proposed by WTP (Web Tool Platform) for template, more oriented to (web) code formatting, whereas templates help the user enter reoccurring patterns into a text editor.
So at the beginning, Eclipse Templates was a standard eclipse feature which could only be applied for java and javadocs.
Snippets are basically the same, but for other kind of files and were introduced by WTP to fill the same need, but for their own type of files (xml, jps, html, ...)
(and this is, right there, "why snippets were introduced in the first place")
Template does not have their own view, but rather an obscure Preference page (Preferences -> Java -> Editor -> Templates)
You could at the time however write a small eclipse extension in order to make a Template View.
This has been resolved since eclipse3.4M6 (Templates have their own view)
You can also build some custom advanced snippets view
Additionally, the Snippets view was first conceived during the development time frame between Eclipse 1.0 and 2.0, before the content assist templates were anywhere close to being as capable as they now are. That's why it was created, and it simply came into WTP as part of IBM's initial contribution to the project.