Skip to content

Commit

Permalink
Remove NO_KEYMAP (use null) and fix plugins
Browse files Browse the repository at this point in the history
Plugins needed a bit of extra work to support counts before operator
mappings.

Work for #415.
  • Loading branch information
albertdev committed May 14, 2014
1 parent f5a1731 commit 5998a05
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 33 deletions.
Expand Up @@ -12,7 +12,6 @@
*/
public final class KeyMapResolver {

public static final String NO_KEYMAP = KeyMapResolver.class.getCanonicalName()+".NO_KEYMAP";
/** Operator-pending keymap ID. */
public static final String OMAP_NAME = KeyMapResolver.class.getCanonicalName()+".OMAP";

Expand Down
Expand Up @@ -36,7 +36,7 @@ public State<String> union(State<String> other) {

public Transition<String> press(KeyStroke key) {
if (key.getCharacter() == '"') {
return new SimpleTransition<String>(KeyMapResolver.NO_KEYMAP, registerKeyMapState);
return new SimpleTransition<String>(null, registerKeyMapState);
}
return wrapped.press(key);
}
Expand Down
Expand Up @@ -3,6 +3,7 @@
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.convertKeyStroke;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafCtrlBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.prefixedOperatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
Expand All @@ -13,6 +14,7 @@
import net.sourceforge.vrapper.eclipse.commands.ListTabsCommand;
import net.sourceforge.vrapper.eclipse.commands.TabNewCommand;
import net.sourceforge.vrapper.eclipse.commands.ToggleFoldingCommand;
import net.sourceforge.vrapper.keymap.EmptyState;
import net.sourceforge.vrapper.keymap.SpecialKey;
import net.sourceforge.vrapper.keymap.State;
import net.sourceforge.vrapper.keymap.StateUtils;
Expand All @@ -21,7 +23,6 @@
import net.sourceforge.vrapper.vim.commands.DeselectAllCommand;
import net.sourceforge.vrapper.vim.commands.LeaveVisualModeCommand;
import net.sourceforge.vrapper.vim.commands.TextObject;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;

/**
* Provides eclipse-specific bindings for command based modes.
Expand Down Expand Up @@ -69,7 +70,7 @@ protected State<Command> visualModeBindings() {

@Override
protected State<String> visualModeKeymap() {
return state(leafBind('g', KeyMapResolver.NO_KEYMAP));
return EmptyState.getInstance();
}

@Override
Expand Down Expand Up @@ -109,12 +110,9 @@ protected State<Command> normalModeBindings() {
@Override
protected State<String> normalModeKeymap() {
State<String> normalModeKeymap = state(
leafBind('z', KeyMapResolver.NO_KEYMAP),
transitionBind('g',
leafBind('t', KeyMapResolver.NO_KEYMAP),
leafBind('T', KeyMapResolver.NO_KEYMAP),
leafBind('u', KeyMapResolver.OMAP_NAME),
leafBind('U', KeyMapResolver.OMAP_NAME)));
operatorKeyMap('u'),
operatorKeyMap('U')));
return normalModeKeymap;
}

Expand Down
Expand Up @@ -5,6 +5,7 @@
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafCtrlBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.prefixedOperatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
import static net.sourceforge.vrapper.vim.commands.ConstructorWrappers.seq;
Expand All @@ -17,7 +18,6 @@
import net.sourceforge.vrapper.vim.commands.LeaveVisualModeCommand;
import net.sourceforge.vrapper.vim.commands.SetMarkCommand;
import net.sourceforge.vrapper.vim.commands.TextObject;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;

public class CdtSpecificStateProvider extends AbstractEclipseSpecificStateProvider {

Expand Down Expand Up @@ -48,13 +48,13 @@ protected State<Command> normalModeBindings() {
prefixedOperatorCmds('g', 'c', editCAndDeselect("toggle.comment"), textObjects),
operatorCmds('=', editCAndDeselect("indent"), textObjects));
}

@Override
protected State<String> normalModeKeymap() {
@SuppressWarnings("unchecked")
State<String> state = state(
transitionBind('g', leafBind('c', KeyMapResolver.OMAP_NAME)),
leafBind('=', KeyMapResolver.OMAP_NAME));
transitionBind('g', operatorKeyMap('c')),
operatorKeyMap('='));
return state;
}

Expand Down
Expand Up @@ -4,6 +4,7 @@
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafCtrlBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.prefixedOperatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
Expand All @@ -17,7 +18,6 @@
import net.sourceforge.vrapper.vim.commands.LeaveVisualModeCommand;
import net.sourceforge.vrapper.vim.commands.SetMarkCommand;
import net.sourceforge.vrapper.vim.commands.TextObject;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;

public class JdtSpecificStateProvider extends AbstractEclipseSpecificStateProvider {

Expand All @@ -30,11 +30,11 @@ private static State<Command> getGSomethingBindings() {
leafBind('m', editJava("source.quickMenu")), // gs/gS should be taken by swap plug-in
leafBind('R', editJava("rename.element")));
}

public JdtSpecificStateProvider() {
addFormatCommands(editJava("format"));
}

@Override
@SuppressWarnings("unchecked")
protected State<Command> normalModeBindings() {
Expand All @@ -51,11 +51,11 @@ protected State<Command> normalModeBindings() {
protected State<String> normalModeKeymap() {
@SuppressWarnings("unchecked")
State<String> state = state(
transitionBind('g', leafBind('c', KeyMapResolver.OMAP_NAME)),
leafBind('=', KeyMapResolver.OMAP_NAME));
transitionBind('g', operatorKeyMap('c')),
operatorKeyMap('='));
return state;
}

@Override
@SuppressWarnings("unchecked")
protected State<Command> visualModeBindings() {
Expand Down
Expand Up @@ -3,6 +3,7 @@
import static net.sourceforge.vrapper.keymap.StateUtils.union;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafCtrlBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.prefixedOperatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
Expand All @@ -16,7 +17,6 @@
import net.sourceforge.vrapper.vim.commands.LeaveVisualModeCommand;
import net.sourceforge.vrapper.vim.commands.SetMarkCommand;
import net.sourceforge.vrapper.vim.commands.TextObject;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;

public class PyDevSpecificStateProvider extends AbstractEclipseSpecificStateProvider {

Expand All @@ -34,21 +34,21 @@ protected State<Command> normalModeBindings() {
State<TextObject> textObjects = textObjectProvider.textObjects();
return union(
state(
leafCtrlBind(']', gotoDecl()),
transitionBind('g',
leafBind('d', gotoDecl()),
leafBind('D', gotoDecl()),
leafBind('R', (Command)new EclipseCommand("org.python.pydev.refactoring.ui.actions.RenameCommand")))
leafCtrlBind(']', gotoDecl()),
transitionBind('g',
leafBind('d', gotoDecl()),
leafBind('D', gotoDecl()),
leafBind('R', (Command)new EclipseCommand("org.python.pydev.refactoring.ui.actions.RenameCommand")))
),
prefixedOperatorCmds('g', 'c', actionAndDeselect("togglecomment"), textObjects)
);
}

@SuppressWarnings("unchecked")
@Override
protected State<String> normalModeKeymap() {
return state(
transitionBind('g', leafBind('c', KeyMapResolver.OMAP_NAME)));
transitionBind('g', operatorKeyMap('c')));
}

@Override
Expand Down
Expand Up @@ -4,6 +4,7 @@
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafState;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorCmds;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionState;
Expand All @@ -19,7 +20,6 @@
import net.sourceforge.vrapper.vim.commands.TextOperation;
import net.sourceforge.vrapper.vim.commands.TextOperationTextObjectCommand;
import net.sourceforge.vrapper.vim.commands.motions.LineEndMotion;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;

public class ExchangeProvider extends AbstractEclipseSpecificStateProvider {
public static final PlatformSpecificStateProvider INSTANCE = new ExchangeProvider();
Expand All @@ -44,7 +44,7 @@ protected State<Command> normalModeBindings() {
@SuppressWarnings("unchecked")
public State<String> normalModeKeymap() {
return state(
transitionBind('c', leafBind('x', KeyMapResolver.OMAP_NAME)));
transitionBind('c', operatorKeyMap('x')));
}

@SuppressWarnings("unchecked")
Expand Down
Expand Up @@ -4,6 +4,7 @@
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.leafBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.state;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.transitionBind;
import static net.sourceforge.vrapper.keymap.vim.ConstructorWrappers.operatorKeyMap;

import java.util.Queue;

Expand All @@ -23,7 +24,6 @@
import net.sourceforge.vrapper.vim.commands.InsertShiftWidth;
import net.sourceforge.vrapper.vim.commands.SimpleDelimitedText;
import net.sourceforge.vrapper.vim.commands.TextObject;
import net.sourceforge.vrapper.vim.modes.KeyMapResolver;
import net.sourceforge.vrapper.vim.modes.commandline.Evaluator;

public class SurroundStateProvider extends AbstractEclipseSpecificStateProvider {
Expand Down Expand Up @@ -82,9 +82,9 @@ protected State<Command> normalModeBindings() {
@SuppressWarnings("unchecked")
protected State<String> normalModeKeymap() {
return state(
transitionBind('d', leafBind('s', KeyMapResolver.OMAP_NAME)),
transitionBind('c', leafBind('s', KeyMapResolver.OMAP_NAME)),
transitionBind('y', leafBind('s', KeyMapResolver.OMAP_NAME)));
transitionBind('d', operatorKeyMap('s')),
transitionBind('c', operatorKeyMap('s')),
transitionBind('y', operatorKeyMap('s')));
}

@Override
Expand Down

0 comments on commit 5998a05

Please sign in to comment.