Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Niewrzal2016-12-16 10:13:24 +0000
committerMichal Niewrzal2017-06-29 13:54:38 +0000
commita960a556bb97303083f87165350bdc44c55d701e (patch)
tree6d554619adc4d97945f2910be0c13350e477946a /org.eclipse.ui.genericeditor.examples
parent2da5c4c44f32c6db2c1b5c27c49a93846ee7eefb (diff)
downloadeclipse.platform.text-a960a556bb97303083f87165350bdc44c55d701e.tar.gz
eclipse.platform.text-a960a556bb97303083f87165350bdc44c55d701e.tar.xz
eclipse.platform.text-a960a556bb97303083f87165350bdc44c55d701e.zip
Bug 508677 - [Generic Editor] Extension point for auto edit strategies
Change-Id: I275a82c443e6a9e612ea8e3297b2c78f6cae8ac0 Signed-off-by: Michal Niewrzal <michal.n@zend.com>
Diffstat (limited to 'org.eclipse.ui.genericeditor.examples')
-rw-r--r--org.eclipse.ui.genericeditor.examples/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.ui.genericeditor.examples/plugin.xml8
-rw-r--r--org.eclipse.ui.genericeditor.examples/pom.xml2
-rw-r--r--org.eclipse.ui.genericeditor.examples/src/org/eclipse/ui/genericeditor/examples/dotproject/TagAutoEditStrategy.java39
4 files changed, 48 insertions, 3 deletions
diff --git a/org.eclipse.ui.genericeditor.examples/META-INF/MANIFEST.MF b/org.eclipse.ui.genericeditor.examples/META-INF/MANIFEST.MF
index a7dd0efc587..0f084dc6f9d 100644
--- a/org.eclipse.ui.genericeditor.examples/META-INF/MANIFEST.MF
+++ b/org.eclipse.ui.genericeditor.examples/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Examples for Generic Editor
Bundle-SymbolicName: org.eclipse.ui.genericeditor.examples;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.1.0.qualifier
Bundle-Vendor: Eclipse.org
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.eclipse.ui.genericeditor;bundle-version="1.0.0",
diff --git a/org.eclipse.ui.genericeditor.examples/plugin.xml b/org.eclipse.ui.genericeditor.examples/plugin.xml
index d4552620e7e..60f20e05bd5 100644
--- a/org.eclipse.ui.genericeditor.examples/plugin.xml
+++ b/org.eclipse.ui.genericeditor.examples/plugin.xml
@@ -57,5 +57,11 @@
contentTypeId="org.eclipse.ui.genericeditor.examples.dotproject">
</participant>
</extension>
-
+ <extension
+ point="org.eclipse.ui.genericeditor.autoEditStrategies">
+ <autoEditStrategy
+ class="org.eclipse.ui.genericeditor.examples.dotproject.TagAutoEditStrategy"
+ contentType="org.eclipse.ui.genericeditor.examples.dotproject">
+ </autoEditStrategy>
+ </extension>
</plugin>
diff --git a/org.eclipse.ui.genericeditor.examples/pom.xml b/org.eclipse.ui.genericeditor.examples/pom.xml
index 788a2a2f1e3..4097fb89fa7 100644
--- a/org.eclipse.ui.genericeditor.examples/pom.xml
+++ b/org.eclipse.ui.genericeditor.examples/pom.xml
@@ -18,6 +18,6 @@
</parent>
<groupId>org.eclipse.ui</groupId>
<artifactId>org.eclipse.ui.genericeditor.examples</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.1.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
</project>
diff --git a/org.eclipse.ui.genericeditor.examples/src/org/eclipse/ui/genericeditor/examples/dotproject/TagAutoEditStrategy.java b/org.eclipse.ui.genericeditor.examples/src/org/eclipse/ui/genericeditor/examples/dotproject/TagAutoEditStrategy.java
new file mode 100644
index 00000000000..c997bae69d6
--- /dev/null
+++ b/org.eclipse.ui.genericeditor.examples/src/org/eclipse/ui/genericeditor/examples/dotproject/TagAutoEditStrategy.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2017 Rogue Wave Software Inc. and others.
+ * 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:
+ * Michał Niewrzał (Rogue Wave Software Inc.) - initial implementation
+ *******************************************************************************/
+package org.eclipse.ui.genericeditor.examples.dotproject;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.DocumentCommand;
+import org.eclipse.jface.text.IAutoEditStrategy;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+
+public class TagAutoEditStrategy implements IAutoEditStrategy {
+
+ @Override
+ public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
+ if (!">".equals(command.text)) { //$NON-NLS-1$
+ return;
+ }
+ try {
+ IRegion region = document.getLineInformationOfOffset(command.offset);
+ String line = document.get(region.getOffset(), command.offset - region.getOffset());
+ int index = line.lastIndexOf('<');
+ if (index != -1 && (index != line.length() - 1) && line.charAt(index + 1) != '/') {
+ String tag = line.substring(index + 1);
+ command.text += "</" + tag + command.text; //$NON-NLS-1$
+ }
+ } catch (BadLocationException e) {
+ e.printStackTrace();
+ }
+ }
+
+}

Back to the top