mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2026-03-17 11:33:32 +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;
|
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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
},
|
},
|
||||||
{ }
|
{ }
|
||||||
));
|
));
|
||||||
|
|||||||
Reference in New Issue
Block a user