OSDN Git Service

change whitespace chars
authorquiver2k <quiver2k@users.sourceforge.jp>
Sun, 15 Mar 2015 15:58:52 +0000 (00:58 +0900)
committerquiver2k <quiver2k@users.sourceforge.jp>
Sun, 15 Mar 2015 15:58:52 +0000 (00:58 +0900)
45 files changed:
jp.sourceforge.moreemacs.exp/build.properties
jp.sourceforge.moreemacs.exp/fragment.xml
jp.sourceforge.moreemacs.exp/src/jp/sourceforge/moreemacs/exp/NextErrorHandler.java
jp.sourceforge.moreemacs.feature/build.properties
jp.sourceforge.moreemacs.feature/feature.xml
jp.sourceforge.moreemacs.test/build.properties
jp.sourceforge.moreemacs.test/src/jp/sourceforge/moreemacs/utils/CharacterUtilsTest.java
jp.sourceforge.moreemacs.updatesite/site.xml
jp.sourceforge.moreemacs.web/.settings/org.eclipse.wst.common.project.facet.core.xml
jp.sourceforge.moreemacs.web/WebContent/index.html
jp.sourceforge.moreemacs.web/WebContent/style.css
jp.sourceforge.moreemacs/LICENCE.txt
jp.sourceforge.moreemacs/about.ini
jp.sourceforge.moreemacs/build.properties
jp.sourceforge.moreemacs/plugin.xml
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/MoreEmacs.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/BackwardKillWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/BackwardWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/CapitalizeWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/CommandHandler.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/CommentRegionExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/ConvertWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/Cursor.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/DeleteHorizontalSpaceExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/DowncaseWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/Execution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/ForwardWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/KillLineExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/KillRectangleExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/KillWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/MoveBeginningOfLineExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/MoveEndOfLineExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/NewLineExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/OpenLineExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/RectangleStorage.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/TextEditorExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/TransposeCharsExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/TransposeWordsExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/UpcaseWordExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/handlers/YankRectangleExecution.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/utils/CharacterUtils.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/utils/CodePointIterator.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/utils/ColumnUtils.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/utils/DocumentCharSequence.java
jp.sourceforge.moreemacs/src/jp/sourceforge/moreemacs/utils/DocumentTransaction.java

index 3f78ea4..e3023e1 100644 (file)
@@ -1,5 +1,5 @@
-source.. = src/\r
-output.. = bin/\r
-bin.includes = META-INF/,\\r
-               .,\\r
-               fragment.xml\r
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               fragment.xml
index 939fb06..5c82a3c 100644 (file)
@@ -1,31 +1,31 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?eclipse version="3.4"?>\r
-<fragment>\r
-   <extension\r
-         point="org.eclipse.ui.commands">\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.NextError"\r
-            name="next-error">\r
-      </command>\r
-   </extension>\r
-   <extension\r
-         point="org.eclipse.ui.handlers">\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.NextError">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.exp.NextErrorHandler">\r
-         </class>\r
-      </handler>\r
-   </extension>\r
-   <extension\r
-         point="org.eclipse.ui.bindings">\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.NextError"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+G M3+N">\r
-      </key>\r
-   </extension>\r
-\r
-</fragment>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<fragment>
+   <extension
+         point="org.eclipse.ui.commands">
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.NextError"
+            name="next-error">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            commandId="jp.sourceforge.moreemacs.NextError">
+         <class
+               class="jp.sourceforge.moreemacs.exp.NextErrorHandler">
+         </class>
+      </handler>
+   </extension>
+   <extension
+         point="org.eclipse.ui.bindings">
+      <key
+            commandId="jp.sourceforge.moreemacs.NextError"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+G M3+N">
+      </key>
+   </extension>
+
+</fragment>
index 922358c..14e6ec1 100644 (file)
-package jp.sourceforge.moreemacs.exp;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.eclipse.core.commands.AbstractHandler;\r
-import org.eclipse.core.commands.ExecutionEvent;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.NotEnabledException;\r
-import org.eclipse.core.commands.NotHandledException;\r
-import org.eclipse.core.commands.common.NotDefinedException;\r
-import org.eclipse.core.resources.IMarker;\r
-import org.eclipse.core.resources.IResource;\r
-import org.eclipse.core.runtime.CoreException;\r
-import org.eclipse.jface.util.OpenStrategy;\r
-import org.eclipse.ui.IViewPart;\r
-import org.eclipse.ui.IWorkbenchPage;\r
-import org.eclipse.ui.IWorkbenchSite;\r
-import org.eclipse.ui.PartInitException;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-import org.eclipse.ui.handlers.IHandlerService;\r
-import org.eclipse.ui.ide.IDE;\r
-import org.eclipse.ui.views.markers.MarkerSupportView;\r
-\r
-public class NextErrorHandler extends AbstractHandler {\r
-\r
-    @Override\r
-    public Object execute(ExecutionEvent event) throws ExecutionException {\r
-        IWorkbenchSite site = HandlerUtil.getActiveSite(event);\r
-        IWorkbenchPage page = site.getPage();\r
-\r
-        MarkerSupportView problemView = (MarkerSupportView) page.findView("org.eclipse.ui.views.ProblemView");\r
-        if(problemView == null) {\r
-            return null;\r
-        }\r
-        @SuppressWarnings("restriction")\r
-        IMarker[] currentMarkers = problemView.getSelectedMarkers();\r
-        IMarker startPoint = (currentMarkers.length != 0)?currentMarkers[currentMarkers.length-1]:null;\r
-\r
-        selectAll(problemView);\r
-        \r
-        @SuppressWarnings("restriction")\r
-        IMarker[] allMarkers = problemView.getSelectedMarkers();\r
-        goNextError(allMarkers, startPoint, page);\r
-\r
-        return null;\r
-    }\r
-    \r
-    void selectAll(IViewPart view) throws ExecutionException {\r
-        view.getSite().getPage().activate(view);\r
-        IHandlerService handlerService = (IHandlerService)view.getSite().getService(IHandlerService.class);\r
-        try {\r
-            handlerService.executeCommand("org.eclipse.ui.edit.selectAll", null);\r
-        } catch (NotDefinedException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        } catch (NotEnabledException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        } catch (NotHandledException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        }\r
-    }\r
-\r
-    void goNextError(IMarker[] allMarkers, IMarker startPoint, IWorkbenchPage page) throws ExecutionException {\r
-        boolean found = false;\r
-        List<IMarker> skipped = new ArrayList<IMarker>();\r
-        for(IMarker marker: allMarkers) {\r
-            if(!marker.exists()) {\r
-                continue;\r
-            }\r
-            if(startPoint != null && startPoint.exists()) {\r
-                if(startPoint.equals(marker)) {\r
-                    found = true;\r
-                    continue;\r
-                }\r
-                \r
-                if(hasSameLineNumber(startPoint, marker)) {\r
-                    continue;\r
-                }\r
-                \r
-                if(!found) {\r
-                    skipped.add(marker);\r
-                    continue;\r
-                }\r
-            }\r
-            \r
-            if(marker.getResource().getType() != IResource.FILE) {\r
-                continue;\r
-            }\r
-\r
-            try {\r
-                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());\r
-            } catch (PartInitException e) {\r
-                throw new ExecutionException(e.getMessage(), e);\r
-            }\r
-            return;\r
-        }\r
-        if(startPoint != null && startPoint.exists()) {\r
-            skipped.add(startPoint);\r
-        }\r
-        \r
-        for(IMarker marker: skipped) {\r
-            if(marker.getResource().getType() != IResource.FILE) {\r
-                continue;\r
-            }\r
-\r
-            try {\r
-                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());\r
-            } catch (PartInitException e) {\r
-                throw new ExecutionException(e.getMessage(), e);\r
-            }\r
-            return;\r
-        }\r
-        \r
-    }\r
-\r
-    boolean hasSameLineNumber(IMarker marker1, IMarker marker2) throws ExecutionException {\r
-        if(!marker1.getResource().equals(marker2.getResource())) {\r
-            return false;\r
-        }\r
-        try {\r
-            Integer line1 = (Integer)marker1.getAttribute(IMarker.LINE_NUMBER);\r
-            Integer line2 = (Integer)marker2.getAttribute(IMarker.LINE_NUMBER);\r
-            if(line1 == null) {\r
-                return (line2 == null);\r
-            }\r
-            return line1.equals(line2);\r
-        } catch (CoreException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        }\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.exp;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.util.OpenStrategy;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.views.markers.MarkerSupportView;
+
+public class NextErrorHandler extends AbstractHandler {
+
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        IWorkbenchSite site = HandlerUtil.getActiveSite(event);
+        IWorkbenchPage page = site.getPage();
+
+        MarkerSupportView problemView = (MarkerSupportView) page.findView("org.eclipse.ui.views.ProblemView");
+        if(problemView == null) {
+            return null;
+        }
+        @SuppressWarnings("restriction")
+        IMarker[] currentMarkers = problemView.getSelectedMarkers();
+        IMarker startPoint = (currentMarkers.length != 0)?currentMarkers[currentMarkers.length-1]:null;
+
+        selectAll(problemView);
+        
+        @SuppressWarnings("restriction")
+        IMarker[] allMarkers = problemView.getSelectedMarkers();
+        goNextError(allMarkers, startPoint, page);
+
+        return null;
+    }
+    
+    void selectAll(IViewPart view) throws ExecutionException {
+        view.getSite().getPage().activate(view);
+        IHandlerService handlerService = (IHandlerService)view.getSite().getService(IHandlerService.class);
+        try {
+            handlerService.executeCommand("org.eclipse.ui.edit.selectAll", null);
+        } catch (NotDefinedException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        } catch (NotEnabledException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        } catch (NotHandledException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        }
+    }
+
+    void goNextError(IMarker[] allMarkers, IMarker startPoint, IWorkbenchPage page) throws ExecutionException {
+        boolean found = false;
+        List<IMarker> skipped = new ArrayList<IMarker>();
+        for(IMarker marker: allMarkers) {
+            if(!marker.exists()) {
+                continue;
+            }
+            if(startPoint != null && startPoint.exists()) {
+                if(startPoint.equals(marker)) {
+                    found = true;
+                    continue;
+                }
+                
+                if(hasSameLineNumber(startPoint, marker)) {
+                    continue;
+                }
+                
+                if(!found) {
+                    skipped.add(marker);
+                    continue;
+                }
+            }
+            
+            if(marker.getResource().getType() != IResource.FILE) {
+                continue;
+            }
+
+            try {
+                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());
+            } catch (PartInitException e) {
+                throw new ExecutionException(e.getMessage(), e);
+            }
+            return;
+        }
+        if(startPoint != null && startPoint.exists()) {
+            skipped.add(startPoint);
+        }
+        
+        for(IMarker marker: skipped) {
+            if(marker.getResource().getType() != IResource.FILE) {
+                continue;
+            }
+
+            try {
+                IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());
+            } catch (PartInitException e) {
+                throw new ExecutionException(e.getMessage(), e);
+            }
+            return;
+        }
+        
+    }
+
+    boolean hasSameLineNumber(IMarker marker1, IMarker marker2) throws ExecutionException {
+        if(!marker1.getResource().equals(marker2.getResource())) {
+            return false;
+        }
+        try {
+            Integer line1 = (Integer)marker1.getAttribute(IMarker.LINE_NUMBER);
+            Integer line2 = (Integer)marker2.getAttribute(IMarker.LINE_NUMBER);
+            if(line1 == null) {
+                return (line2 == null);
+            }
+            return line1.equals(line2);
+        } catch (CoreException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        }
+    }
+}
index 06dbf44..0b53b19 100644 (file)
@@ -1,21 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<feature\r
-      id="jp.sourceforge.moreemacs.feature"\r
-      label="More Emacs"\r
-      version="2.0.0.qualifier"\r
-      provider-name="quiver2k"\r
-      plugin="jp.sourceforge.moreemacs">\r
-\r
-   <description url="http://moreemacs.sourceforge.jp/">\r
-      More Emacs Plugin\r
-   </description>\r
-\r
-   <copyright>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="jp.sourceforge.moreemacs.feature"
+      label="More Emacs"
+      version="2.0.0.qualifier"
+      provider-name="quiver2k"
+      plugin="jp.sourceforge.moreemacs">
+
+   <description url="http://moreemacs.sourceforge.jp/">
+      More Emacs Plugin
+   </description>
+
+   <copyright>
       Copyright (c) 2009, quiver2k
-All rights reserved.\r
-   </copyright>\r
-\r
-   <license>\r
+All rights reserved.
+   </copyright>
+
+   <license>
       Copyright (c) 2009, quiver2k
 All rights reserved.
 
