compare viewer
diff --git a/plugins/org.eclipse.dltk.ruby.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.dltk.ruby.ui/META-INF/MANIFEST.MF
index dd3ce8c..4ae7a45 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.dltk.ruby.ui/META-INF/MANIFEST.MF
@@ -11,6 +11,7 @@
org.eclipse.ui.editors,
org.eclipse.jface.text,
org.eclipse.search,
+ org.eclipse.compare,
org.eclipse.ui.ide,
org.eclipse.ui.console,
org.eclipse.ui.workbench.texteditor,
diff --git a/plugins/org.eclipse.dltk.ruby.ui/plugin.properties b/plugins/org.eclipse.dltk.ruby.ui/plugin.properties
index 219cfb7..9820a8b 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/plugin.properties
+++ b/plugins/org.eclipse.dltk.ruby.ui/plugin.properties
@@ -92,4 +92,8 @@
RubyBrowsingPerspective.name = Ruby Browsing
RubyProjects.name = Ruby Projects
RubyExtendedClasses.name = Ruby Classes/Modules
-RubyMembers.name = Ruby Members
\ No newline at end of file
+RubyMembers.name = Ruby Members
+
+# Compare
+RubyCompareFontDefiniton.label=Ruby compare text font
+RubyCompareFontDefiniton.description=The Ruby compare text font is used by Ruby compare/merge tools.
diff --git a/plugins/org.eclipse.dltk.ruby.ui/plugin.xml b/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
index d6214b4..ddf6c40 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
+++ b/plugins/org.eclipse.dltk.ruby.ui/plugin.xml
@@ -391,6 +391,7 @@
<part id="org.eclipse.dltk.ruby.ui.editor.RubyEditor"/>
</actionSetPartAssociation>
</extension>
+<!--Action Sets -->
<extension
point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectors">
@@ -409,5 +410,32 @@
</target>
</extension>
-<!--Action Sets -->
+<!-- =========================================================================== -->
+<!-- Ruby Compare -->
+<!-- =========================================================================== -->
+ <extension
+ point="org.eclipse.ui.themes">
+ <fontDefinition
+ label="%RubyCompareFontDefiniton.label"
+ defaultsTo="org.eclipse.jface.textfont"
+ categoryId="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
+ id="org.eclipse.dltk.ruby.internal.ui.compare.RubyMergeViewer">
+ <description>
+ %RubyCompareFontDefiniton.description
+ </description>
+ </fontDefinition>
+ </extension>
+
+ <extension point="org.eclipse.compare.contentMergeViewers">
+ <viewer
+ extensions="rb"
+ class="org.eclipse.dltk.ruby.internal.ui.compare.RubyMergeViewerCreator"
+ id="org.eclipse.dltk.ruby.internal.ui.compare.RubyMergeViewer">
+ </viewer>
+ <contentTypeBinding
+ contentTypeId="org.eclipse.dltk.rubyContentType"
+ contentMergeViewerId="org.eclipse.dltk.ruby.internal.ui.compare.RubyMergeViewer">
+ </contentTypeBinding>
+ </extension>
+
</plugin>
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/Messages.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/Messages.java
index 07b4229..93c713f 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/Messages.java
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/Messages.java
@@ -6,6 +6,7 @@
private static final String BUNDLE_NAME = "org.eclipse.dltk.ruby.internal.ui.messages"; //$NON-NLS-1$
public static String InitializeAfterLoadJob_initializingDltkRuby;
public static String InitializeAfterLoadJob_startingDltkRubyInitialization;
+ public static String CompareTitle;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewer.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewer.java
new file mode 100644
index 0000000..1b21d0c
--- /dev/null
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewer.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+package org.eclipse.dltk.ruby.internal.ui.compare;
+
+import org.eclipse.compare.CompareConfiguration;
+import org.eclipse.dltk.ruby.internal.ui.Messages;
+import org.eclipse.dltk.ruby.internal.ui.RubyUI;
+import org.eclipse.dltk.ui.compare.ScriptMergeViewer;
+import org.eclipse.dltk.ui.text.ScriptTextTools;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.widgets.Composite;
+
+public class RubyMergeViewer extends ScriptMergeViewer {
+
+ public RubyMergeViewer(Composite parent, CompareConfiguration configuration) {
+ super(parent, configuration);
+ }
+
+ protected ScriptTextTools getTextTools() {
+ return RubyUI.getDefault().getTextTools();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.dltk.ruby.internal.ui.compare.ScriptMergeViewer#
+ * getPreferenceStore()
+ */
+ protected IPreferenceStore getPreferenceStore() {
+ return RubyUI.getDefault().getPreferenceStore();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.dltk.ui.compare.ScriptMergeViewer#getTitle()
+ */
+ public String getTitle() {
+ return Messages.CompareTitle;
+ }
+
+}
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewerCreator.java b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewerCreator.java
new file mode 100644
index 0000000..f362de4
--- /dev/null
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/compare/RubyMergeViewerCreator.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2008 xored software, Inc.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+package org.eclipse.dltk.ruby.internal.ui.compare;
+
+import org.eclipse.compare.CompareConfiguration;
+import org.eclipse.compare.IViewerCreator;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.widgets.Composite;
+
+public class RubyMergeViewerCreator implements IViewerCreator {
+
+ public Viewer createViewer(Composite parent, CompareConfiguration cfg) {
+ return new RubyMergeViewer(parent, cfg);
+ }
+
+}
diff --git a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/messages.properties b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/messages.properties
index 30630aa..04370b1 100644
--- a/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/messages.properties
+++ b/plugins/org.eclipse.dltk.ruby.ui/src/org/eclipse/dltk/ruby/internal/ui/messages.properties
@@ -1,2 +1,3 @@
InitializeAfterLoadJob_startingDltkRubyInitialization=Starting DLTK Ruby initialization
InitializeAfterLoadJob_initializingDltkRuby=Initializing DLTK Ruby
+CompareTitle=Ruby Compare