1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-03-17 09:43:32 +01:00

a little better block cursor, broke i and a however a little

This commit is contained in:
Martin Stubenschrott
2007-09-08 15:21:11 +00:00
parent 91490f9bd5
commit 3c2abc2785
3 changed files with 37 additions and 11 deletions

View File

@@ -101,13 +101,39 @@ function Editor() //{{{
return true; return true;
} }
this.startNormal = function()
{
vimperator.setMode(vimperator.modes.TEXTAREA);
this.moveCaret();
}
this.startVisual = function()
{
vimperator.setMode(vimperator.modes.VISUAL, vimperator.modes.TEXTAREA);
}
this.startInsert = function()
{
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
this.moveCaret();
}
this.stopInsert = function()
{
vimperator.setMode(vimperator.modes.TEXTAREA);
this.moveCaret();
}
// very rudimentary testing code // very rudimentary testing code
this.moveCaret = function(pos) this.moveCaret = function(pos)
{ {
if (!pos) if (!pos)
pos = editor().selectionStart - 1; pos = editor().selectionStart - 1;
editor().setSelectionRange(pos, pos+1); if (!vimperator.hasMode(vimperator.modes.INSERT))
editor().setSelectionRange(pos, pos+1);
else if (!vimperator.hasMode(vimperator.modes.VISUAL))
editor().setSelectionRange(pos, pos);
} }
// cmd = y, d, c // cmd = y, d, c

View File

@@ -397,9 +397,9 @@ function Events() //{{{
else if (elem && elem instanceof HTMLTextAreaElement) else if (elem && elem instanceof HTMLTextAreaElement)
{ {
if (elem.selectionEnd - elem.selectionStart > 0) if (elem.selectionEnd - elem.selectionStart > 0)
vimperator.setMode(vimperator.modes.VISUAL, vimperator.modes.TEXTAREA); vimperator.editor.startVisual();
else else
vimperator.setMode(vimperator.modes.TEXTAREA); vimperator.editor.startNormal();
vimperator.buffer.lastInputField = elem; vimperator.buffer.lastInputField = elem;
} }
else else
@@ -436,7 +436,7 @@ function Events() //{{{
else if (vimperator.hasMode(vimperator.modes.INSERT)) else if (vimperator.hasMode(vimperator.modes.INSERT))
{ {
if(vimperator.hasMode(vimperator.modes.TEXTAREA)) if(vimperator.hasMode(vimperator.modes.TEXTAREA))
vimperator.setMode(vimperator.modes.TEXTAREA); vimperator.editor.stopInsert();
else else
{ {
vimperator.editor.unselectText(); vimperator.editor.unselectText();

View File

@@ -1611,14 +1611,14 @@ function Mappings() //{{{
// {{{ // {{{
addDefaultMap(new Map([vimperator.modes.TEXTAREA], ["i"], addDefaultMap(new Map([vimperator.modes.TEXTAREA], ["i"],
function(count) { vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); }, function(count) { vimperator.editor.startInsert(); },
{ } { }
)); ));
addDefaultMap(new Map([vimperator.modes.TEXTAREA], ["a"], addDefaultMap(new Map([vimperator.modes.TEXTAREA], ["a"],
function(count) function(count)
{ {
vimperator.editor.executeCommand("cmd_charNext", 1); vimperator.editor.executeCommand("cmd_charNext", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));
@@ -1626,7 +1626,7 @@ function Mappings() //{{{
function(count) function(count)
{ {
vimperator.editor.executeCommand("cmd_beginLine", 1); vimperator.editor.executeCommand("cmd_beginLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));
@@ -1634,7 +1634,7 @@ function Mappings() //{{{
function(count) function(count)
{ {
vimperator.editor.executeCommand("cmd_endLine", 1); vimperator.editor.executeCommand("cmd_endLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));
@@ -1642,7 +1642,7 @@ function Mappings() //{{{
function(count) function(count)
{ {
vimperator.editor.executeCommand("cmd_deleteCharForward", 1); vimperator.editor.executeCommand("cmd_deleteCharForward", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));
@@ -1651,7 +1651,7 @@ function Mappings() //{{{
{ {
vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1); vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1);
vimperator.editor.executeCommand("cmd_deleteToBeginningOfLine", 1); vimperator.editor.executeCommand("cmd_deleteToBeginningOfLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));
@@ -1659,7 +1659,7 @@ function Mappings() //{{{
function(count) function(count)
{ {
vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1); vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA); vimperator.editor.startInsert();
}, },
{ } { }
)); ));