1
0
mirror of https://github.com/chylex/IntelliJ-IdeaVim.git synced 2025-05-29 19:34:09 +02:00

Now pass key when creating a register

This commit is contained in:
rmaddy 2003-04-22 18:10:28 +00:00
parent 5aceef973c
commit 80a3bccfe8

View File

@ -25,6 +25,8 @@ import com.intellij.openapi.editor.Editor;
import com.maddyhome.idea.vim.common.Register; import com.maddyhome.idea.vim.common.Register;
import com.maddyhome.idea.vim.helper.EditorHelper; import com.maddyhome.idea.vim.helper.EditorHelper;
import com.maddyhome.idea.vim.ui.ClipboardHandler; import com.maddyhome.idea.vim.ui.ClipboardHandler;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -131,7 +133,7 @@ public class RegisterGroup extends AbstractActionGroup
// Set the text if the lowercase register didn't exist yet // Set the text if the lowercase register didn't exist yet
else else
{ {
registers.put(new Character(lreg), new Register(type, text)); registers.put(new Character(lreg), new Register(lreg, type, text));
logger.debug("register '" + register + "' contains: \"" + text + "\""); logger.debug("register '" + register + "' contains: \"" + text + "\"");
} }
} }
@ -142,14 +144,14 @@ public class RegisterGroup extends AbstractActionGroup
// Put the text in the specified register // Put the text in the specified register
else else
{ {
registers.put(new Character(register), new Register(type, text)); registers.put(new Character(register), new Register(register, type, text));
logger.debug("register '" + register + "' contains: \"" + text + "\""); logger.debug("register '" + register + "' contains: \"" + text + "\"");
} }
// Also add it to the default register if the default wasn't specified // Also add it to the default register if the default wasn't specified
if (register != REGISTER_DEFAULT) if (register != REGISTER_DEFAULT)
{ {
registers.put(new Character(REGISTER_DEFAULT), new Register(type, text)); registers.put(new Character(REGISTER_DEFAULT), new Register(REGISTER_DEFAULT, type, text));
logger.debug("register '" + register + "' contains: \"" + text + "\""); logger.debug("register '" + register + "' contains: \"" + text + "\"");
} }
@ -164,21 +166,21 @@ public class RegisterGroup extends AbstractActionGroup
registers.put(new Character((char)(d + 1)), t); registers.put(new Character((char)(d + 1)), t);
} }
} }
registers.put(new Character('1'), new Register(type, text)); registers.put(new Character('1'), new Register('1', type, text));
// Deletes small than one line also go the the - register // Deletes small than one line also go the the - register
if (type == MotionGroup.CHARACTERWISE) if (type == MotionGroup.CHARACTERWISE)
{ {
if (editor.offsetToLogicalPosition(start).line == editor.offsetToLogicalPosition(end).line) if (editor.offsetToLogicalPosition(start).line == editor.offsetToLogicalPosition(end).line)
{ {
registers.put(new Character('-'), new Register(type, text)); registers.put(new Character('-'), new Register('-', type, text));
} }
} }
} }
// Yanks also go to register 0 if the default register was used // Yanks also go to register 0 if the default register was used
else if (register == REGISTER_DEFAULT) else if (register == REGISTER_DEFAULT)
{ {
registers.put(new Character('0'), new Register(type, text)); registers.put(new Character('0'), new Register('0', type, text));
logger.debug("register '" + register + "' contains: \"" + text + "\""); logger.debug("register '" + register + "' contains: \"" + text + "\"");
} }
@ -211,7 +213,7 @@ public class RegisterGroup extends AbstractActionGroup
String text = ClipboardHandler.getClipboardText(); String text = ClipboardHandler.getClipboardText();
if (text != null) if (text != null)
{ {
reg = new Register(MotionGroup.CHARACTERWISE, text); reg = new Register(r, MotionGroup.CHARACTERWISE, text);
} }
} }
else else
@ -231,6 +233,14 @@ public class RegisterGroup extends AbstractActionGroup
return lastRegister; return lastRegister;
} }
public List getRegisters()
{
ArrayList res = new ArrayList(registers.values());
Collections.sort(res, new Register.KeySorter());
return res;
}
/** /**
* Save all the registers * Save all the registers
* @param element The plugin's root XML element that this group can add a child to * @param element The plugin's root XML element that this group can add a child to
@ -270,8 +280,9 @@ public class RegisterGroup extends AbstractActionGroup
for (int i = 0; i < list.size(); i++) for (int i = 0; i < list.size(); i++)
{ {
Element reg = (Element)list.get(i); Element reg = (Element)list.get(i);
Register register = new Register(Integer.parseInt(reg.getAttributeValue("type")), reg.getChildText("text"));
Character key = new Character(reg.getAttributeValue("name").charAt(0)); Character key = new Character(reg.getAttributeValue("name").charAt(0));
Register register = new Register(key.charValue(), Integer.parseInt(reg.getAttributeValue("type")),
reg.getChildText("text"));
registers.put(key, register); registers.put(key, register);
} }
} }