1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-08 06:34:12 +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;
}
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
this.moveCaret = function(pos)
{
if (!pos)
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

View File

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

View File

@@ -1611,14 +1611,14 @@ function Mappings() //{{{
// {{{
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"],
function(count)
{
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)
{
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)
{
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)
{
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_deleteToBeginningOfLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
vimperator.editor.startInsert();
},
{ }
));
@@ -1659,7 +1659,7 @@ function Mappings() //{{{
function(count)
{
vimperator.editor.executeCommand("cmd_deleteToEndOfLine", 1);
vimperator.setMode(vimperator.modes.INSERT, vimperator.modes.TEXTAREA);
vimperator.editor.startInsert();
},
{ }
));