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:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
},
|
||||
{ }
|
||||
));
|
||||
|
||||
Reference in New Issue
Block a user