Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "New Help for Old Friends V"
(→Semantic Highlighting) |
(→Semantic Highlighting) |
||
Line 223: | Line 223: | ||
The semantic highlighting framework has been extended. <code>org.eclipse.wst.sse.ui.ISemanticHighlightingExtension</code> provides the user with a new method of determining if a region of the editor is consumable by the highlighting strategy based on the <code>org.eclipse.wst.sse.core.internal.provisional.IndexedRegion</code> that contains the region. | The semantic highlighting framework has been extended. <code>org.eclipse.wst.sse.ui.ISemanticHighlightingExtension</code> provides the user with a new method of determining if a region of the editor is consumable by the highlighting strategy based on the <code>org.eclipse.wst.sse.core.internal.provisional.IndexedRegion</code> that contains the region. | ||
− | Additionally, a semantic highlighting strategy can have its style determined based on the value of a single preference key. To do this, the attribute <code>styleStringKey</code> must be added to the semanticHighlighting extension point element. This key identifies a preference value in the format of <code>RGB foreground (#rrggbb) | RGB background (#rrggbb) | bold (true/false) | italic (true/false) | strikethrough (true/false) | underline (true/false)</code> | + | Additionally, a semantic highlighting strategy can now have its style determined based on the value of a single preference key instead of several keys as before. To do this, the attribute <code>styleStringKey</code> must be added to the semanticHighlighting extension point element. This key identifies a preference value in the format of <code>RGB foreground (#rrggbb) | RGB background (#rrggbb) | bold (true/false) | italic (true/false) | strikethrough (true/false) | underline (true/false)</code> |
=== DOM Conformity === | === DOM Conformity === |
Revision as of 14:38, 11 March 2010
This page to to collect miscellaneous notes and pointers to changes coming up in the WTP 3.2 release. Its purpose it to be a central "jumping off" point for those adopters of WTP 3.1 that are moving to WTP 3.2. Most of this information may be already contained in various mailing lists and Bugzilla reports, but it is believed best to have a central place to get people started. Adopters: if you run into trouble or notice things that are not covered here, please let us know (wtp-dev is a good place). Web Tools is a Platform and we strive to provide compatible API evolution with clear migration instructions, etc., for the future.
One thing we have learned in the past is that some adopters do not move with us to every new release. Some early adopters went from 0.7 directly to 1.5, for example. Unfortunately, it is difficult to present the information in that way, covering perhaps multiple changes across different version ranges.
Note: as these notes develop and grow in number, they may occasionally be re-organized into categories, etc.
Contents
Server tools
- Module adopters changes [bug#291833]
Classes: ModuleDelegate and ProjectModule
The new changes introduce a new method getPath(IModule) inside of ModuleDelegate, this new method provide a way to get the path relative to its parent of the given module contained within the application. A default implementation that returns 'null' was provided but adopters should strongly consider to provide a proper implementation.
Common Components
- 218438 The org.eclipse.wst.common.ui.provisional.editors workaround package has been removed. Its classes offered a workaround to a post selection firing problem that has long since been fixed in the Eclipse Platform.
- The version of org.eclipse.wst.common.snippets has been incremented to 1.2.0 due to enhancement 282114.
Java EE
- org.eclipse.jst.j2ee.core - Added support for Java EE 6, changed over to using javax.xml.namespace.QName for ServiceRef, EnvEntryType is not really used now in EnvEntry (any type can be used now, so it is a String), previously generic types now have specific type associations, plugin version id was bumped to 1.2.0 - see bug 252615 for details/comments.
- Deprecated resources deleted from WTP 3.2
- Module mapping code with bug 280151
- class org/eclipse/jst/j2ee/internal/provider/J2EEUtilityJavaProjectsItemProvider.java
- class org/eclipse/jst/j2ee/internal/provider/J2EEModulemapItemProviderAdapterFactory.java
- class org/eclipse/jst/j2ee/internal/provider/UtilityJARMappingItemProvider.java
- class org/eclipse/jst/j2ee/internal/provider/ModulemapItemProviderAdapterFactory.java
- class org/eclipse/jst/j2ee/internal/provider/ModulemapItemProviderAdapter.java
- class org/eclipse/jst/j2ee/internal/provider/ModuleMappingItemProvider.java
- class org/eclipse/jst/j2ee/internal/provider/EARProjectMapItemProvider.java
- class org/eclipse/jst/j2ee/internal/provider/ModulemapEditPlugin.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapInit.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapSwitch.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMappingImpl.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapAdapterFactory.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/UtilityJARMapping.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackage.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapPackageImpl.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactory.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMappingImpl.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModuleMapping.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/ModulemapFactoryImpl.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMapImpl.java
- class org/eclipse/jst/j2ee/internal/earcreation/modulemap/EARProjectMap.java
- Import classes code with bug 160088
- class org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportPage1.java
- class org/eclipse/jst/j2ee/internal/wizard/WizardClassesImportMainPage.java
- class org/eclipse/jst/j2ee/internal/wizard/ClassesImportWizard.java
- class org/eclipse/jst/j2ee/internal/wizard/PackageNameResolver.java
- class org/eclipse/jst/j2ee/internal/wizard/MinimizedFileSystemElement.java
- Dead refactoring code (replaced with LTK) bug 274157
- class org/eclipse/jst/j2ee/internal/actions/ImportClassesAction.java
- class org/eclipse/jst/j2ee/internal/actions/J2EEDeleteAction.java
- class org/eclipse/jst/j2ee/internal/actions/J2EEDeleteModuleActionPopulator.java
- class org/eclipse/jst/j2ee/internal/actions/J2EEModuleRenameChange.java
- class org/eclipse/jst/j2ee/internal/actions/J2EERenameAction.java
- class org/eclipse/jst/j2ee/internal/actions/J2EERenameParticipant.java
- class org/eclipse/jst/j2ee/internal/actions/J2EERenameResourceAction.java
- class org/eclipse/jst/j2ee/internal/actions/J2EEResourceOpenListener.java
- class org/eclipse/jst/j2ee/internal/actions/NewAppClientComponentAction.java
- class org/eclipse/jst/j2ee/internal/actions/NewEARComponentAction.java
- class org/eclipse/jst/j2ee/internal/actions/WTPBaseAction.java
- class org/eclipse/jst/j2ee/internal/dialogs/DeleteEARComposite.java
- class org/eclipse/jst/j2ee/internal/dialogs/DeleteEARDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/DeleteModuleComposite.java
- class org/eclipse/jst/j2ee/internal/dialogs/DeleteModuleDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/DeleteModuleReferencesComposite.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EEDeleteDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EEDeleteUIConstants.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EEDeployStatusDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EEDeployUIConstants.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EERenameDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/J2EERenameUIConstants.java
- class org/eclipse/jst/j2ee/internal/dialogs/RenameEARComposite.java
- class org/eclipse/jst/j2ee/internal/dialogs/RenameEARDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/RenameModuleComposite.java
- class org/eclipse/jst/j2ee/internal/dialogs/RenameModuleDialog.java
- class org/eclipse/jst/j2ee/internal/dialogs/RenameModuleReferencesComposite.java
- class org/eclipse/jst/j2ee/internal/ear/actions/ArchiveEARUIResourceHandler.java
- class org/eclipse/jst/j2ee/internal/ear/actions/EARImportListContentProvider.java
- class org/eclipse/jst/j2ee/internal/ear/actions/ExportEARAction.java
- class org/eclipse/jst/j2ee/internal/ear/actions/ImportEARAction.java
- class org/eclipse/jst/j2ee/internal/ear/actions/ModulesProvider.java
- class org/eclipse/jst/j2ee/internal/delete/ClasspathDeleteInfo.java
- class org/eclipse/jst/j2ee/internal/delete/DeleteOptions.java
- class org/eclipse/jst/j2ee/internal/rename/ClasspathRenameInfo.java
- class org/eclipse/jst/j2ee/internal/rename/RenameOptions.java
- Module mapping code with bug 280151
Source Editing
Versions
Bundle | Version change | Trigger |
---|---|---|
org.eclipse.wst.jsdt.core | 1.0.200 -> 1.1.0 | 279674279804280082 Removal of unused constants from provisional org.eclipse.wst.jsdt.core.compiler.IProblem interface, the provisional org.eclipse.wst.jsdt.core.ITypeParameter interface in its entirety, and other vestigial types inherited from JDT |
org.eclipse.wst.jsdt.ui | 1.0.200 -> 1.1.0 | 279474 Addition of extension points by renaming |
org.eclipse.wst.sse.ui | 1.1.200 -> 1.2.0 | 294088 (Automatically close paired characters in the editor) and 247221 (Non-validation annotations for the StructuredTextEditor) |
Code Folding
(PROVISIONAL)
Code folding in the Structured Source Editors (HTML, XML, JSP, CSS, DTD) has been completely re-factored. The previous code folding implementation used the Node Adapter framework the new code folding uses the Reconciling Strategy framework, see 281380 for the reasons behind this change.
If an implementer wishes to write their own folding strategy for a structured source editor then they must create an extension such as:
<extension point="org.eclipse.wst.sse.ui.editorConfiguration"> <provisionalConfiguration type="foldingstrategy" class="org.eclipse.wst.xml.ui.internal.projection.XMLFoldingStrategy" target="org.eclipse.wst.html.core.htmlsource" /> </extension>
-
type
- must be "foldingstrategy" -
class
- must be a class that extendsorg.eclipse.wst.sse.ui.internal.projection.AbstractStructuredFoldingStrategy
- There are two abstract methods that the implementer must implement, and both are typically short, for examples see:
-
org.eclipse.wst.css.ui.internal.projection.CSSFoldingStrategy
-
org.eclipse.wst.dtd.ui.internal.projection.DTDFoldingStrategy
-
org.eclipse.wst.xml.ui.internal.projection.XMLFoldingStrategy
-
- There are two abstract methods that the implementer must implement, and both are typically short, for examples see:
-
target
- is a structured source editor content type ID- any given content type ID can only have one associated folding strategy, if more then one extension specifies the same content type ID then whichever extension gets loaded first is the one that is used.
Notes:
- As of right now the XML, HTML, and JSP editors all use the
XMLFoldingStrategy
as their folding strategy.
- Removed Resources
-
org.eclipse.jst.jsp.ui.internal.projection
(entire package)-
ProjectionAnnotationModelChanges
-
ProjectionModelNodeAdapterFactoryHTML
-
ProjectionModelNodeAdapterFactoryJSP
-
ProjectionModelNodeAdapterHTML
-
ProjectionModelNodeAdapterJSP
-
ProjectionViewerInformation
-
StructuredTextFoldingProviderJSP
-
-
org.eclipse.wst.css.ui.internal.projection
-
ProjectionAnnotationModelChanges
-
ProjectionModelNodeAdapterFactoryCSS
-
ProjectionModelNodeAdapterCSS
-
ProjectionViewerInformation
-
StructuredTextFoldingProviderCSS
-
-
org.eclipse.wst.dtd.ui.internal.projection
-
StructuredTextFoldingProviderDTD
-
-
org.eclipse.wst.html.ui.internal.projection
(entire package)-
ProjectionAnnotationModelChanges
-
ProjectionModelNodeAdapterFactoryHTML
-
ProjectionModelNodeAdapterHTML
-
ProjectionViewerInformation
-
StructuredTextFoldingProviderHTML
-
-
org.eclipse.wst.html.ui.internal.projection
-
ProjectionAnnotationModelChanges
-
ProjectionModelNodeAdapterFactoryXML
-
ProjectionModelNodeAdapterXML
-
ProjectionViewerInformation
-
StructuredTextFoldingProviderXML
-
-
org.eclipse.wst.see.ui.internal.projection
-
IStructuredTextFoldingProvider
-
-
- Added Resources
-
org.eclipse.wst.see.ui.internal.projection.AbstractStructuredFoldingStrategy
-
org.eclipse.wst.css.ui.internal.projection.CSSFoldingStrategy
-
org.eclipse.wst.dtd.ui.internal.projection.DTDFoldingStrategy
-
org.eclipse.wst.xml.ui.internal.projection.XMLFoldingStrategy
-
Comment Handlers
The comment handlers have been re-factored so that they do not always use HTML style comment blocks even when not trying to comment HTML 86520. The new comment handler framework is based on the old one only with more abstraction so that it is easier to create comment handlers for different content types. There are now separate comment handlers for XML, HTML, JSP and CSS files all extending from the newly created org.eclipse.wst.sse.ui.internal.handlers.AbstractStructuredCommentHandler
See 86520 for more details on the fix.
For examples of how to create a comment handler see:
-
org.eclipse.wst.xml.ui.internal.handlers.AbstractXMLCommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.AddXMLBlockCommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.RemoveXMLBlockCommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.ToggleXMLCommentHandler
Notes:
- Removed Resources
-
org.eclipse.wst.xml.ui.internal.handlers.CommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.AddBlockCommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.RemoveBlockCommentHandler
-
org.eclipse.wst.xml.ui.internal.handlers.ToggleCommentHandler
-
- Added Resources
-
org.eclipse.wst.see.ui.internal.handlers.AbstractStructuredCommentHandler
-
org.eclipse.wst.see.ui.internal.handlers.StaticStructuredCommentHandlers
-
org.eclipse.wst.see.ui.internal.handlers.StructuredCommentHandlerHelpers
- Instances of
AbstractStructuredCommentHandler
using static methods fromStaticStructuredCommentHandlers
for XML, HTML, JSP and CSS content types.
-
Character Pairing
The Structured Text Editor now supports character pairing. This allows for immediate insertion of a "paired" character following a user-input character. Additional functionality includes closing the pairing when the paired character is entered, completing the pair by pressing enter, or tabbing to the position after the inserted character.
Below is an example of a character pairing that will function on the files with a content type of org.eclipse.core.runtime.xml
but only for two specific partitions org.eclipse.wst.xml.XML_DEFAULT
and org.eclipse.wst.xml.XML_DECL
.
<extension point="org.eclipse.wst.sse.ui.characterPairing"> <inserter class="org.eclipse.wst.xml.ui.internal.text.CharacterPairInserter" id="org.eclipse.wst.xml.ui.inserter"> <contentTypeIdentifier id="org.eclipse.core.runtime.xml" partitions="org.eclipse.wst.xml.XML_DEFAULT,org.eclipse.wst.xml.XML_DECL"> </contentTypeIdentifier> </inserter> </extension>
The class provided by inserter
must extend org.eclipse.wst.sse.ui.typing.AbstractCharacterPairInserter
. This class is responsible for identifying which characters will trigger pairing, what character is paired with that trigger, and if the trigger should execute. See org.eclipse.wst.xml.ui.internal.text.CharacterPairInserter
for an implementation used in the XML editor.
Semantic Highlighting
The semantic highlighting framework has been extended. org.eclipse.wst.sse.ui.ISemanticHighlightingExtension
provides the user with a new method of determining if a region of the editor is consumable by the highlighting strategy based on the org.eclipse.wst.sse.core.internal.provisional.IndexedRegion
that contains the region.
Additionally, a semantic highlighting strategy can now have its style determined based on the value of a single preference key instead of several keys as before. To do this, the attribute styleStringKey
must be added to the semanticHighlighting extension point element. This key identifies a preference value in the format of RGB foreground (#rrggbb) | RGB background (#rrggbb) | bold (true/false) | italic (true/false) | strikethrough (true/false) | underline (true/false)
DOM Conformity
- 244415 Attribute nodes now return the correct namespace for the XML prefix.
- 272378 Element nodes no longer return null for getAttribute/getAttributeNS when the element does not have that attribute
Other changes
- 281914 Deprecated org.eclipse.wst.xml.ui.internal.tabletree.XMLEditorPluginHOLD_OLD class removed
- 289258 JSP Expression elements now translate so that the result of the expression is the direct argument to out.print().
- 293996 Main JavaScript preference page moved back to top-level
Changes in Feature Content or Structure
WST.WS Features moved to JST.WEB Feature
- Bug 295151: move webservices out of non-Java web developer features.
- The wst.ws* features used to be 'included' in the wst.web* features. They were moved to the jst.web* features.
Reference
This document ONLY covers changes between WTP 3.1 and WTP 3.2. See also: New Help for Old Friends IV (3.1), New Help for Old Friends III (3.0), New Help for Old Friends II (2.0), and the original New Help for Old Friends (1.5)