// PLUGIN_INFO//{{{
var PLUGIN_INFO =
{NAME}
character hint mode.
hogelog
0.2.2
2.0pre 2008/12/12
2.0a1
2009/1/28 15:34
http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/char-hints-mod2.js
;
//}}}
(function () {
const DEFAULT_HINTCHARS = "HJKLASDFGYUIOPQWERTNMZXCVB";
const hintContext = hints.addMode;
let hintchars = DEFAULT_HINTCHARS;
let inputCase = function(str) str.toUpperCase();
let inputRegex = /[A-Z]/;
let showCase = function(str) str.toUpperCase();
function chars2num(chars) //{{{
{
let num = 0;
hintchars = inputCase(hintchars);
let base = hintchars.length;
for(let i=0,l=chars.length;i0);
return chars;
} //}}}
// get Most Significant Digit
function getMSD(base, count) //{{{
{
let next;
while((next = Math.floor(count/base)) > 0) {
count = next;
}
return count;
} //}}}
function getStartNumber(base, count) //{{{
{
return count0) processHintInput(hintInput, hints);
}, //}}}
onEvent: function (event) //{{{
{
if(/^\d$/.test(events.toString(event))) {
charhints.onInput(event);
} else {
charhints.original.onEvent(event);
statusline.updateInputBuffer(hintInput);
}
}, //}}}
};
if(!charhints.original) {
charhints.original = {
show: hints.show,
onInput: liberator.eval("onInput", hintContext),
onEvent: hints.onEvent,
processHints: liberator.eval("processHints", hintContext),
};
charhints.install = function () //{{{
{
hints.show = charhints.show;
hints.onEvent = charhints.onEvent;
liberator.eval("onInput = plugins.charhints.onInput", hintContext);
liberator.execute(":hi Hint::after content: attr(hintchar)", true, true);
if(liberator.globalVariables.hintsio) {
let hintsio = liberator.globalVariables.hintsio;
for(let i=hintsio.length;i-->0;setIOType(hintsio[i]));
}
if(liberator.globalVariables.hintchars) {
hintchars = liberator.globalVariables.hintchars;
}
}; //}}}
charhints.uninstall = function () //{{{
{
hints.show = charhints.original.show;
hints.onEvent = charhints.original.onEvent;
liberator.eval("onInput = plugins.charhints.original.onInput", hintContext);
liberator.execute(":hi Hint::after content: attr(number)");
}; //}}}
}
charhints.install();
})();
// vim: set fdm=marker sw=4 ts=4 et fenc=utf-8: