diff options
author | Michal Niewrzal | 2016-12-16 10:13:24 +0000 |
---|---|---|
committer | Michal Niewrzal | 2017-06-29 13:54:38 +0000 |
commit | a960a556bb97303083f87165350bdc44c55d701e (patch) | |
tree | 6d554619adc4d97945f2910be0c13350e477946a /org.eclipse.ui.genericeditor.examples | |
parent | 2da5c4c44f32c6db2c1b5c27c49a93846ee7eefb (diff) | |
download | eclipse.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')
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(); + } + } + +} |