Skip to content

Commit

Permalink
Applied patch provided by user 'msanjose'.
Browse files Browse the repository at this point in the history
The patch adds an extension point for overriding the SourceViewerConfiguration.
  • Loading branch information
oyse committed Jun 11, 2011
1 parent 308ea95 commit 089ad06
Show file tree
Hide file tree
Showing 6 changed files with 134 additions and 7 deletions.
2 changes: 1 addition & 1 deletion org.dadacoalition.yedit/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: YEdit YAML editor
Bundle-SymbolicName: org.dadacoalition.yedit;singleton:=true
Bundle-Version: 0.0.10
Bundle-Version: 0.0.11
Bundle-Activator: org.dadacoalition.yedit.Activator
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
Expand Down
3 changes: 2 additions & 1 deletion org.dadacoalition.yedit/build.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
plugin.xml,\
icons/
icons/,\
schema/
bin.excludes = icons/document.png,\
icons/file.gif,\
icons/format-list-ordered.png,\
Expand Down
1 change: 1 addition & 0 deletions org.dadacoalition.yedit/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension-point id="sourceViewerConfigurationContribution" name="SourceViewerConfiguration Contribution" schema="schema/sourceViewerConfigurationContribution.exsd"/>
<extension
point="org.eclipse.ui.editors">
<editor
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.dadacoalition.yedit" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.dadacoalition.yedit" id="sourceViewerConfigurationContribution" name="SourceViewerConfiguration Contribution"/>
</appInfo>
<documentation>
Allows interested parties to inject a custom SourceViewerConfiguration into yEdit.
</documentation>
</annotation>

<element name="extension">
<annotation>
<appInfo>
<meta.element />
</appInfo>
</annotation>
<complexType>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>

</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>

</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>

</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>

<element name="sourceViewerConfiguration">
<complexType>
<attribute name="class" type="string" use="required">
<annotation>
<documentation>
Fully qualified name of a SourceViewerConfiguration class that will override yEdit&apos;s default implementation.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn="org.dadacoalition.yedit.editor.YEditSourceViewerConfiguration:"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>

<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
0.0.11
</documentation>
</annotation>

<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
&lt;pre&gt;
&lt;extension point=&quot;org.dadacoalition.yedit.sourceViewerConfigurationContribution&quot;&gt;
&lt;sourceViewerConfiguration class=&quot;com.foo.editor.FooEditorSourceViewerConfiguration&quot;&gt;
&lt;/extension&gt;
&lt;/pre&gt;
</documentation>
</annotation>

<annotation>
<appInfo>
<meta.section type="apiinfo"/>
</appInfo>
<documentation>
The contributed class must extend &lt;code&gt;org.dadacoalition.yedit.editor.YEditSourceViewerConfiguration&lt;/code&gt;
</documentation>
</annotation>



</schema>
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.source.ISourceViewer;
Expand All @@ -28,6 +32,9 @@ public class YEdit extends TextEditor {
private IdleTimer idleTimer;
YEditSourceViewerConfiguration sourceViewerConfig;
private YAMLContentOutlinePage contentOutline;

public static final String SOURCE_VIEWER_CONFIGURATION_CONTRIB_ID =
Activator.PLUGIN_ID + ".sourceViewerConfigurationContribution";

public YEdit() {
super();
Expand Down Expand Up @@ -62,12 +69,35 @@ protected void addDocumentIdleListener(IDocumentIdleListener listener) {

protected void initializeEditor() {
super.initializeEditor();

YEditSourceViewerConfiguration jsvc = null;

/*
* Check for custom YEditSourceViewerConfiguration contributed via
* extension point
*/
boolean contribFound = false;

IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint point = registry.getExtensionPoint(SOURCE_VIEWER_CONFIGURATION_CONTRIB_ID);
IConfigurationElement[] elts = point.getConfigurationElements();
for(IConfigurationElement elt : elts) {
if("sourceViewerConfiguration".equals(elt.getName())) {
try {
jsvc = (YEditSourceViewerConfiguration) elt.createExecutableExtension("class");
contribFound = true;
break;
} catch (CoreException e) {}
}
}

YEditSourceViewerConfiguration jsvc = new YEditSourceViewerConfiguration();
// otherwise default to the base YEditSourceViewerConfiguration
if( !contribFound ) {
jsvc = new YEditSourceViewerConfiguration();
}

setSourceViewerConfiguration(jsvc);
sourceViewerConfig = jsvc;


}

public void createPartControl(Composite parent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@

public class YEditSourceViewerConfiguration extends SourceViewerConfiguration {

private YAMLScanner yamlScanner;
private ColorManager colorManager;
protected YAMLScanner yamlScanner;
protected ColorManager colorManager;

public YEditSourceViewerConfiguration(){
colorManager = new ColorManager();
Expand Down

0 comments on commit 089ad06

Please sign in to comment.