split-editor-plugin

The editor plugin is split into two plugins editor.core and editor(keep the name for comparison, will be named editor.ui)

The most significant changes are the extension-point: searcher, addtionalProposalInfoProvider

The IXMLSearcher is split into two:
   
    IXMLValidationSearcher(in core plugin), IXMLAssistSearcher(in ui plugin)

The original IXMLSearcher has four methods:	

	searchForValidation, searchForCompletion, searchForHyperlink, searchForTextHover

now they are divided as follows:

    IXMLValidationSearcher: searchForValidation
    IXMLAssistSearcher: searchForCompletion, searchForHyperlink, searchForTextHover

all the functions are the same as before.

Since the XMLReference and XMLReferenceTo are definded in the editor.core plugin now where IXMLAssistSearcher cannot be in, so the way to use extension-point has been changed,
Two extension point "...bindings" are added to bind the searchers and XMLReferenceTo or XMLReferenceToExpression 

The old way:
	
	<extension point="org.eclipse.wst.xml.search.editor.xmlReferences">
	    <references>
	        <reference>
	            <from  .../>
	            <to  searcherId="com.myCompany.aSearcherId">
	    </references>
	</extension>

	<extension point="org.eclipse.wst.xml.search.editor.searchers">
	    <searcher id="com.myCompany.aSearcherId"
	              class="com.myCompany.aSearcherClass"/>
	</extension>

The new way: 	

for validation searchers:

		<extension point="org.eclipse.wst.xml.search.editor.core.xmlReferences">
		    <references>
		        <reference>
		            <from  .../>
		            <to  id="com.myCompany.aXMLReferenceToId">
		        </reference>
		        <reference id="com.myCompany.aXMLReferenceToExpressionId">
		            <from  .../>
		            <to  .../>
		        </reference>
		    </references>
		</extension>

		<extension point="org.eclipse.wst.xml.search.editor.core.validaitonSearchers">
		    <searcher id="com.myCompany.aValidationSearcherId"
		              class="com.myCompany.aValidationSearcherClass"/>
            <searcher id="com.myCompany.anotherValidationSearcherId"
		              class="com.myCompany.anotherValidationSearcherClass"/>
		</extension>

		<extension point="org.eclipse.wst.xml.search.editor.core.validationSearcherBindings">
		    <binding referenceTo = "com.myCompany.aXMLReferenceToId"
		             validationSearcher = "com.myCompany.aValidationSearcherId"/>
		    <binding reference = "com.myCompany.aXMLReferenceToExpressionId"
		             validationSearcher = "com.myCompay.anotherValidationSearcherId"/>
		</extension>

for assist searchers:

		<extension point="org.eclipse.wst.xml.search.editor.core.xmlReferences">
		    <references>
		        <reference>
		            <from  .../>
		            <to  id="com.myCompany.aXMLReferenceToId">
		        </reference>
		        <reference id="com.myCompany.aXMLReferenceToExpressionId">
		            <from  .../>
		            <to  .../>
		        </reference>
		    </references>
		</extension>

		<extension point="org.eclipse.wst.xml.search.editor.assistSearchers">
		    <searcher id="com.myCompany.aAssistSearcherId"
		              class="com.myCompany.aAssistSearcherClass"/>
		    <searcher id="com.myCompany.anothterAssistSearcherId"
		              class="com.myCompany.anotherAssistSearcherClass"/>
		</extension>

		<extension point="org.eclipse.wst.xml.search.editor.assistSearcherBindings">
		    <binding referenceTo = "com.myCompany.aXMLReferenceToId"
		             assistSearcher = "com.myCompany.aAssistSearcherId"/>
		    <binding reference = "com.myCompany.aXMLReferenceToExpressionId"
		             assistSearcher = "com.myCompay.anotherAssistSearcherId"/>
		</extension>


In the java codes, the way to get Searcher also got changed,

The old way: 
		
	IXMLReferenceTo.getSearcher()

The new way:
for validation searchers:

	XMLValidationSearcherBindingsManager.getDefault().getSearcher(IXMLReferenceTo or IXMLReferenceToExpression)

for assist searchers:

        XMLAssistSearcherBindingsManager.getDefault().getSearcher(IXMLReferenceTo or IXMLReferenceToExpression)


There is an extension-point called content-assists, it may be a little confused with the assist-searchers, 
the ContentAssist is used to provide additional proposal info. Now the content-assists extension also used like the searchers:

	<extension point = "org.eclipse.wst.xml.search.editor.ui.contentAssists">
	    <additionalProposalInfoProvider id = "com.myCompany.anAdditionalProposalInfoProviderId"
	       class = "com.myCompany.anAdditionalProposalInfoProviderClass"/>
	</extension>

	<extension point = "org.eclipse.wst.xml.search.editor.ui.contentAssistBindings">
	    <binding  referenceTo = "com.myCompany.aReferenceToId"
	      additionalProposalInfoProvider = "com.myCompay.anAdditionalProposalInfoProviderId"/>
	</extension>

In java codes, use the following method to get the provider:

        ContentAssistBindingsManager.getDefault().getProvider(IXMLReferenceTo)