@@ -41,26 +41,26 @@ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.\r
-   </license>\r
-\r
-   <url>\r
-      <update label="More Emacs" url="http://moreemacs.sourceforge.jp/update-site"/>\r
-   </url>\r
-\r
-   <requires>\r
-      <import plugin="org.eclipse.ui"/>\r
-      <import plugin="org.eclipse.core.runtime"/>\r
-      <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>\r
-      <import plugin="com.ibm.icu" version="3.8.1" match="greaterOrEqual"/>\r
-      <import plugin="org.eclipse.jface.text" version="3.4.2" match="greaterOrEqual"/>\r
-   </requires>\r
-\r
-   <plugin\r
-         id="jp.sourceforge.moreemacs"\r
-         download-size="0"\r
-         install-size="0"\r
-         version="0.0.0"\r
-         unpack="false"/>\r
-\r
-</feature>\r
+POSSIBILITY OF SUCH DAMAGE.
+   </license>
+
+   <url>
+      <update label="More Emacs" url="http://moreemacs.sourceforge.jp/update-site"/>
+   </url>
+
+   <requires>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.ui.editors" version="3.4.0" match="greaterOrEqual"/>
+      <import plugin="com.ibm.icu" version="3.8.1" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.jface.text" version="3.4.2" match="greaterOrEqual"/>
+   </requires>
+
+   <plugin
+         id="jp.sourceforge.moreemacs"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+</feature>
index 41eb6ad..34d2e4d 100644 (file)
@@ -1,4 +1,4 @@
-source.. = src/\r
-output.. = bin/\r
-bin.includes = META-INF/,\\r
-               .\r
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
index 7119f6a..2e9eba1 100644 (file)
@@ -1,29 +1,29 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import java.util.Locale;\r
-import static org.junit.Assert.*;\r
-import org.junit.Test;\r
-\r
-public class CharacterUtilsTest {\r
-    @Test\r
-    public void testGetWidth() {\r
-        String ambiguousChars = "α■";\r
-\r
-        for(int codePoint : CodePointIterator.each(ambiguousChars)) {\r
-            assertEquals(2, CharacterUtils.getWidth(codePoint, Locale.JAPANESE));\r
-        }\r
-        Locale defaultLocale = Locale.getDefault();\r
-        try {\r
-            Locale.setDefault(Locale.JAPANESE);\r
-            for(int codePoint : CodePointIterator.each(ambiguousChars)) {\r
-                assertEquals(2, CharacterUtils.getWidth(codePoint));\r
-            }\r
-            Locale.setDefault(Locale.ENGLISH);\r
-            for(int codePoint : CodePointIterator.each(ambiguousChars)) {\r
-                assertEquals(1, CharacterUtils.getWidth(codePoint));\r
-            }\r
-        } finally {\r
-            Locale.setDefault(defaultLocale);\r
-        }\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import java.util.Locale;
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class CharacterUtilsTest {
+    @Test
+    public void testGetWidth() {
+        String ambiguousChars = "α■";
+
+        for(int codePoint : CodePointIterator.each(ambiguousChars)) {
+            assertEquals(2, CharacterUtils.getWidth(codePoint, Locale.JAPANESE));
+        }
+        Locale defaultLocale = Locale.getDefault();
+        try {
+            Locale.setDefault(Locale.JAPANESE);
+            for(int codePoint : CodePointIterator.each(ambiguousChars)) {
+                assertEquals(2, CharacterUtils.getWidth(codePoint));
+            }
+            Locale.setDefault(Locale.ENGLISH);
+            for(int codePoint : CodePointIterator.each(ambiguousChars)) {
+                assertEquals(1, CharacterUtils.getWidth(codePoint));
+            }
+        } finally {
+            Locale.setDefault(defaultLocale);
+        }
+    }
+}
index 30f9cd3..abbb7e8 100644 (file)
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<site>\r
-   <description name="More Emacs" url="http://moreemacs.sourceforge.jp/update-site">\r
-      More Emacs update site\r
-   </description>\r
-   <feature url="features/jp.sourceforge.moreemacs.feature_2.0.0.qualifier.jar" id="jp.sourceforge.moreemacs.feature" version="2.0.0.qualifier">\r
-      <category name="moreemacs"/>\r
-   </feature>\r
-   <category-def name="moreemacs" label="More Emacs">\r
-      <description>\r
-         provides more emacs like key bindings.\r
-      </description>\r
-   </category-def>\r
-</site>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+   <description name="More Emacs" url="http://moreemacs.sourceforge.jp/update-site">
+      More Emacs update site
+   </description>
+   <feature url="features/jp.sourceforge.moreemacs.feature_2.0.0.qualifier.jar" id="jp.sourceforge.moreemacs.feature" version="2.0.0.qualifier">
+      <category name="moreemacs"/>
+   </feature>
+   <category-def name="moreemacs" label="More Emacs">
+      <description>
+         provides more emacs like key bindings.
+      </description>
+   </category-def>
+</site>
index a870256..f7f77fa 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<faceted-project>\r
-  <fixed facet="wst.web"/>\r
-  <installed facet="wst.web" version="1.0"/>\r
-</faceted-project>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+  <fixed facet="wst.web"/>
+  <installed facet="wst.web" version="1.0"/>
+</faceted-project>
index 5123ee1..605413a 100644 (file)
-<!DOCTYPE html>\r
-<html>\r
-<head>\r
-<link rel='stylesheet' type='text/css' href='style.css'/>\r
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>\r
-<title>More Emacs Plugin</title>\r
-</head>\r
-<body>\r
-<h1>More Emacs Plugin</h1>\r
-<p>More Emacs Plugin is an eclipse plugin for emacs users.</p>\r
-<p>Eclipse provides the emacs like key bindings. But emacs users require\r
-more emacs like key bindings. More emacs plugin provides more emacs like key bindings.\r
-The key bind scheme of more emacs is a child schema of Eclispe's emacs scheme.\r
-It adds some key bindings or overrides some bindings to emacs scheme.\r
-</p>\r
-\r
-<p>\r
-Drag 'Install' button to your eclipse workspace.\r
-<a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=975" class="drag" title="Drag to your running Eclipse workspace to install More Emacs"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install More Emacs" /></a>\r
-</p>\r
-\r
-<h2>Install</h2>\r
-<p>You can install the plugin from\r
- <a href="http://moreemacs.sourceforge.jp/update-site">http://moreemacs.sourceforge.jp/update-site</a>.</p>\r
-<p>Open the preferences dialog and General/Keys. Choose "More Emacs" from "Scheme" pull down.</p>\r
-<div class="chart"><img src="settings.png" alt="settings" /></div>\r
-\r
-\r
-\r
-<h2>Key Bindings</h2>\r
-<p>\r
-The following list is key bindings of more emacs plugin.\r
-</p>\r
-\r
-<table id="functions" class="flatTable">\r
-<caption>Key bindings of More Emacs</caption>\r
-<tr>\r
-<th class="function">function</th>\r
-<th>binding</th>\r
-<th>description</th>\r
-</tr>\r
-<tr>\r
-<td class="function">undo</td>\r
-<td>C-/</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">delete previous</td>\r
-<td>C-h</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">next editor</td>\r
-<td>C-x o<br>Shift-Tab</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">previous editor</td>\r
-<td>C-Shift-Tab</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">file close</td>\r
-<td>C-x 0</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">maximize part</td>\r
-<td>C-x 1</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">new editor</td>\r
-<td>C-x 2</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">find replace</td>\r
-<td>M-S-5</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">newline-and-indent</td>\r
-<td>C-j</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">back-to-indentation</td>\r
-<td>M-m</td>\r
-<td>rebind</td>\r
-</tr>\r
-<tr>\r
-<td class="function">move-beginning-of-line</td>\r
-<td>C-a</td>\r
-<td>moves the cursor to 0th column, not to the first non-space char of the line.</td>\r
-</tr>\r
-<tr>\r
-<td class="function">move-end-of-line</td>\r
-<td>C-e</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">forward-word</td>\r
-<td>M-f</td>\r
-<td>moves the cursor to the end of word, not to the first char of the next word.\r
-Only Character.isLetterOrDigit() is used to word-break.\r
-It is very simple but predictable.\r
-</td>\r
-</tr>\r
-<tr>\r
-<td class="function">backward-word</td>\r
-<td>M-b</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">kill-word</td>\r
-<td>M-d</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">backward-kill-word</td>\r
-<td>M-BS</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">delete-horizontal-space</td>\r
-<td>M-\</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">kill-line</td>\r
-<td>C-k</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">transpose-chars</td>\r
-<td>C-t</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">transpose-words</td>\r
-<td>M-t</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">kill-rectangle</td>\r
-<td>C-x r k</td>\r
-<td>East Asian Width supported</td>\r
-</tr>\r
-<tr>\r
-<td class="function">yank-rectangle</td>\r
-<td>C-x r y</td>\r
-<td>East Asian Width supported</td>\r
-</tr>\r
-<tr>\r
-<td class="function">newline</td>\r
-<td>C-m</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">open-line</td>\r
-<td>C-o</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">upcase-word</td>\r
-<td>M-u</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">downcase-word</td>\r
-<td>M-l</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">capitalize-word</td>\r
-<td>M-c</td>\r
-<td></td>\r
-</tr>\r
-<tr>\r
-<td class="function">comment-region</td>\r
-<td>C-c C-c<br/>C-u C-c C-c</td>\r
-<td>forward to toggle comment</td>\r
-</tr>\r
-</table>\r
-\r
-<h2>Unicode</h2>\r
-<ul>\r
-<li>The supplementary characters are supported.\r
-All characters are treated as code point.\r
-\r
-<li>East Asian Width is supported.\r
-In the column calculation of rectangle operation, the width of ambiguous characters are 2 for CJK languages\r
- and 1 for other languages.\r
-\r
-</ul>\r
-\r
-\r
-<h2>Change Log</h2>\r
-<h3>2015.3.15</h3>\r
-<ul>\r
-<li>Release 2.0.0\r
-<li>Support Eclipse4.x\r
-</ul>\r
-<h3>2009.8.20</h3>\r
-<ul>\r
-<li>Release 1.2.0\r
-</ul>\r
-<h3>2009.8.4</h3>\r
-<ul>\r
-<li>Added newline, and assigned to C-m\r
-<li>Added back-to-indentation\r
-</ul>\r
-<h3>2009.8.1</h3>\r
-<ul>\r
-<li>Added comment-region\r
-<li>Rebinded C-j\r
-</ul>\r
-<h3>2009.7.28</h3>\r
-<ul>\r
-<li>Fix rectangle action.\r
-<li>Add the followings.\r
-<ul>\r
-<li>upcase-word\r
-<li>downcase-word\r
-<li>capitalize-word\r
-</ul>\r
-\r
-<li>Release 1.1.0\r
-</ul>\r
-<h3>2009.6.14</h3>\r
-<ul>\r
-<li>Release 1.0.0\r
-</ul>\r
-\r
-<h2>Links</h2>\r
-<ul>\r
-<li><a href="https://sourceforge.jp/projects/moreemacs/simple">More Emacs Plugin SourceForge Project</a>\r
-<li><a href="https://marketplace.eclipse.org/content/more-emacs">Eclipse Market</a>\r
-</ul>\r
-</body>\r
-</html>\r
+<!DOCTYPE html>
+<html>
+<head>
+<link rel='stylesheet' type='text/css' href='style.css'/>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>More Emacs Plugin</title>
+</head>
+<body>
+<h1>More Emacs Plugin</h1>
+<p>More Emacs Plugin is an eclipse plugin for emacs users.</p>
+<p>Eclipse provides the emacs like key bindings. But emacs users require
+more emacs like key bindings. More emacs plugin provides more emacs like key bindings.
+The key bind scheme of more emacs is a child schema of Eclispe's emacs scheme.
+It adds some key bindings or overrides some bindings to emacs scheme.
+</p>
+
+<p>
+Drag 'Install' button to your eclipse workspace.
+<a href="http://marketplace.eclipse.org/marketplace-client-intro?mpc_install=975" class="drag" title="Drag to your running Eclipse workspace to install More Emacs"><img src="https://marketplace.eclipse.org/sites/all/themes/solstice/_themes/solstice_marketplace/public/images/btn-install.png" alt="Drag to your running Eclipse workspace to install More Emacs" /></a>
+</p>
+
+<h2>Install</h2>
+<p>You can install the plugin from
+ <a href="http://moreemacs.sourceforge.jp/update-site">http://moreemacs.sourceforge.jp/update-site</a>.</p>
+<p>Open the preferences dialog and General/Keys. Choose "More Emacs" from "Scheme" pull down.</p>
+<div class="chart"><img src="settings.png" alt="settings" /></div>
+
+
+
+<h2>Key Bindings</h2>
+<p>
+The following list is key bindings of more emacs plugin.
+</p>
+
+<table id="functions" class="flatTable">
+<caption>Key bindings of More Emacs</caption>
+<tr>
+<th class="function">function</th>
+<th>binding</th>
+<th>description</th>
+</tr>
+<tr>
+<td class="function">undo</td>
+<td>C-/</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">delete previous</td>
+<td>C-h</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">next editor</td>
+<td>C-x o<br>Shift-Tab</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">previous editor</td>
+<td>C-Shift-Tab</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">file close</td>
+<td>C-x 0</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">maximize part</td>
+<td>C-x 1</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">new editor</td>
+<td>C-x 2</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">find replace</td>
+<td>M-S-5</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">newline-and-indent</td>
+<td>C-j</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">back-to-indentation</td>
+<td>M-m</td>
+<td>rebind</td>
+</tr>
+<tr>
+<td class="function">move-beginning-of-line</td>
+<td>C-a</td>
+<td>moves the cursor to 0th column, not to the first non-space char of the line.</td>
+</tr>
+<tr>
+<td class="function">move-end-of-line</td>
+<td>C-e</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">forward-word</td>
+<td>M-f</td>
+<td>moves the cursor to the end of word, not to the first char of the next word.
+Only Character.isLetterOrDigit() is used to word-break.
+It is very simple but predictable.
+</td>
+</tr>
+<tr>
+<td class="function">backward-word</td>
+<td>M-b</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">kill-word</td>
+<td>M-d</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">backward-kill-word</td>
+<td>M-BS</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">delete-horizontal-space</td>
+<td>M-\</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">kill-line</td>
+<td>C-k</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">transpose-chars</td>
+<td>C-t</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">transpose-words</td>
+<td>M-t</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">kill-rectangle</td>
+<td>C-x r k</td>
+<td>East Asian Width supported</td>
+</tr>
+<tr>
+<td class="function">yank-rectangle</td>
+<td>C-x r y</td>
+<td>East Asian Width supported</td>
+</tr>
+<tr>
+<td class="function">newline</td>
+<td>C-m</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">open-line</td>
+<td>C-o</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">upcase-word</td>
+<td>M-u</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">downcase-word</td>
+<td>M-l</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">capitalize-word</td>
+<td>M-c</td>
+<td></td>
+</tr>
+<tr>
+<td class="function">comment-region</td>
+<td>C-c C-c<br/>C-u C-c C-c</td>
+<td>forward to toggle comment</td>
+</tr>
+</table>
+
+<h2>Unicode</h2>
+<ul>
+<li>The supplementary characters are supported.
+All characters are treated as code point.
+
+<li>East Asian Width is supported.
+In the column calculation of rectangle operation, the width of ambiguous characters are 2 for CJK languages
+ and 1 for other languages.
+
+</ul>
+
+
+<h2>Change Log</h2>
+<h3>2015.3.15</h3>
+<ul>
+<li>Release 2.0.0
+<li>Support Eclipse4.x
+</ul>
+<h3>2009.8.20</h3>
+<ul>
+<li>Release 1.2.0
+</ul>
+<h3>2009.8.4</h3>
+<ul>
+<li>Added newline, and assigned to C-m
+<li>Added back-to-indentation
+</ul>
+<h3>2009.8.1</h3>
+<ul>
+<li>Added comment-region
+<li>Rebinded C-j
+</ul>
+<h3>2009.7.28</h3>
+<ul>
+<li>Fix rectangle action.
+<li>Add the followings.
+<ul>
+<li>upcase-word
+<li>downcase-word
+<li>capitalize-word
+</ul>
+
+<li>Release 1.1.0
+</ul>
+<h3>2009.6.14</h3>
+<ul>
+<li>Release 1.0.0
+</ul>
+
+<h2>Links</h2>
+<ul>
+<li><a href="https://sourceforge.jp/projects/moreemacs/simple">More Emacs Plugin SourceForge Project</a>
+<li><a href="https://marketplace.eclipse.org/content/more-emacs">Eclipse Market</a>
+</ul>
+</body>
+</html>
index 849f742..fe2e36d 100644 (file)
@@ -1,45 +1,45 @@
-@CHARSET "UTF-8";\r
-\r
-body {\r
-       background: #EEFFEE;\r
-       margin: 30px;\r
-}\r
-\r
-h1 {\r
-       background: #8888FF;\r
-}\r
-\r
-h2 {\r
-       background: #AAAAFF;\r
-}\r
-\r
-table {\r
-       margin-left: auto;\r
-       margin-right: auto;\r
-}\r
-\r
-th {\r
-       background: #AABBBB;\r
-}\r
-\r
-.chart {\r
-       text-align: center;\r
-}\r
-\r
-.function {\r
-       white-space: nowrap\r
-}\r
-\r
-.flatTable {\r
-  border: 1px solid black;\r
-  border-collapse: collapse;\r
-}\r
-.flatTable td, .flatTable th {\r
-  border: 1px solid black;\r
-  padding: 5px;\r
-}\r
-#functions td:first-child,\r
-#functions td:nth-child(2)\r
-{\r
-  white-space: nowrap;\r
-}\r
+@CHARSET "UTF-8";
+
+body {
+    background: #EEFFEE;
+    margin: 30px;
+}
+
+h1 {
+    background: #8888FF;
+}
+
+h2 {
+    background: #AAAAFF;
+}
+
+table {
+    margin-left: auto;
+    margin-right: auto;
+}
+
+th {
+    background: #AABBBB;
+}
+
+.chart {
+    text-align: center;
+}
+
+.function {
+    white-space: nowrap
+}
+
+.flatTable {
+  border: 1px solid black;
+  border-collapse: collapse;
+}
+.flatTable td, .flatTable th {
+  border: 1px solid black;
+  padding: 5px;
+}
+#functions td:first-child,
+#functions td:nth-child(2)
+{
+  white-space: nowrap;
+}
index ddc98eb..71e3843 100644 (file)
@@ -1,26 +1,26 @@
-Copyright (c) 2009, quiver2k\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without\r
-modification, are permitted provided that the following conditions are met:\r
-\r
-  * Redistributions of source code must retain the above copyright notice,\r
-    this list of conditions and the following disclaimer.\r
-  * Redistributions in binary form must reproduce the above copyright notice,\r
-    this list of conditions and the following disclaimer in the documentation\r
-    and/or other materials provided with the distribution.\r
-  * Neither the name of the authors nor the names of its contributors may be\r
-    used to endorse or promote products derived from this software without\r
-    specific prior written permission.\r
-\r
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
-POSSIBILITY OF SUCH DAMAGE.\r
+Copyright (c) 2009, quiver2k
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+  * Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+  * Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+  * Neither the name of the authors nor the names of its contributors may be
+    used to endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
index 03ad9f1..3369677 100644 (file)
@@ -1 +1 @@
-featureImage=icons/logo.png\r
+featureImage=icons/logo.png
index e4a87c8..060fc42 100644 (file)
@@ -1,8 +1,8 @@
-source.. = src/\r
-output.. = bin/\r
-bin.includes = META-INF/,\\r
-               .,\\r
-               plugin.xml,\\r
-               LICENCE.txt,\\r
-               icons/logo.png,\\r
-               about.ini\r
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               LICENCE.txt,\
+               icons/logo.png,\
+               about.ini
index eba8c1f..29524a5 100644 (file)
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?eclipse version="3.4"?>\r
-<plugin>\r
-   <extension\r
-         point="org.eclipse.ui.commands">\r
-      <category\r
-            id="jp.sourceforge.moreemacs.category"\r
-            name="More Emacs">\r
-      </category>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.MoveBeginningOfLine"\r
-            name="move-beginning-of-line">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.MoveEndOfLine"\r
-            name="move-end-of-line">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.ForwardWord"\r
-            name="forward-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.BackwardWord"\r
-            name="backward-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.KillWord"\r
-            name="kill-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.BackwardKillWord"\r
-            name="backward-kill-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.DeleteHorizontalSpace"\r
-            name="delete-horizontal-space">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.KillLine"\r
-            name="kill-line">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.TransposeChars"\r
-            name="transpose-chars">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.TransposeWords"\r
-            name="transpose-words">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.KillRectangle"\r
-            name="kill-rectangle">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.YankRectangle"\r
-            name="yank-rectangle">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.OpenLine"\r
-            name="open-line">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.NewLine"\r
-            name="newline">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.UpcaseWord"\r
-            name="upcase-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.DowncaseWord"\r
-            name="downcase-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.CapitalizeWord"\r
-            name="capitalize-word">\r
-      </command>\r
-      <command\r
-            categoryId="jp.sourceforge.moreemacs.category"\r
-            id="jp.sourceforge.moreemacs.CommentRegion"\r
-            name="comment-region">\r
-      </command>\r
-   </extension>\r
-\r
-   <extension\r
-         point="org.eclipse.ui.handlers">\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.MoveBeginningOfLine">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.MoveEndOfLine">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.ForwardWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.BackwardWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.KillWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.BackwardKillWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.DeleteHorizontalSpace">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.KillLine">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.TransposeChars">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.TransposeWords">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.KillRectangle">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.YankRectangle">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.OpenLine">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.NewLine">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.UpcaseWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.DowncaseWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.CapitalizeWord">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-      <handler\r
-            commandId="jp.sourceforge.moreemacs.CommentRegion">\r
-         <class\r
-               class="jp.sourceforge.moreemacs.handlers.CommandHandler">\r
-         </class>\r
-      </handler>\r
-\r
-   </extension>\r
-\r
-   <extension\r
-         point="org.eclipse.ui.bindings">\r
-      <scheme\r
-            description="provides more emacs like key binding."\r
-            id="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            parentId="org.eclipse.ui.defaultAcceleratorConfiguration"\r
-            name="More Emacs">\r
-      </scheme>\r
-      <!-- M1=CTRL, M2=SHIFT, M3=ALT for windows platform -->\r
-\r
-      <key\r
-            commandId="org.eclipse.ui.edit.undo"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+/">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.deletePrevious"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+H">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.window.nextEditor"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+TAB">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.window.nextEditor"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X O">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.window.previousEditor"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+M2+TAB">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.file.close"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X 0">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.window.maximizePart"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X 1">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.window.newEditor"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X 2">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.findReplace"\r
-            contextId="org.eclipse.ui.contexts.window"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+M2+5">\r
-      </key>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.lineStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+M">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.NewLine"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+M">\r
-      </key>\r
-      <key\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+J">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.MoveBeginningOfLine"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+A">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.MoveEndOfLine"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+E">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.ForwardWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+F">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.BackwardWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+B">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.KillWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+D">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.BackwardKillWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+Backspace">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.DeleteHorizontalSpace"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+\">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.KillLine"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+K">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.OpenLine"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+O">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.TransposeChars"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+T">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.TransposeWords"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+T">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.KillRectangle"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X R K">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.YankRectangle"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+X R Y">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.UpcaseWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+U">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.DowncaseWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+L">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.CapitalizeWord"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M3+C">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.CommentRegion"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+C M1+C">\r
-      </key>\r
-      <key\r
-            commandId="jp.sourceforge.moreemacs.CommentRegion"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-            sequence="M1+U M1+C M1+C">\r
-      </key>\r
-\r
-\r
-      <!-- emacs key bindings org.eclipse.ui.workbench.texteditor_3.8.100.v20120619-083720/plugin.xml -->\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.cut.line.to.beginning"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+0 CTRL+K"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.cut.line.to.beginning"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC 0 CTRL+K"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.cut.line.to.end" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="CTRL+K" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.set.mark"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+SPACE"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.set.mark"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+2"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.clear.mark"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+G"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.swap.mark"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+X CTRL+X"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.findIncremental"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+S"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.findIncrementalReverse"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+R"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.lineUp"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+P"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.lineDown"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+N"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.goto.lineStart" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="CTRL+A" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.goto.lineEnd" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="CTRL+E" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.line"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+X G"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.columnPrevious"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+B"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.columnNext"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+F"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.pageUp"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+V"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.pageUp"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC V"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.pageDown"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+V"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.goto.wordPrevious" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="ALT+B" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.wordPrevious"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC B"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.goto.wordNext" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="ALT+F" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.goto.wordNext" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="ESC F" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+&lt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+SHIFT+&lt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC &lt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC SHIFT+&lt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textStart"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+X ["\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textEnd"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+&gt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textEnd"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+SHIFT+&gt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textEnd"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC &gt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textEnd"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC SHIFT+&gt;"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.goto.textEnd"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+X ]"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.scroll.lineUp"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ALT+Z"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.scroll.lineUp"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="ESC Z"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.scroll.lineDown"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+Z"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.deleteNext"\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="CTRL+D"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.deletePreviousWord" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="M3+BS" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <key\r
-               platform="carbon"\r
-            commandId=""\r
-            contextId="org.eclipse.ui.textEditorScope"\r
-            sequence="M3+BS"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-         <!-- <key -->\r
-         <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->\r
-         <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-         <!--       sequence="M3+DEL" -->\r
-         <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-         <key\r
-               platform="carbon"\r
-               commandId=""\r
-               contextId="org.eclipse.ui.textEditorScope"\r
-               sequence="M3+DEL"\r
-               schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.deletePreviousWord" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="ESC BS" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="M3+D" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-      <!-- <key -->\r
-      <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->\r
-      <!--       contextId="org.eclipse.ui.textEditorScope" -->\r
-      <!--       sequence="ESC D" -->\r
-      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->\r
-         <key\r
-               commandId="org.eclipse.ui.edit.text.recenter"\r
-               contextId="org.eclipse.ui.textEditorScope"\r
-                       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"\r
-               sequence="CTRL+L"/>\r
-\r
-          <!-- org.eclipse.ui_3.103.0.v20120521-2329/plugin.xml -->\r
-      <key\r
-            commandId="org.eclipse.ui.file.close"\r
-            sequence="CTRL+X K"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.file.closeAll"\r
-            sequence="CTRL+X CTRL+C"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.file.save"\r
-            sequence="CTRL+X CTRL+S"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.file.saveAll"\r
-            sequence="CTRL+X S"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.file.print"\r
-            sequence="M3+F9"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.file.print"\r
-            sequence="ESC F9"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.undo"\r
-            sequence="F9"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.undo"\r
-            sequence="CTRL+X U"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.undo"\r
-            sequence="CTRL+M2+-"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.redo"\r
-            sequence="F10"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.redo"\r
-            sequence="CTRL+X R"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.redo"\r
-            sequence="CTRL+M2++"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.cut"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="CTRL+W"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.copy"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="M3+W"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.copy"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="ESC W"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.paste"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="CTRL+Y"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.paste"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="CTRL+Y"\r
-            platform="gtk"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.selectAll"\r
-            contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="CTRL+X H"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.findReplace"\r
-            sequence="M3+R"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.findReplace"\r
-            sequence="ESC R"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.contentAssist.proposals"\r
-               contextId="org.eclipse.ui.contexts.dialogAndWindow"\r
-            sequence="ALT+/"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.contentAssist.contextInformation"\r
-            sequence="ALT+?"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.edit.text.contentAssist.contextInformation"\r
-            sequence="ALT+SHIFT+?"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>\r
-      <key\r
-            commandId="org.eclipse.ui.window.openEditorDropDown"\r
-            sequence="CTRL+X B"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-      <key\r
-            commandId="org.eclipse.ui.window.switchToEditor"\r
-            sequence="CTRL+X CTRL+B"\r
-            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />\r
-\r
-   </extension>\r
-\r
-</plugin>\r
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension
+         point="org.eclipse.ui.commands">
+      <category
+            id="jp.sourceforge.moreemacs.category"
+            name="More Emacs">
+      </category>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.MoveBeginningOfLine"
+            name="move-beginning-of-line">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.MoveEndOfLine"
+            name="move-end-of-line">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.ForwardWord"
+            name="forward-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.BackwardWord"
+            name="backward-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.KillWord"
+            name="kill-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.BackwardKillWord"
+            name="backward-kill-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.DeleteHorizontalSpace"
+            name="delete-horizontal-space">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.KillLine"
+            name="kill-line">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.TransposeChars"
+            name="transpose-chars">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.TransposeWords"
+            name="transpose-words">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.KillRectangle"
+            name="kill-rectangle">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.YankRectangle"
+            name="yank-rectangle">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.OpenLine"
+            name="open-line">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.NewLine"
+            name="newline">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.UpcaseWord"
+            name="upcase-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.DowncaseWord"
+            name="downcase-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.CapitalizeWord"
+            name="capitalize-word">
+      </command>
+      <command
+            categoryId="jp.sourceforge.moreemacs.category"
+            id="jp.sourceforge.moreemacs.CommentRegion"
+            name="comment-region">
+      </command>
+   </extension>
+
+   <extension
+         point="org.eclipse.ui.handlers">
+      <handler
+            commandId="jp.sourceforge.moreemacs.MoveBeginningOfLine">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.MoveEndOfLine">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.ForwardWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.BackwardWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.KillWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.BackwardKillWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.DeleteHorizontalSpace">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.KillLine">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.TransposeChars">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.TransposeWords">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.KillRectangle">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.YankRectangle">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.OpenLine">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.NewLine">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.UpcaseWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.DowncaseWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.CapitalizeWord">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+      <handler
+            commandId="jp.sourceforge.moreemacs.CommentRegion">
+         <class
+               class="jp.sourceforge.moreemacs.handlers.CommandHandler">
+         </class>
+      </handler>
+
+   </extension>
+
+   <extension
+         point="org.eclipse.ui.bindings">
+      <scheme
+            description="provides more emacs like key binding."
+            id="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            parentId="org.eclipse.ui.defaultAcceleratorConfiguration"
+            name="More Emacs">
+      </scheme>
+      <!-- M1=CTRL, M2=SHIFT, M3=ALT for windows platform -->
+
+      <key
+            commandId="org.eclipse.ui.edit.undo"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+/">
+      </key>
+      <key
+            commandId="org.eclipse.ui.edit.text.deletePrevious"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+H">
+      </key>
+      <key
+            commandId="org.eclipse.ui.window.nextEditor"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+TAB">
+      </key>
+      <key
+            commandId="org.eclipse.ui.window.nextEditor"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X O">
+      </key>
+      <key
+            commandId="org.eclipse.ui.window.previousEditor"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+M2+TAB">
+      </key>
+      <key
+            commandId="org.eclipse.ui.file.close"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X 0">
+      </key>
+      <key
+            commandId="org.eclipse.ui.window.maximizePart"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X 1">
+      </key>
+      <key
+            commandId="org.eclipse.ui.window.newEditor"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X 2">
+      </key>
+      <key
+            commandId="org.eclipse.ui.edit.findReplace"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+M2+5">
+      </key>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.lineStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+M">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.NewLine"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+M">
+      </key>
+      <key
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+J">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.MoveBeginningOfLine"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+A">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.MoveEndOfLine"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+E">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.ForwardWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+F">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.BackwardWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+B">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.KillWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+D">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.BackwardKillWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+Backspace">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.DeleteHorizontalSpace"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+\">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.KillLine"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+K">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.OpenLine"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+O">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.TransposeChars"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+T">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.TransposeWords"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+T">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.KillRectangle"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X R K">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.YankRectangle"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+X R Y">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.UpcaseWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+U">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.DowncaseWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+L">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.CapitalizeWord"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M3+C">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.CommentRegion"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+C M1+C">
+      </key>
+      <key
+            commandId="jp.sourceforge.moreemacs.CommentRegion"
+            contextId="org.eclipse.ui.textEditorScope"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="M1+U M1+C M1+C">
+      </key>
+
+
+      <!-- emacs key bindings org.eclipse.ui.workbench.texteditor_3.8.100.v20120619-083720/plugin.xml -->
+      <key
+            commandId="org.eclipse.ui.edit.text.cut.line.to.beginning"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+0 CTRL+K"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.cut.line.to.beginning"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC 0 CTRL+K"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.cut.line.to.end" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="CTRL+K" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            commandId="org.eclipse.ui.edit.text.set.mark"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+SPACE"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.set.mark"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+2"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.clear.mark"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+G"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.swap.mark"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+X CTRL+X"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.findIncremental"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+S"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.findIncrementalReverse"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+R"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.lineUp"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+P"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.lineDown"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+N"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.goto.lineStart" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="CTRL+A" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.goto.lineEnd" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="CTRL+E" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.line"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+X G"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.columnPrevious"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+B"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.columnNext"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+F"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.pageUp"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+V"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.pageUp"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC V"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.pageDown"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+V"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.goto.wordPrevious" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="ALT+B" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.wordPrevious"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC B"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.goto.wordNext" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="ALT+F" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.goto.wordNext" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="ESC F" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+&lt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+SHIFT+&lt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC &lt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC SHIFT+&lt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textStart"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+X ["
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textEnd"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+&gt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textEnd"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+SHIFT+&gt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textEnd"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC &gt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textEnd"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC SHIFT+&gt;"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.goto.textEnd"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+X ]"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.scroll.lineUp"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ALT+Z"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.scroll.lineUp"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="ESC Z"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.scroll.lineDown"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+Z"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.deleteNext"
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="CTRL+D"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.deletePreviousWord" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="M3+BS" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            platform="carbon"
+            commandId=""
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="M3+BS"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="M3+DEL" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            platform="carbon"
+            commandId=""
+            contextId="org.eclipse.ui.textEditorScope"
+            sequence="M3+DEL"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.deletePreviousWord" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="ESC BS" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="M3+D" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <!-- <key -->
+      <!--       commandId="org.eclipse.ui.edit.text.deleteNextWord" -->
+      <!--       contextId="org.eclipse.ui.textEditorScope" -->
+      <!--       sequence="ESC D" -->
+      <!--       schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/> -->
+      <key
+            commandId="org.eclipse.ui.edit.text.recenter"
+            contextId="org.eclipse.ui.textEditorScope"
+               schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"
+            sequence="CTRL+L"/>
+
+          <!-- org.eclipse.ui_3.103.0.v20120521-2329/plugin.xml -->
+      <key
+            commandId="org.eclipse.ui.file.close"
+            sequence="CTRL+X K"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.file.closeAll"
+            sequence="CTRL+X CTRL+C"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.file.save"
+            sequence="CTRL+X CTRL+S"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.file.saveAll"
+            sequence="CTRL+X S"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.file.print"
+            sequence="M3+F9"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.file.print"
+            sequence="ESC F9"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.undo"
+            sequence="F9"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.undo"
+            sequence="CTRL+X U"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.undo"
+            sequence="CTRL+M2+-"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.redo"
+            sequence="F10"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.redo"
+            sequence="CTRL+X R"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.redo"
+            sequence="CTRL+M2++"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.cut"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="CTRL+W"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.copy"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="M3+W"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.copy"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="ESC W"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.paste"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="CTRL+Y"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.paste"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="CTRL+Y"
+            platform="gtk"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.selectAll"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="CTRL+X H"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.findReplace"
+            sequence="M3+R"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.findReplace"
+            sequence="ESC R"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.edit.text.contentAssist.proposals"
+            contextId="org.eclipse.ui.contexts.dialogAndWindow"
+            sequence="ALT+/"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.contentAssist.contextInformation"
+            sequence="ALT+?"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.edit.text.contentAssist.contextInformation"
+            sequence="ALT+SHIFT+?"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration"/>
+      <key
+            commandId="org.eclipse.ui.window.openEditorDropDown"
+            sequence="CTRL+X B"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+      <key
+            commandId="org.eclipse.ui.window.switchToEditor"
+            sequence="CTRL+X CTRL+B"
+            schemeId="jp.sourceforge.moreemacs.moreEmacsAcceleratorConfiguration" />
+
+   </extension>
+
+</plugin>
index e606a31..88ced6c 100644 (file)
@@ -1,50 +1,50 @@
-package jp.sourceforge.moreemacs;\r
-\r
-import org.eclipse.ui.plugin.AbstractUIPlugin;\r
-import org.osgi.framework.BundleContext;\r
-\r
-/**\r
- * The activator class controls the plug-in life cycle\r
- */\r
-public class MoreEmacs extends AbstractUIPlugin {\r
-\r
-       // The plug-in ID\r
-       public static final String PLUGIN_ID = "jp.sourceforge.moreemacs";\r
-\r
-       // The shared instance\r
-       private static MoreEmacs plugin;\r
-       \r
-       /**\r
-        * The constructor\r
-        */\r
-       public MoreEmacs() {\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)\r
-        */\r
-       public void start(BundleContext context) throws Exception {\r
-               super.start(context);\r
-               plugin = this;\r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)\r
-        */\r
-       public void stop(BundleContext context) throws Exception {\r
-               plugin = null;\r
-               super.stop(context);\r
-       }\r
-\r
-       /**\r
-        * Returns the shared instance\r
-        *\r
-        * @return the shared instance\r
-        */\r
-       public static MoreEmacs getDefault() {\r
-               return plugin;\r
-       }\r
-\r
-}\r
+package jp.sourceforge.moreemacs;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class MoreEmacs extends AbstractUIPlugin {
+
+    // The plug-in ID
+    public static final String PLUGIN_ID = "jp.sourceforge.moreemacs";
+
+    // The shared instance
+    private static MoreEmacs plugin;
+    
+    /**
+     * The constructor
+     */
+    public MoreEmacs() {
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+     */
+    public void start(BundleContext context) throws Exception {
+       super.start(context);
+       plugin = this;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+     */
+    public void stop(BundleContext context) throws Exception {
+       plugin = null;
+       super.stop(context);
+    }
+
+    /**
+     * Returns the shared instance
+     *
+     * @return the shared instance
+     */
+    public static MoreEmacs getDefault() {
+       return plugin;
+    }
+
+}
index a295af5..cc0bebe 100644 (file)
@@ -1,25 +1,25 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.swt.dnd.Clipboard;\r
-import org.eclipse.swt.dnd.TextTransfer;\r
-import org.eclipse.swt.dnd.Transfer;\r
-\r
-public final class BackwardKillWordExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute()throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        int current = cursor.offset();\r
-        int previous = BackwardWordExecution.getPreviousWordPosition(doc, current);\r
-        String word = doc.get(previous, current - previous);\r
-        Clipboard c = new Clipboard(window.getShell().getDisplay());\r
-        c.setContents(new String[] { word },\r
-                new Transfer[] { TextTransfer.getInstance() });\r
-        doc.replace(previous, current - previous, "");\r
-        \r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+public final class BackwardKillWordExecution extends TextEditorExecution {
+
+    @Override
+    public void execute()throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        int current = cursor.offset();
+        int previous = BackwardWordExecution.getPreviousWordPosition(doc, current);
+        String word = doc.get(previous, current - previous);
+        Clipboard c = new Clipboard(window.getShell().getDisplay());
+        c.setContents(new String[] { word },
+                new Transfer[] { TextTransfer.getInstance() });
+        doc.replace(previous, current - previous, "");
+        
+    }
+}
index 1b9abd9..86aa99d 100644 (file)
@@ -1,34 +1,34 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-\r
-public final class BackwardWordExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        int current = cursor.offset();\r
-        cursor.move(getPreviousWordPosition(doc, current));\r
-    }\r
-    \r
-    public static int getPreviousWordPosition(IDocument doc, int offset) throws BadLocationException {\r
-        CharSequence seq = new DocumentCharSequence(doc, 0, offset);\r
-        CodePointIterator itr = new CodePointIterator(seq, seq.length());\r
-        \r
-        for(; itr.hasPrevious(); ) {\r
-            if (Character.isLetterOrDigit(itr.previous())) {\r
-                itr.next();\r
-                break;\r
-            }\r
-        }\r
-        for(; itr.hasPrevious(); ) {\r
-            if (!Character.isLetterOrDigit(itr.previous())) {\r
-                itr.next();\r
-                break;\r
-            }\r
-        }\r
-        return itr.index();\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+
+public final class BackwardWordExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        int current = cursor.offset();
+        cursor.move(getPreviousWordPosition(doc, current));
+    }
+    
+    public static int getPreviousWordPosition(IDocument doc, int offset) throws BadLocationException {
+        CharSequence seq = new DocumentCharSequence(doc, 0, offset);
+        CodePointIterator itr = new CodePointIterator(seq, seq.length());
+        
+        for(; itr.hasPrevious(); ) {
+            if (Character.isLetterOrDigit(itr.previous())) {
+                itr.next();
+                break;
+            }
+        }
+        for(; itr.hasPrevious(); ) {
+            if (!Character.isLetterOrDigit(itr.previous())) {
+                itr.next();
+                break;
+            }
+        }
+        return itr.index();
+    }
+}
index fb2564f..fcbd830 100644 (file)
@@ -1,27 +1,27 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-\r
-\r
-public final class CapitalizeWordExecution extends ConvertWordExecution {\r
-    @Override\r
-    protected String convert(String word) {\r
-        StringBuilder builder = new StringBuilder();\r
-        for(CodePointIterator itr = new CodePointIterator(word); itr.hasNext(); ) {\r
-            int cp = itr.next();\r
-            \r
-            if(!Character.isLetter(cp)) {\r
-                builder.appendCodePoint(cp);\r
-                continue;\r
-            }\r
-\r
-            builder.appendCodePoint(Character.toUpperCase(cp));\r
-            if(itr.hasNext()) {\r
-                builder.append(word.substring(itr.index()).toLowerCase());\r
-            }\r
-            break;\r
-        }\r
-        return builder.toString();\r
-    }\r
-}\r
-\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+
+
+public final class CapitalizeWordExecution extends ConvertWordExecution {
+    @Override
+    protected String convert(String word) {
+        StringBuilder builder = new StringBuilder();
+        for(CodePointIterator itr = new CodePointIterator(word); itr.hasNext(); ) {
+            int cp = itr.next();
+            
+            if(!Character.isLetter(cp)) {
+                builder.appendCodePoint(cp);
+                continue;
+            }
+
+            builder.appendCodePoint(Character.toUpperCase(cp));
+            if(itr.hasNext()) {
+                builder.append(word.substring(itr.index()).toLowerCase());
+            }
+            break;
+        }
+        return builder.toString();
+    }
+}
+
index 418ca8e..ddc56bc 100644 (file)
@@ -1,68 +1,68 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import java.util.regex.Pattern;\r
-\r
-import jp.sourceforge.moreemacs.MoreEmacs;\r
-\r
-import org.eclipse.core.commands.AbstractHandler;\r
-import org.eclipse.core.commands.Command;\r
-import org.eclipse.core.commands.ExecutionEvent;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.handlers.HandlerUtil;\r
-\r
-public final class CommandHandler extends AbstractHandler {\r
-\r
-    @Override\r
-    public Object execute(ExecutionEvent event) throws ExecutionException {\r
-        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);\r
-\r
-        Execution exe = newExecution(event);\r
-        if(!exe.init(window)) {\r
-            return null;\r
-        }\r
-        try {\r
-            exe.execute();\r
-        } catch (Exception e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        }\r
-\r
-        return null;\r
-    }\r
-    \r
-    private Execution newExecution(ExecutionEvent event) throws ExecutionException {\r
-        try {\r
-            String className = getExecutionClassName(event);\r
-            Class<?> clazz = Class.forName(className);\r
-            Object obj = clazz.newInstance();\r
-            if(!(obj instanceof Execution)) {\r
-                throw new ExecutionException("the class "+clazz.getName()+\r
-                        " does not implements Execution.");\r
-            }\r
-            return (Execution)obj;\r
-        } catch (ClassNotFoundException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        } catch (InstantiationException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        } catch (IllegalAccessException e) {\r
-            throw new ExecutionException(e.getMessage(), e);\r
-        }\r
-        \r
-    }\r
-    \r
-    // naming strategy will be separated to another class.\r
-    private static final String COMMAND_PREFIX_QUOTED = Pattern.quote(\r
-            MoreEmacs.class.getPackage().getName());\r
-    private static final String HANDLER_PREFIX = CommandHandler.class.getPackage().getName();\r
-    private static final String HANDLER_SUFFIX = "Execution";\r
-    private static String getExecutionClassName(ExecutionEvent event) {\r
-        Command command = event.getCommand();\r
-        String className = command.getId()\r
-        .replaceFirst(COMMAND_PREFIX_QUOTED, HANDLER_PREFIX)\r
-        +HANDLER_SUFFIX;\r
-        \r
-        \r
-        return className;\r
-    }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import java.util.regex.Pattern;
+
+import jp.sourceforge.moreemacs.MoreEmacs;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+public final class CommandHandler extends AbstractHandler {
+
+    @Override
+    public Object execute(ExecutionEvent event) throws ExecutionException {
+        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
+
+        Execution exe = newExecution(event);
+        if(!exe.init(window)) {
+            return null;
+        }
+        try {
+            exe.execute();
+        } catch (Exception e) {
+            throw new ExecutionException(e.getMessage(), e);
+        }
+
+        return null;
+    }
+    
+    private Execution newExecution(ExecutionEvent event) throws ExecutionException {
+        try {
+            String className = getExecutionClassName(event);
+            Class<?> clazz = Class.forName(className);
+            Object obj = clazz.newInstance();
+            if(!(obj instanceof Execution)) {
+                throw new ExecutionException("the class "+clazz.getName()+
+                        " does not implements Execution.");
+            }
+            return (Execution)obj;
+        } catch (ClassNotFoundException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        } catch (InstantiationException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        } catch (IllegalAccessException e) {
+            throw new ExecutionException(e.getMessage(), e);
+        }
+        
+    }
+    
+    // naming strategy will be separated to another class.
+    private static final String COMMAND_PREFIX_QUOTED = Pattern.quote(
+            MoreEmacs.class.getPackage().getName());
+    private static final String HANDLER_PREFIX = CommandHandler.class.getPackage().getName();
+    private static final String HANDLER_SUFFIX = "Execution";
+    private static String getExecutionClassName(ExecutionEvent event) {
+        Command command = event.getCommand();
+        String className = command.getId()
+        .replaceFirst(COMMAND_PREFIX_QUOTED, HANDLER_PREFIX)
+        +HANDLER_SUFFIX;
+        
+        
+        return className;
+    }
+
+}
index 262bf7a..040d6a4 100644 (file)
@@ -1,41 +1,41 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.core.commands.Command;\r
-import org.eclipse.jface.text.ITextSelection;\r
-import org.eclipse.ui.commands.ICommandService;\r
-import org.eclipse.ui.handlers.IHandlerService;\r
-\r
-\r
-public final class CommentRegionExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws Exception {\r
-        Command command = getEnabledToggleCommentCommand();\r
-        if(command == null) {\r
-            return;\r
-        }\r
-        // if the selection is empty, the marked region will be new selection.\r
-        getSelection(true);\r
-        \r
-        IHandlerService handlerService =\r
-            (IHandlerService)textEditor.getSite().getService(IHandlerService.class);\r
-        handlerService.executeCommand(command.getId(), null);\r
-\r
-        ITextSelection selection = getSelection(false);\r
-        textViewer.setSelectedRange(selection.getOffset()+selection.getLength(), 0);\r
-    }\r
-    \r
-    private Command getEnabledToggleCommentCommand() {\r
-        ICommandService commandService =\r
-            (ICommandService)textEditor.getSite().getService(ICommandService.class);\r
-        for(Command command: commandService.getDefinedCommands()) {\r
-            if(isEnabledToggleCommentCommand(command)) {\r
-                return command;\r
-            }\r
-        }\r
-        return null;\r
-    }\r
-    \r
-    private boolean isEnabledToggleCommentCommand(Command command) {\r
-        return command.isEnabled() && command.getId().endsWith(".toggle.comment");\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+
+
+public final class CommentRegionExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws Exception {
+        Command command = getEnabledToggleCommentCommand();
+        if(command == null) {
+            return;
+        }
+        // if the selection is empty, the marked region will be new selection.
+        getSelection(true);
+        
+        IHandlerService handlerService =
+            (IHandlerService)textEditor.getSite().getService(IHandlerService.class);
+        handlerService.executeCommand(command.getId(), null);
+
+        ITextSelection selection = getSelection(false);
+        textViewer.setSelectedRange(selection.getOffset()+selection.getLength(), 0);
+    }
+    
+    private Command getEnabledToggleCommentCommand() {
+        ICommandService commandService =
+            (ICommandService)textEditor.getSite().getService(ICommandService.class);
+        for(Command command: commandService.getDefinedCommands()) {
+            if(isEnabledToggleCommentCommand(command)) {
+                return command;
+            }
+        }
+        return null;
+    }
+    
+    private boolean isEnabledToggleCommentCommand(Command command) {
+        return command.isEnabled() && command.getId().endsWith(".toggle.comment");
+    }
+}
index d14569e..28284dd 100644 (file)
@@ -1,22 +1,22 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-\r
-public abstract class ConvertWordExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        int current = cursor.offset();\r
-        int next = ForwardWordExecution.getNextWordPosition(doc, current);\r
-        String word = doc.get(current, next-current);\r
-        String  convertedWord = convert(word);\r
-        doc.replace(current, next-current, convertedWord);\r
-        cursor.move(current + convertedWord.length());\r
-    }\r
-    \r
-    protected abstract String convert(String word);\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+
+public abstract class ConvertWordExecution extends TextEditorExecution {
+
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        int current = cursor.offset();
+        int next = ForwardWordExecution.getNextWordPosition(doc, current);
+        String word = doc.get(current, next-current);
+        String  convertedWord = convert(word);
+        doc.replace(current, next-current, convertedWord);
+        cursor.move(current + convertedWord.length());
+    }
+    
+    protected abstract String convert(String word);
+}
index f36b3be..b6f7358 100644 (file)
@@ -1,53 +1,53 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.ITextSelection;\r
-import org.eclipse.jface.text.ITextViewer;\r
-import org.eclipse.jface.text.ITextViewerExtension5;\r
-import org.eclipse.swt.custom.StyledText;\r
-import org.eclipse.ui.texteditor.ITextEditor;\r
-\r
-final class Cursor {\r
-    private final ITextEditor textEditor;\r
-    private final ITextViewerExtension5 textViewerEx5;\r
-    private final StyledText styledText;\r
-    private final ITextViewer textViewer;\r
-    \r
-    Cursor(ITextEditor textEditor, ITextViewer textViewer) {\r
-        this.textEditor = textEditor;\r
-        this.textViewer = textViewer;\r
-        this.styledText = textViewer.getTextWidget();\r
-        this.textViewerEx5 = (textViewer instanceof ITextViewerExtension5)\r
-        ? (ITextViewerExtension5) textViewer: null;\r
-    }\r
-    \r
-    int offset() {\r
-        if(textViewerEx5 != null) {\r
-            return textViewerEx5.widgetOffset2ModelOffset(\r
-                    styledText.getCaretOffset());\r
-        }\r
-\r
-        ITextSelection selectoin =\r
-            (ITextSelection) textEditor.getSelectionProvider().getSelection();\r
-        int selectionBegin = selectoin.getOffset();\r
-        return selectionBegin;\r
-    }\r
-    \r
-    void move(int offset) {\r
-        textViewer.setSelectedRange(offset, 0);\r
-        textViewer.revealRange(offset, 0);\r
-\r
-// workaround for ISourceViewer\r
-//        sourceViewer.setRangeIndication(offset, 0, true);\r
-\r
-// workaround for ITextViewerExtension5\r
-//        if(textViewerEx5 != null) {\r
-//            styledText.setCaretOffset(textViewerEx5.modelOffset2WidgetOffset(offset));\r
-//\r
-//            return;\r
-//        }\r
-\r
-// workaround for ITextEditor\r
-//        textEditor.resetHighlightRange();\r
-//        textEditor.setHighlightRange(offset, 0, true);\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.ITextViewerExtension5;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+final class Cursor {
+    private final ITextEditor textEditor;
+    private final ITextViewerExtension5 textViewerEx5;
+    private final StyledText styledText;
+    private final ITextViewer textViewer;
+    
+    Cursor(ITextEditor textEditor, ITextViewer textViewer) {
+        this.textEditor = textEditor;
+        this.textViewer = textViewer;
+        this.styledText = textViewer.getTextWidget();
+        this.textViewerEx5 = (textViewer instanceof ITextViewerExtension5)
+        ? (ITextViewerExtension5) textViewer: null;
+    }
+    
+    int offset() {
+        if(textViewerEx5 != null) {
+            return textViewerEx5.widgetOffset2ModelOffset(
+                    styledText.getCaretOffset());
+        }
+
+        ITextSelection selectoin =
+            (ITextSelection) textEditor.getSelectionProvider().getSelection();
+        int selectionBegin = selectoin.getOffset();
+        return selectionBegin;
+    }
+    
+    void move(int offset) {
+        textViewer.setSelectedRange(offset, 0);
+        textViewer.revealRange(offset, 0);
+
+// workaround for ISourceViewer
+//        sourceViewer.setRangeIndication(offset, 0, true);
+
+// workaround for ITextViewerExtension5
+//        if(textViewerEx5 != null) {
+//            styledText.setCaretOffset(textViewerEx5.modelOffset2WidgetOffset(offset));
+//
+//            return;
+//        }
+
+// workaround for ITextEditor
+//        textEditor.resetHighlightRange();
+//        textEditor.setHighlightRange(offset, 0, true);
+    }
+}
index 1fbb717..2b457ef 100644 (file)
@@ -1,55 +1,55 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IRegion;\r
-\r
-public final class DeleteHorizontalSpaceExecution extends TextEditorExecution {\r
-    \r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        int current = cursor.offset();\r
-        int start = skipBackwardSpaces(doc, current);\r
-        int end = skipForwardSpaces(doc, current);\r
-        doc.replace(start, end - start, "");\r
-    }\r
-    \r
-    int skipBackwardSpaces(IDocument doc, int offset) throws BadLocationException {\r
-        IRegion line = doc.getLineInformationOfOffset(offset);\r
-        \r
-        CharSequence seq = new DocumentCharSequence(doc, \r
-                line.getOffset(), offset-line.getOffset());\r
-        \r
-        int result = offset;\r
-        for(CodePointIterator itr = new CodePointIterator(seq, seq.length()); itr.hasPrevious(); ) {\r
-            int codePoint = itr.previous();\r
-            if (!Character.isWhitespace(codePoint)) {\r
-                break;\r
-            }\r
-            result = line.getOffset() + itr.index();\r
-        }\r
-        return result;\r
-    }\r
-    \r
-    int skipForwardSpaces(IDocument doc, int offset) throws BadLocationException {\r
-        IRegion line = doc.getLineInformationOfOffset(offset);\r
-        CharSequence seq = new DocumentCharSequence(doc, \r
-                offset,line.getOffset()+line.getLength()-offset);\r
-        int result = offset;\r
-        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {\r
-            int codePoint = itr.next();\r
-            if (!Character.isWhitespace(codePoint)) {\r
-                break;\r
-            }\r
-            result = offset + itr.index();\r
-        }\r
-        return result;\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+
+public final class DeleteHorizontalSpaceExecution extends TextEditorExecution {
+    
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        int current = cursor.offset();
+        int start = skipBackwardSpaces(doc, current);
+        int end = skipForwardSpaces(doc, current);
+        doc.replace(start, end - start, "");
+    }
+    
+    int skipBackwardSpaces(IDocument doc, int offset) throws BadLocationException {
+        IRegion line = doc.getLineInformationOfOffset(offset);
+        
+        CharSequence seq = new DocumentCharSequence(doc, 
+                line.getOffset(), offset-line.getOffset());
+        
+        int result = offset;
+        for(CodePointIterator itr = new CodePointIterator(seq, seq.length()); itr.hasPrevious(); ) {
+            int codePoint = itr.previous();
+            if (!Character.isWhitespace(codePoint)) {
+                break;
+            }
+            result = line.getOffset() + itr.index();
+        }
+        return result;
+    }
+    
+    int skipForwardSpaces(IDocument doc, int offset) throws BadLocationException {
+        IRegion line = doc.getLineInformationOfOffset(offset);
+        CharSequence seq = new DocumentCharSequence(doc, 
+                offset,line.getOffset()+line.getLength()-offset);
+        int result = offset;
+        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {
+            int codePoint = itr.next();
+            if (!Character.isWhitespace(codePoint)) {
+                break;
+            }
+            result = offset + itr.index();
+        }
+        return result;
+    }
+}
index 2a013cf..e4a1b2e 100644 (file)
@@ -1,10 +1,10 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-\r
-public final class DowncaseWordExecution extends ConvertWordExecution {\r
-    @Override\r
-    protected String convert(String word) {\r
-        return word.toLowerCase();\r
-    }\r
-}\r
-\r
+package jp.sourceforge.moreemacs.handlers;
+
+
+public final class DowncaseWordExecution extends ConvertWordExecution {
+    @Override
+    protected String convert(String word) {
+        return word.toLowerCase();
+    }
+}
+
index 7c83984..23adec1 100644 (file)
@@ -1,8 +1,8 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-\r
-public interface Execution {\r
-    boolean init(IWorkbenchWindow window);\r
-    void execute() throws Exception;\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.ui.IWorkbenchWindow;
+
+public interface Execution {
+    boolean init(IWorkbenchWindow window);
+    void execute() throws Exception;
+}
index 835dfe7..c176bd2 100644 (file)
@@ -1,38 +1,38 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-\r
-public final class ForwardWordExecution extends TextEditorExecution {\r
-    \r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        int current = cursor.offset();\r
-        cursor.move(getNextWordPosition(doc, current));\r
-    }\r
-    \r
-    public static int getNextWordPosition(IDocument doc, int offset) throws BadLocationException {\r
-        CharSequence seq = new DocumentCharSequence(doc, offset, doc.getLength()-offset);\r
-        CodePointIterator itr = new CodePointIterator(seq);\r
-        \r
-        \r
-        for(; itr.hasNext(); ) {\r
-            int codePoint = itr.next();\r
-            if (Character.isLetterOrDigit(codePoint)) {\r
-                itr.previous();\r
-                break;\r
-            }\r
-        }\r
-        for(; itr.hasNext(); ) {\r
-            if (!Character.isLetterOrDigit(itr.next())) {\r
-                itr.previous();\r
-                break;\r
-            }\r
-        }\r
-        \r
-        return offset + itr.index();\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+
+public final class ForwardWordExecution extends TextEditorExecution {
+    
+    @Override
+    public void execute() throws BadLocationException {
+        int current = cursor.offset();
+        cursor.move(getNextWordPosition(doc, current));
+    }
+    
+    public static int getNextWordPosition(IDocument doc, int offset) throws BadLocationException {
+        CharSequence seq = new DocumentCharSequence(doc, offset, doc.getLength()-offset);
+        CodePointIterator itr = new CodePointIterator(seq);
+        
+        
+        for(; itr.hasNext(); ) {
+            int codePoint = itr.next();
+            if (Character.isLetterOrDigit(codePoint)) {
+                itr.previous();
+                break;
+            }
+        }
+        for(; itr.hasNext(); ) {
+            if (!Character.isLetterOrDigit(itr.next())) {
+                itr.previous();
+                break;
+            }
+        }
+        
+        return offset + itr.index();
+    }
+}
index a1cbb75..537702e 100644 (file)
@@ -1,50 +1,50 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IRegion;\r
-import org.eclipse.swt.dnd.Clipboard;\r
-import org.eclipse.swt.dnd.TextTransfer;\r
-import org.eclipse.swt.dnd.Transfer;\r
-\r
-public final class KillLineExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        int current = cursor.offset();\r
-        int linePos = doc.getLineOfOffset(current);\r
-        IRegion line = doc.getLineInformation(linePos);\r
-        String delim = doc.getLineDelimiter(linePos);\r
-        \r
-        int length = line.getOffset() + line.getLength() - current;\r
-        boolean allSpaces = isAllSpaces(doc, current, length);\r
-        \r
-        int cutLength = length;\r
-        if (allSpaces && delim != null) {\r
-            cutLength += delim.length();\r
-        }\r
-        \r
-        String cut = doc.get(current, cutLength);\r
-        Clipboard c = new Clipboard(window.getShell().getDisplay());\r
-        c.setContents(\r
-                new String[] { cut }, \r
-                new Transfer[] { TextTransfer.getInstance() });\r
-        doc.replace(current, cutLength, "");\r
-    }\r
-    \r
-    private boolean isAllSpaces(IDocument doc, int offset, int length) throws BadLocationException {\r
-        CharSequence seq = new DocumentCharSequence(doc, offset, length);\r
-        for(int codePoint : CodePointIterator.each(seq)) {\r
-            if (!Character.isWhitespace(codePoint)) {\r
-                return false;\r
-            }\r
-        }\r
-        return true;\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+public final class KillLineExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        int current = cursor.offset();
+        int linePos = doc.getLineOfOffset(current);
+        IRegion line = doc.getLineInformation(linePos);
+        String delim = doc.getLineDelimiter(linePos);
+        
+        int length = line.getOffset() + line.getLength() - current;
+        boolean allSpaces = isAllSpaces(doc, current, length);
+        
+        int cutLength = length;
+        if (allSpaces && delim != null) {
+            cutLength += delim.length();
+        }
+        
+        String cut = doc.get(current, cutLength);
+        Clipboard c = new Clipboard(window.getShell().getDisplay());
+        c.setContents(
+                new String[] { cut }, 
+                new Transfer[] { TextTransfer.getInstance() });
+        doc.replace(current, cutLength, "");
+    }
+    
+    private boolean isAllSpaces(IDocument doc, int offset, int length) throws BadLocationException {
+        CharSequence seq = new DocumentCharSequence(doc, offset, length);
+        for(int codePoint : CodePointIterator.each(seq)) {
+            if (!Character.isWhitespace(codePoint)) {
+                return false;
+            }
+        }
+        return true;
+    }
+}
index 9fc2d30..59d754b 100644 (file)
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.ColumnUtils;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-import jp.sourceforge.moreemacs.utils.DocumentTransaction;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IRegion;\r
-import org.eclipse.jface.text.ITextSelection;\r
-\r
-public final class KillRectangleExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        ITextSelection selection = getSelection(true);\r
-\r
-        int start = selection.getOffset();\r
-        int startRow = doc.getLineOfOffset(start);\r
-        int startColumn = ColumnUtils.getColumn(doc, start, getTabStop());\r
-\r
-        int end = start + selection.getLength();\r
-        int endRow = doc.getLineOfOffset(end);\r
-        int endColumn = ColumnUtils.getColumn(doc, end, getTabStop());\r
-        \r
-        if(startColumn > endColumn) {\r
-            int work = startColumn;\r
-            startColumn = endColumn;\r
-            endColumn = work;\r
-        }\r
-\r
-        int offset = cursor.offset();\r
-        DocumentTransaction transaction = new DocumentTransaction(doc); \r
-        transaction.begin();\r
-        try {\r
-            List<String> rectangle = new ArrayList<String>();\r
-            offset = killRectangle(doc, startRow, startColumn, endRow, endColumn, rectangle);\r
-            RectangleStorage.setRectangle(rectangle);\r
-        } finally {\r
-            transaction.end();\r
-        }\r
-        cursor.move(offset);\r
-    }\r
-    private int killRectangle(IDocument doc,\r
-            int startRow, int startColumn,\r
-            int endRow, int endColumn, List<String> rectangle)\r
-            throws BadLocationException {\r
-\r
-\r
-        int result = cursor.offset();\r
-        for(int i = startRow; i <= endRow; i++) {\r
-            result = killString(doc, i, startColumn, endColumn, rectangle);\r
-        }\r
-        return result;\r
-    }\r
-    private int killString(IDocument doc, int row,\r
-            int startColumn, int endColumn, List<String> rectangle) throws BadLocationException {\r
-        IRegion line = doc.getLineInformation(row);\r
-\r
-        StringBuilder builder = new StringBuilder();\r
-        int column = 0;\r
-        int cutOffset = 0;\r
-        int cutLength = 0;\r
-        \r
-        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), line.getLength());\r
-        \r
-        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {\r
-            if(column >= endColumn) {\r
-                break;\r
-            }\r
-            int offset = line.getOffset() + itr.index();\r
-            int codePoint = itr.next();\r
-\r
-            int nextColumn = ColumnUtils.getNextColumn(column, codePoint, getTabStop());\r
-            \r
-            if(nextColumn < startColumn+1) {\r
-                column = nextColumn;\r
-                continue;\r
-            }\r
-            if(cutLength == 0) { \r
-                cutOffset = offset;\r
-            }\r
-            builder.appendCodePoint(codePoint);\r
-            cutLength += Character.charCount(codePoint);\r
-            column = nextColumn;\r
-        }\r
-        \r
-        doc.replace(cutOffset, cutLength, "");\r
-\r
-            \r
-        for(int i = 0; i < endColumn-column; i++) {\r
-            builder.append(' ');\r
-        }\r
-        \r
-        rectangle.add(builder.toString());\r
-        return cutOffset;\r
-    }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.ColumnUtils;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+import jp.sourceforge.moreemacs.utils.DocumentTransaction;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextSelection;
+
+public final class KillRectangleExecution extends TextEditorExecution {
+
+    @Override
+    public void execute() throws BadLocationException {
+
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        ITextSelection selection = getSelection(true);
+
+        int start = selection.getOffset();
+        int startRow = doc.getLineOfOffset(start);
+        int startColumn = ColumnUtils.getColumn(doc, start, getTabStop());
+
+        int end = start + selection.getLength();
+        int endRow = doc.getLineOfOffset(end);
+        int endColumn = ColumnUtils.getColumn(doc, end, getTabStop());
+        
+        if(startColumn > endColumn) {
+            int work = startColumn;
+            startColumn = endColumn;
+            endColumn = work;
+        }
+
+        int offset = cursor.offset();
+        DocumentTransaction transaction = new DocumentTransaction(doc); 
+        transaction.begin();
+        try {
+            List<String> rectangle = new ArrayList<String>();
+            offset = killRectangle(doc, startRow, startColumn, endRow, endColumn, rectangle);
+            RectangleStorage.setRectangle(rectangle);
+        } finally {
+            transaction.end();
+        }
+        cursor.move(offset);
+    }
+    private int killRectangle(IDocument doc,
+            int startRow, int startColumn,
+            int endRow, int endColumn, List<String> rectangle)
+            throws BadLocationException {
+
+
+        int result = cursor.offset();
+        for(int i = startRow; i <= endRow; i++) {
+            result = killString(doc, i, startColumn, endColumn, rectangle);
+        }
+        return result;
+    }
+    private int killString(IDocument doc, int row,
+            int startColumn, int endColumn, List<String> rectangle) throws BadLocationException {
+        IRegion line = doc.getLineInformation(row);
+
+        StringBuilder builder = new StringBuilder();
+        int column = 0;
+        int cutOffset = 0;
+        int cutLength = 0;
+        
+        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), line.getLength());
+        
+        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {
+            if(column >= endColumn) {
+                break;
+            }
+            int offset = line.getOffset() + itr.index();
+            int codePoint = itr.next();
+
+            int nextColumn = ColumnUtils.getNextColumn(column, codePoint, getTabStop());
+            
+            if(nextColumn < startColumn+1) {
+                column = nextColumn;
+                continue;
+            }
+            if(cutLength == 0) { 
+                cutOffset = offset;
+            }
+            builder.appendCodePoint(codePoint);
+            cutLength += Character.charCount(codePoint);
+            column = nextColumn;
+        }
+        
+        doc.replace(cutOffset, cutLength, "");
+
+            
+        for(int i = 0; i < endColumn-column; i++) {
+            builder.append(' ');
+        }
+        
+        rectangle.add(builder.toString());
+        return cutOffset;
+    }
+
+}
index 92e3b37..305e887 100644 (file)
@@ -1,24 +1,24 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.swt.dnd.Clipboard;\r
-import org.eclipse.swt.dnd.TextTransfer;\r
-import org.eclipse.swt.dnd.Transfer;\r
-\r
-public final class KillWordExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if (!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-\r
-        int current = cursor.offset();\r
-        int next = ForwardWordExecution.getNextWordPosition(doc, current);\r
-        String word = doc.get(current, next - current);\r
-        Clipboard c = new Clipboard(window.getShell().getDisplay());\r
-        c.setContents(new String[] { word }, \r
-                new Transfer[] { TextTransfer.getInstance() });\r
-        doc.replace(current, next - current, "");\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+public final class KillWordExecution extends TextEditorExecution {
+
+    @Override
+    public void execute() throws BadLocationException {
+        if (!textEditor.isEditable()) {
+            return;
+        }
+
+        int current = cursor.offset();
+        int next = ForwardWordExecution.getNextWordPosition(doc, current);
+        String word = doc.get(current, next - current);
+        Clipboard c = new Clipboard(window.getShell().getDisplay());
+        c.setContents(new String[] { word }, 
+                new Transfer[] { TextTransfer.getInstance() });
+        doc.replace(current, next - current, "");
+    }
+}
index 60e0dc2..951c01d 100644 (file)
@@ -1,13 +1,13 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IRegion;\r
-\r
-public final class MoveBeginningOfLineExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        IRegion line = doc.getLineInformationOfOffset(cursor.offset());\r
-        cursor.move(line.getOffset());\r
-    }\r
-}\r
-\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IRegion;
+
+public final class MoveBeginningOfLineExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        IRegion line = doc.getLineInformationOfOffset(cursor.offset());
+        cursor.move(line.getOffset());
+    }
+}
+
index 6131cc2..b75cef0 100644 (file)
@@ -1,14 +1,14 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IRegion;\r
-\r
-public final class MoveEndOfLineExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        IRegion line = doc.getLineInformationOfOffset(cursor.offset());\r
-        cursor.move(line.getOffset()+line.getLength());\r
-    }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IRegion;
+
+public final class MoveEndOfLineExecution extends TextEditorExecution {
+
+    @Override
+    public void execute() throws BadLocationException {
+        IRegion line = doc.getLineInformationOfOffset(cursor.offset());
+        cursor.move(line.getOffset()+line.getLength());
+    }
+
+}
index f9de659..712d446 100644 (file)
@@ -1,19 +1,19 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.TextUtilities;\r
-\r
-public final class NewLineExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        int offset = cursor.offset();\r
-        String delim = TextUtilities.getDefaultLineDelimiter(doc);\r
-        doc.replace(offset, 0, delim);\r
-        cursor.move(offset+delim.length());\r
-    }\r
-}\r
-\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.TextUtilities;
+
+public final class NewLineExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        int offset = cursor.offset();
+        String delim = TextUtilities.getDefaultLineDelimiter(doc);
+        doc.replace(offset, 0, delim);
+        cursor.move(offset+delim.length());
+    }
+}
+
index a572e06..8e8d763 100644 (file)
@@ -1,16 +1,16 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.TextUtilities;\r
-\r
-public final class OpenLineExecution extends TextEditorExecution {\r
-\r
-    @Override\r
-    public void execute() throws Exception {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        String delim = TextUtilities.getDefaultLineDelimiter(doc);\r
-        doc.replace(cursor.offset(), 0, delim);\r
-    }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.TextUtilities;
+
+public final class OpenLineExecution extends TextEditorExecution {
+
+    @Override
+    public void execute() throws Exception {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        String delim = TextUtilities.getDefaultLineDelimiter(doc);
+        doc.replace(cursor.offset(), 0, delim);
+    }
+
+}
index cdca590..116b55d 100644 (file)
@@ -1,17 +1,17 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import java.util.List;\r
-\r
-final class RectangleStorage {\r
-    private static List<String> rectangle ;\r
-    \r
-    private RectangleStorage() {}\r
-    \r
-    static void setRectangle(List<String> rect) {\r
-        rectangle = rect;\r
-    }\r
-    \r
-    static List<String> getRectangle() {\r
-        return rectangle;\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import java.util.List;
+
+final class RectangleStorage {
+    private static List<String> rectangle ;
+    
+    private RectangleStorage() {}
+    
+    static void setRectangle(List<String> rect) {
+        rectangle = rect;
+    }
+    
+    static List<String> getRectangle() {
+        return rectangle;
+    }
+}
index cf1fc8c..fd13cc7 100644 (file)
@@ -1,83 +1,83 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.ITextOperationTarget;\r
-import org.eclipse.jface.text.ITextSelection;\r
-import org.eclipse.jface.text.ITextViewer;\r
-import org.eclipse.jface.text.ITextViewerExtension;\r
-import org.eclipse.ui.IEditorPart;\r
-import org.eclipse.ui.IWorkbenchWindow;\r
-import org.eclipse.ui.texteditor.ITextEditor;\r
-\r
-abstract class TextEditorExecution implements Execution {\r
-    protected IWorkbenchWindow window;\r
-    protected ITextEditor textEditor;\r
-    protected ITextViewer textViewer;\r
-    protected Cursor cursor;\r
-    protected IDocument doc;\r
-    \r
-    @Override\r
-    public boolean init(IWorkbenchWindow window) {\r
-        this.window = window;\r
-\r
-        IEditorPart editor = window.getActivePage().getActiveEditor();\r
-        if (editor instanceof ITextEditor) {\r
-            textEditor = (ITextEditor) editor;\r
-        } else {\r
-            textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);\r
-        }\r
-        if(textEditor == null) {\r
-            return false;\r
-        }\r
-        \r
-        doc = textEditor.getDocumentProvider().getDocument(\r
-                textEditor.getEditorInput());\r
-\r
-        ITextOperationTarget target =\r
-            (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);\r
-        if(!(target instanceof ITextViewer)) {\r
-            return false;\r
-        }\r
-        textViewer = (ITextViewer) target;\r
-        \r
-        cursor = new Cursor(textEditor, textViewer);\r
-        \r
-        return true;\r
-    }\r
-    \r
-    protected ITextSelection getSelection(boolean fallbackToMark) {\r
-        ITextSelection selection =\r
-            (ITextSelection) textEditor.getSelectionProvider().getSelection();\r
-        \r
-        if(!fallbackToMark && selection.getLength() != 0) {\r
-            return selection;\r
-        }\r
-        \r
-        IEditorPart editor = window.getActivePage().getActiveEditor();\r
-        ITextOperationTarget target =\r
-            (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);\r
-        \r
-        if(!(target instanceof ITextViewerExtension)) {\r
-            return selection;\r
-        }\r
-        \r
-        ITextViewerExtension viewerEx = (ITextViewerExtension) target;\r
-            \r
-        int mark = viewerEx.getMark();\r
-        \r
-        if(mark == -1) {\r
-            return selection;\r
-        }\r
-        \r
-        int current = selection.getOffset();\r
-        \r
-        int start = (mark < current) ? mark : current;\r
-        textViewer.setSelectedRange(start, Math.abs(mark - current));\r
-        \r
-        return (ITextSelection) textEditor.getSelectionProvider().getSelection();\r
-    }\r
-\r
-    protected final int getTabStop() {\r
-        return textViewer.getTextWidget().getTabs();\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.ITextOperationTarget;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.ITextViewerExtension;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+abstract class TextEditorExecution implements Execution {
+    protected IWorkbenchWindow window;
+    protected ITextEditor textEditor;
+    protected ITextViewer textViewer;
+    protected Cursor cursor;
+    protected IDocument doc;
+    
+    @Override
+    public boolean init(IWorkbenchWindow window) {
+        this.window = window;
+
+        IEditorPart editor = window.getActivePage().getActiveEditor();
+        if (editor instanceof ITextEditor) {
+            textEditor = (ITextEditor) editor;
+        } else {
+            textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
+        }
+        if(textEditor == null) {
+            return false;
+        }
+        
+        doc = textEditor.getDocumentProvider().getDocument(
+                textEditor.getEditorInput());
+
+        ITextOperationTarget target =
+            (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);
+        if(!(target instanceof ITextViewer)) {
+            return false;
+        }
+        textViewer = (ITextViewer) target;
+        
+        cursor = new Cursor(textEditor, textViewer);
+        
+        return true;
+    }
+    
+    protected ITextSelection getSelection(boolean fallbackToMark) {
+        ITextSelection selection =
+            (ITextSelection) textEditor.getSelectionProvider().getSelection();
+        
+        if(!fallbackToMark && selection.getLength() != 0) {
+            return selection;
+        }
+        
+        IEditorPart editor = window.getActivePage().getActiveEditor();
+        ITextOperationTarget target =
+            (ITextOperationTarget)editor.getAdapter(ITextOperationTarget.class);
+        
+        if(!(target instanceof ITextViewerExtension)) {
+            return selection;
+        }
+        
+        ITextViewerExtension viewerEx = (ITextViewerExtension) target;
+            
+        int mark = viewerEx.getMark();
+        
+        if(mark == -1) {
+            return selection;
+        }
+        
+        int current = selection.getOffset();
+        
+        int start = (mark < current) ? mark : current;
+        textViewer.setSelectedRange(start, Math.abs(mark - current));
+        
+        return (ITextSelection) textEditor.getSelectionProvider().getSelection();
+    }
+
+    protected final int getTabStop() {
+        return textViewer.getTextWidget().getTabs();
+    }
+}
index 47c9b59..7c16256 100644 (file)
@@ -1,52 +1,52 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IRegion;\r
-\r
-public final class TransposeCharsExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-\r
-        int current = cursor.offset();\r
-        if(current == 0) {\r
-            // beginning of document\r
-            return;\r
-        }\r
-\r
-        int linePos = doc.getLineOfOffset(current);\r
-        IRegion line = doc.getLineInformation(linePos);\r
-        \r
-        DocumentCharSequence seq = new DocumentCharSequence(doc);\r
-\r
-        if(line.getOffset() + line.getLength() == current) {\r
-            // if end of line, adjust current position\r
-            current = (line.getOffset() == current)\r
-                    ? current - doc.getLineDelimiter(linePos-1).length() \r
-                    : seq.previousCodePointIndex(current);\r
-            linePos = doc.getLineOfOffset(current);\r
-            line = doc.getLineInformation(linePos);\r
-        }\r
-        if(current == 0) {\r
-            // beginning of document again\r
-            return;\r
-        }\r
-\r
-        int nextIndex = seq.nextCodePointIndex(current);\r
-        String forwardChars = (line.getOffset() + line.getLength() == current) \r
-        ? doc.getLineDelimiter(linePos) : doc.get(current, nextIndex - current);\r
-            \r
-        int prevIndex = seq.previousCodePointIndex(current);\r
-        String backwardChars = (line.getOffset() == current) \r
-            ? doc.getLineDelimiter(linePos-1) : doc.get(prevIndex, current-prevIndex);\r
-\r
-        doc.replace(current-backwardChars.length(), \r
-                backwardChars.length() + forwardChars.length(),\r
-                forwardChars+backwardChars);\r
-    }\r
-    \r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IRegion;
+
+public final class TransposeCharsExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+
+        int current = cursor.offset();
+        if(current == 0) {
+            // beginning of document
+            return;
+        }
+
+        int linePos = doc.getLineOfOffset(current);
+        IRegion line = doc.getLineInformation(linePos);
+        
+        DocumentCharSequence seq = new DocumentCharSequence(doc);
+
+        if(line.getOffset() + line.getLength() == current) {
+            // if end of line, adjust current position
+            current = (line.getOffset() == current)
+                    ? current - doc.getLineDelimiter(linePos-1).length() 
+                    : seq.previousCodePointIndex(current);
+            linePos = doc.getLineOfOffset(current);
+            line = doc.getLineInformation(linePos);
+        }
+        if(current == 0) {
+            // beginning of document again
+            return;
+        }
+
+        int nextIndex = seq.nextCodePointIndex(current);
+        String forwardChars = (line.getOffset() + line.getLength() == current) 
+        ? doc.getLineDelimiter(linePos) : doc.get(current, nextIndex - current);
+            
+        int prevIndex = seq.previousCodePointIndex(current);
+        String backwardChars = (line.getOffset() == current) 
+            ? doc.getLineDelimiter(linePos-1) : doc.get(prevIndex, current-prevIndex);
+
+        doc.replace(current-backwardChars.length(), 
+                backwardChars.length() + forwardChars.length(),
+                forwardChars+backwardChars);
+    }
+    
+}
index 2b57aff..8ca7f6c 100644 (file)
@@ -1,31 +1,31 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-\r
-public final class TransposeWordsExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-\r
-        int current = cursor.offset();\r
-        int previousBegin = BackwardWordExecution.getPreviousWordPosition(doc, current);\r
-        int previousEnd = ForwardWordExecution.getNextWordPosition(doc, previousBegin);\r
-        int nextEnd = ForwardWordExecution.getNextWordPosition(doc, current);\r
-        int nextBegin = BackwardWordExecution.getPreviousWordPosition(doc, nextEnd);\r
-        \r
-        if(nextBegin <= previousEnd) {\r
-            return;\r
-        }\r
-        \r
-        String previous = doc.get(previousBegin, previousEnd-previousBegin);\r
-        String simbols = doc.get(previousEnd, nextBegin-previousEnd);\r
-        String next = doc.get(nextBegin, nextEnd-nextBegin);\r
-\r
-        doc.replace(previousBegin,\r
-                nextEnd-previousBegin,\r
-                next+simbols+previous);\r
-        \r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import org.eclipse.jface.text.BadLocationException;
+
+public final class TransposeWordsExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+
+        int current = cursor.offset();
+        int previousBegin = BackwardWordExecution.getPreviousWordPosition(doc, current);
+        int previousEnd = ForwardWordExecution.getNextWordPosition(doc, previousBegin);
+        int nextEnd = ForwardWordExecution.getNextWordPosition(doc, current);
+        int nextBegin = BackwardWordExecution.getPreviousWordPosition(doc, nextEnd);
+        
+        if(nextBegin <= previousEnd) {
+            return;
+        }
+        
+        String previous = doc.get(previousBegin, previousEnd-previousBegin);
+        String simbols = doc.get(previousEnd, nextBegin-previousEnd);
+        String next = doc.get(nextBegin, nextEnd-nextBegin);
+
+        doc.replace(previousBegin,
+                nextEnd-previousBegin,
+                next+simbols+previous);
+        
+    }
+}
index d1744fc..b181f1a 100644 (file)
@@ -1,10 +1,10 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-\r
-public final class UpcaseWordExecution extends ConvertWordExecution {\r
-    @Override\r
-    protected String convert(String word) {\r
-        return word.toUpperCase();\r
-    }\r
-}\r
-\r
+package jp.sourceforge.moreemacs.handlers;
+
+
+public final class UpcaseWordExecution extends ConvertWordExecution {
+    @Override
+    protected String convert(String word) {
+        return word.toUpperCase();
+    }
+}
+
index 5149b8f..6564ae4 100644 (file)
@@ -1,96 +1,96 @@
-package jp.sourceforge.moreemacs.handlers;\r
-\r
-import java.util.List;\r
-\r
-import jp.sourceforge.moreemacs.utils.CodePointIterator;\r
-import jp.sourceforge.moreemacs.utils.ColumnUtils;\r
-import jp.sourceforge.moreemacs.utils.DocumentCharSequence;\r
-import jp.sourceforge.moreemacs.utils.DocumentTransaction;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IRegion;\r
-import org.eclipse.jface.text.TextUtilities;\r
-\r
-public final class YankRectangleExecution extends TextEditorExecution {\r
-    @Override\r
-    public void execute() throws BadLocationException {\r
-        if(!textEditor.isEditable()) {\r
-            return;\r
-        }\r
-        \r
-        List<String> rectangle = RectangleStorage.getRectangle();\r
-        if(rectangle == null) {\r
-            return;\r
-        }\r
-        \r
-        int current = cursor.offset();\r
-        int row = doc.getLineOfOffset(current);\r
-        int column = ColumnUtils.getColumn(doc, current, getTabStop());\r
-        \r
-\r
-        int offset = cursor.offset();\r
-        DocumentTransaction transaction = new DocumentTransaction(doc); \r
-        transaction.begin();\r
-        try {\r
-            ensureLines(doc, row + rectangle.size());\r
-            offset = yankRectangle(doc, row, column, rectangle);\r
-        } finally {\r
-            transaction.end();\r
-        }\r
-        cursor.move(offset);\r
-    }\r
-    \r
-    private void ensureLines(IDocument doc, int lines) throws BadLocationException {\r
-        int n = lines - doc.getNumberOfLines();\r
-        if(n <= 0) {\r
-            return;\r
-        }\r
-\r
-        StringBuilder builder = new StringBuilder();\r
-        String delim = TextUtilities.getDefaultLineDelimiter(doc);\r
-        for(int i = 0; i < n; i++) {\r
-            builder.append(delim);\r
-        }\r
-        doc.replace(doc.getLength(), 0, builder.toString());\r
-        \r
-    }\r
-\r
-    private int yankRectangle(IDocument doc,\r
-            int row, int column, List<String> rectangle)\r
-            throws BadLocationException {\r
-        int offset = cursor.offset();\r
-        for(int i = 0; i < rectangle.size(); i++) {\r
-            offset = yankString(doc, row+i, column, rectangle.get(i));\r
-        }\r
-        return offset;\r
-    }\r
-\r
-    private int yankString(IDocument doc, int row, int column, String str)\r
-    throws BadLocationException\r
-    {\r
-        IRegion line = doc.getLineInformation(row);\r
-        int col = 0;\r
-\r
-        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), line.getLength());\r
-        \r
-        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {\r
-            int offset = line.getOffset() + itr.index();\r
-            int codePoint = itr.next();\r
-            if(col >= column) {\r
-                doc.replace(offset, 0, str);\r
-                return offset+str.length();\r
-            }\r
-            col = ColumnUtils.getNextColumn(col, codePoint, getTabStop());\r
-        }\r
-        \r
-\r
-        StringBuilder builder = new StringBuilder();\r
-        for(int i = 0; i < column-col; i++) {\r
-            builder.append(" ");\r
-        }\r
-        builder.append(str);\r
-        doc.replace(line.getOffset()+line.getLength(), 0, builder.toString());\r
-        return line.getOffset()+line.getLength()+builder.length();\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.handlers;
+
+import java.util.List;
+
+import jp.sourceforge.moreemacs.utils.CodePointIterator;
+import jp.sourceforge.moreemacs.utils.ColumnUtils;
+import jp.sourceforge.moreemacs.utils.DocumentCharSequence;
+import jp.sourceforge.moreemacs.utils.DocumentTransaction;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.TextUtilities;
+
+public final class YankRectangleExecution extends TextEditorExecution {
+    @Override
+    public void execute() throws BadLocationException {
+        if(!textEditor.isEditable()) {
+            return;
+        }
+        
+        List<String> rectangle = RectangleStorage.getRectangle();
+        if(rectangle == null) {
+            return;
+        }
+        
+        int current = cursor.offset();
+        int row = doc.getLineOfOffset(current);
+        int column = ColumnUtils.getColumn(doc, current, getTabStop());
+        
+
+        int offset = cursor.offset();
+        DocumentTransaction transaction = new DocumentTransaction(doc); 
+        transaction.begin();
+        try {
+            ensureLines(doc, row + rectangle.size());
+            offset = yankRectangle(doc, row, column, rectangle);
+        } finally {
+            transaction.end();
+        }
+        cursor.move(offset);
+    }
+    
+    private void ensureLines(IDocument doc, int lines) throws BadLocationException {
+        int n = lines - doc.getNumberOfLines();
+        if(n <= 0) {
+            return;
+        }
+
+        StringBuilder builder = new StringBuilder();
+        String delim = TextUtilities.getDefaultLineDelimiter(doc);
+        for(int i = 0; i < n; i++) {
+            builder.append(delim);
+        }
+        doc.replace(doc.getLength(), 0, builder.toString());
+        
+    }
+
+    private int yankRectangle(IDocument doc,
+            int row, int column, List<String> rectangle)
+            throws BadLocationException {
+        int offset = cursor.offset();
+        for(int i = 0; i < rectangle.size(); i++) {
+            offset = yankString(doc, row+i, column, rectangle.get(i));
+        }
+        return offset;
+    }
+
+    private int yankString(IDocument doc, int row, int column, String str)
+    throws BadLocationException
+    {
+        IRegion line = doc.getLineInformation(row);
+        int col = 0;
+
+        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), line.getLength());
+        
+        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {
+            int offset = line.getOffset() + itr.index();
+            int codePoint = itr.next();
+            if(col >= column) {
+                doc.replace(offset, 0, str);
+                return offset+str.length();
+            }
+            col = ColumnUtils.getNextColumn(col, codePoint, getTabStop());
+        }
+        
+
+        StringBuilder builder = new StringBuilder();
+        for(int i = 0; i < column-col; i++) {
+            builder.append(" ");
+        }
+        builder.append(str);
+        doc.replace(line.getOffset()+line.getLength(), 0, builder.toString());
+        return line.getOffset()+line.getLength()+builder.length();
+    }
+}
index fe3db82..14e6f74 100644 (file)
@@ -1,44 +1,44 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
-import java.util.Locale;\r
-\r
-import com.ibm.icu.lang.UCharacter;\r
-import com.ibm.icu.lang.UProperty;\r
-\r
-public final class CharacterUtils {\r
-    private CharacterUtils() {}\r
-\r
-    private static List<String> EAST_ASIAN_LANGS =\r
-        Arrays.asList("ja", "vi", "kr", "zh");\r
-\r
-    public static int getWidth(int codePoint) {\r
-        return getWidth(codePoint, Locale.getDefault());\r
-    }\r
-\r
-    public static int getWidth(int codePoint, Locale locale) {\r
-        if(locale == null) {\r
-            throw new NullPointerException("locale is null");\r
-        }\r
-        int value = UCharacter.getIntPropertyValue(codePoint, \r
-                UProperty.EAST_ASIAN_WIDTH);\r
-        switch(value) {\r
-        case UCharacter.EastAsianWidth.NARROW:\r
-        case UCharacter.EastAsianWidth.NEUTRAL:\r
-        case UCharacter.EastAsianWidth.HALFWIDTH:\r
-            return 1;\r
-        case UCharacter.EastAsianWidth.FULLWIDTH:\r
-        case UCharacter.EastAsianWidth.WIDE:\r
-            return 2;\r
-        case UCharacter.EastAsianWidth.AMBIGUOUS:\r
-            if(EAST_ASIAN_LANGS.contains(locale.getLanguage())) {\r
-                return 2;\r
-            } else {\r
-                return 1;\r
-            }\r
-        default:\r
-            return 1;\r
-        }\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+import com.ibm.icu.lang.UCharacter;
+import com.ibm.icu.lang.UProperty;
+
+public final class CharacterUtils {
+    private CharacterUtils() {}
+
+    private static List<String> EAST_ASIAN_LANGS =
+        Arrays.asList("ja", "vi", "kr", "zh");
+
+    public static int getWidth(int codePoint) {
+        return getWidth(codePoint, Locale.getDefault());
+    }
+
+    public static int getWidth(int codePoint, Locale locale) {
+        if(locale == null) {
+            throw new NullPointerException("locale is null");
+        }
+        int value = UCharacter.getIntPropertyValue(codePoint, 
+                UProperty.EAST_ASIAN_WIDTH);
+        switch(value) {
+        case UCharacter.EastAsianWidth.NARROW:
+        case UCharacter.EastAsianWidth.NEUTRAL:
+        case UCharacter.EastAsianWidth.HALFWIDTH:
+            return 1;
+        case UCharacter.EastAsianWidth.FULLWIDTH:
+        case UCharacter.EastAsianWidth.WIDE:
+            return 2;
+        case UCharacter.EastAsianWidth.AMBIGUOUS:
+            if(EAST_ASIAN_LANGS.contains(locale.getLanguage())) {
+                return 2;
+            } else {
+                return 1;
+            }
+        default:
+            return 1;
+        }
+    }
+}
index 0d3ed8b..0e12a1a 100644 (file)
@@ -1,69 +1,69 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import java.util.Iterator;\r
-\r
-public final class CodePointIterator implements Iterator<Integer> {\r
-    private final CharSequence seq;\r
-    private int index;\r
-\r
-    public CodePointIterator(CharSequence seq) {\r
-        this(seq, 0);\r
-    }\r
-    \r
-    public CodePointIterator(CharSequence seq, int index) {\r
-        if(seq == null) {\r
-            throw new NullPointerException("seq is null");\r
-        }\r
-\r
-        this.seq = seq;\r
-        setIndex(index);\r
-    }\r
-    \r
-    public void setIndex(int index) {\r
-        if(index < 0 || index > seq.length()) {\r
-            throw new IndexOutOfBoundsException();\r
-        }\r
-        this.index = index;\r
-    }\r
-    \r
-    @Override\r
-    public boolean hasNext() {       \r
-        return index < seq.length();       \r
-    }\r
-    \r
-    public boolean hasPrevious() {       \r
-        return index > 0;\r
-    }\r
-    \r
-    public int index() {\r
-        return index;\r
-    }\r
-    \r
-    @Override\r
-    public Integer next() {      \r
-        int codePoint = Character.codePointAt(seq, index);        \r
-        index += Character.charCount(codePoint);     \r
-        return codePoint;        \r
-    }\r
-\r
-    public Integer previous() {      \r
-        int codePoint = Character.codePointBefore(seq, index);        \r
-        index -= Character.charCount(codePoint);     \r
-        return codePoint;        \r
-    }\r
-    \r
-    @Override\r
-    public void remove() {\r
-        throw new UnsupportedOperationException("unsupported");\r
-    }\r
-\r
-    public static Iterable<Integer> each(final CharSequence seq) {\r
-        return new Iterable<Integer>() {\r
-            @Override\r
-            public Iterator<Integer> iterator() {\r
-                return new CodePointIterator(seq);\r
-            }\r
-            \r
-        };\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import java.util.Iterator;
+
+public final class CodePointIterator implements Iterator<Integer> {
+    private final CharSequence seq;
+    private int index;
+
+    public CodePointIterator(CharSequence seq) {
+        this(seq, 0);
+    }
+    
+    public CodePointIterator(CharSequence seq, int index) {
+        if(seq == null) {
+            throw new NullPointerException("seq is null");
+        }
+
+        this.seq = seq;
+        setIndex(index);
+    }
+    
+    public void setIndex(int index) {
+        if(index < 0 || index > seq.length()) {
+            throw new IndexOutOfBoundsException();
+        }
+        this.index = index;
+    }
+    
+    @Override
+    public boolean hasNext() {       
+        return index < seq.length();       
+    }
+    
+    public boolean hasPrevious() {       
+        return index > 0;
+    }
+    
+    public int index() {
+        return index;
+    }
+    
+    @Override
+    public Integer next() {      
+        int codePoint = Character.codePointAt(seq, index);        
+        index += Character.charCount(codePoint);     
+        return codePoint;        
+    }
+
+    public Integer previous() {      
+        int codePoint = Character.codePointBefore(seq, index);        
+        index -= Character.charCount(codePoint);     
+        return codePoint;        
+    }
+    
+    @Override
+    public void remove() {
+        throw new UnsupportedOperationException("unsupported");
+    }
+
+    public static Iterable<Integer> each(final CharSequence seq) {
+        return new Iterable<Integer>() {
+            @Override
+            public Iterator<Integer> iterator() {
+                return new CodePointIterator(seq);
+            }
+            
+        };
+    }
+}
index 8ad4470..8aa62dd 100644 (file)
@@ -1,31 +1,31 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IRegion;\r
-\r
-public final class ColumnUtils {\r
-    private ColumnUtils() {}\r
-    \r
-    public static int getColumn(IDocument doc, int offset, int tabStop)\r
-    throws BadLocationException {\r
-        IRegion line = doc.getLineInformationOfOffset(offset);\r
-        int column = 0;\r
-        \r
-        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), offset - line.getOffset());\r
-        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {\r
-            int codePoint = itr.next();\r
-            column = getNextColumn(column, codePoint, tabStop);\r
-        }\r
-        \r
-        return column;\r
-    }\r
-    \r
-    public static int getNextColumn(int column, int codePoint, int tabStop) {\r
-        if(codePoint == '\t') {\r
-            return column - (column%tabStop) + tabStop;\r
-        } else {\r
-            return column + CharacterUtils.getWidth(codePoint);\r
-        }\r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+
+public final class ColumnUtils {
+    private ColumnUtils() {}
+    
+    public static int getColumn(IDocument doc, int offset, int tabStop)
+    throws BadLocationException {
+        IRegion line = doc.getLineInformationOfOffset(offset);
+        int column = 0;
+        
+        CharSequence seq = new DocumentCharSequence(doc, line.getOffset(), offset - line.getOffset());
+        for(CodePointIterator itr = new CodePointIterator(seq); itr.hasNext(); ) {
+            int codePoint = itr.next();
+            column = getNextColumn(column, codePoint, tabStop);
+        }
+        
+        return column;
+    }
+    
+    public static int getNextColumn(int column, int codePoint, int tabStop) {
+        if(codePoint == '\t') {
+            return column - (column%tabStop) + tabStop;
+        } else {
+            return column + CharacterUtils.getWidth(codePoint);
+        }
+    }
+}
index 813b791..ccd4d9e 100644 (file)
@@ -1,64 +1,64 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import org.eclipse.jface.text.BadLocationException;\r
-import org.eclipse.jface.text.IDocument;\r
-\r
-public final class DocumentCharSequence implements CharSequence {\r
-    private final IDocument doc;\r
-    private final int offset;\r
-    private final int length;\r
-\r
-    public DocumentCharSequence(IDocument doc) {\r
-        this(doc, 0, doc.getLength());\r
-    }\r
-    \r
-    public DocumentCharSequence(IDocument doc, int offset, int length) {\r
-        if(doc == null) {\r
-            throw new NullPointerException("doc is null");\r
-        }\r
-\r
-        this.doc = doc;\r
-        this.offset = offset;\r
-        this.length = length;\r
-\r
-        validate(offset, length, doc.getLength());\r
-    }\r
-    \r
-    private static void validate(int offset, int length, int capacity) {\r
-        if(offset < 0 || length < 0 || offset+length > capacity) {\r
-            throw new IndexOutOfBoundsException();\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public char charAt(int index) {\r
-        if(index < 0 || index >= length) {\r
-            throw new IndexOutOfBoundsException();\r
-        }\r
-        try {\r
-            return doc.getChar(offset + index);\r
-        } catch (BadLocationException e) {\r
-            throw new IndexOutOfBoundsException(e.getMessage());\r
-        }\r
-    }\r
-\r
-    @Override\r
-    public int length() {\r
-        return length;\r
-    }\r
-\r
-    @Override\r
-    public CharSequence subSequence(int start, int end) {\r
-        validate(start, end-start, length);\r
-        return new DocumentCharSequence(doc, offset+start, end - start);\r
-    }\r
-\r
-    public int nextCodePointIndex(int index) {\r
-        int codePoint = Character.codePointAt(this, index);        \r
-        return index + Character.charCount(codePoint);     \r
-    }\r
-    public int previousCodePointIndex(int index) {\r
-        int codePoint = Character.codePointBefore(this, index);        \r
-        return index - Character.charCount(codePoint);     \r
-    }\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+
+public final class DocumentCharSequence implements CharSequence {
+    private final IDocument doc;
+    private final int offset;
+    private final int length;
+
+    public DocumentCharSequence(IDocument doc) {
+        this(doc, 0, doc.getLength());
+    }
+    
+    public DocumentCharSequence(IDocument doc, int offset, int length) {
+        if(doc == null) {
+            throw new NullPointerException("doc is null");
+        }
+
+        this.doc = doc;
+        this.offset = offset;
+        this.length = length;
+
+        validate(offset, length, doc.getLength());
+    }
+    
+    private static void validate(int offset, int length, int capacity) {
+        if(offset < 0 || length < 0 || offset+length > capacity) {
+            throw new IndexOutOfBoundsException();
+        }
+    }
+
+    @Override
+    public char charAt(int index) {
+        if(index < 0 || index >= length) {
+            throw new IndexOutOfBoundsException();
+        }
+        try {
+            return doc.getChar(offset + index);
+        } catch (BadLocationException e) {
+            throw new IndexOutOfBoundsException(e.getMessage());
+        }
+    }
+
+    @Override
+    public int length() {
+        return length;
+    }
+
+    @Override
+    public CharSequence subSequence(int start, int end) {
+        validate(start, end-start, length);
+        return new DocumentCharSequence(doc, offset+start, end - start);
+    }
+
+    public int nextCodePointIndex(int index) {
+        int codePoint = Character.codePointAt(this, index);        
+        return index + Character.charCount(codePoint);     
+    }
+    public int previousCodePointIndex(int index) {
+        int codePoint = Character.codePointBefore(this, index);        
+        return index - Character.charCount(codePoint);     
+    }
+}
index 6bfbb47..97d6e67 100644 (file)
@@ -1,47 +1,47 @@
-package jp.sourceforge.moreemacs.utils;\r
-\r
-import org.eclipse.jface.text.DocumentRewriteSession;\r
-import org.eclipse.jface.text.DocumentRewriteSessionType;\r
-import org.eclipse.jface.text.IDocument;\r
-import org.eclipse.jface.text.IDocumentExtension4;\r
-\r
-public final class DocumentTransaction {\r
-    private IDocumentExtension4 sessionManager;\r
-    private DocumentRewriteSession session;\r
-    \r
-    public DocumentTransaction(IDocument doc) {\r
-        if(doc instanceof IDocumentExtension4) {\r
-            sessionManager = (IDocumentExtension4)doc;\r
-        }\r
-    }\r
-    \r
-    public boolean isAvailable() {\r
-        return sessionManager != null;\r
-    }\r
-    \r
-    public void begin() {\r
-       begin(DocumentRewriteSessionType.UNRESTRICTED_SMALL);\r
-    }\r
-    \r
-    public void begin(DocumentRewriteSessionType type) {\r
-        if(!isAvailable()) {\r
-            return;\r
-        }\r
-        if(session != null) {\r
-            throw new IllegalStateException("session already started");\r
-        }\r
-        session = sessionManager.startRewriteSession(type);\r
-    }\r
-    \r
-    public void end() {\r
-        if(!isAvailable()) {\r
-            return;\r
-        }\r
-        if(session == null) {\r
-            throw new IllegalStateException("session is not started");\r
-        }\r
-        sessionManager.stopRewriteSession(session);\r
-        session = null;\r
-    }\r
-\r
-}\r
+package jp.sourceforge.moreemacs.utils;
+
+import org.eclipse.jface.text.DocumentRewriteSession;
+import org.eclipse.jface.text.DocumentRewriteSessionType;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentExtension4;
+
+public final class DocumentTransaction {
+    private IDocumentExtension4 sessionManager;
+    private DocumentRewriteSession session;
+    
+    public DocumentTransaction(IDocument doc) {
+        if(doc instanceof IDocumentExtension4) {
+            sessionManager = (IDocumentExtension4)doc;
+        }
+    }
+    
+    public boolean isAvailable() {
+        return sessionManager != null;
+    }
+    
+    public void begin() {
+        begin(DocumentRewriteSessionType.UNRESTRICTED_SMALL);
+    }
+    
+    public void begin(DocumentRewriteSessionType type) {
+        if(!isAvailable()) {
+            return;
+        }
+        if(session != null) {
+            throw new IllegalStateException("session already started");
+        }
+        session = sessionManager.startRewriteSession(type);
+    }
+    
+    public void end() {
+        if(!isAvailable()) {
+            return;
+        }
+        if(session == null) {
+            throw new IllegalStateException("session is not started");
+        }
+        sessionManager.stopRewriteSession(session);
+        session = null;
+    }
+
+}