mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-22 06:08:02 +01:00
Pass line/column numbers to the editor for rich text editors too.
This commit is contained in:
@@ -796,7 +796,8 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
|
||||
};
|
||||
}
|
||||
else if (obj instanceof Option) {
|
||||
tag = spec = function (name) <>'{name}'</>;
|
||||
spec = function () template.map(obj.names, tag, " ");
|
||||
tag = function (name) <>'{name}'</>;
|
||||
link = function (opt, name) <o>{name}</o>;
|
||||
args = { value: "", values: [] };
|
||||
}
|
||||
@@ -819,9 +820,7 @@ var Dactyl = Module("dactyl", XPCOM(Ci.nsISupportsWeakReference, ModuleBase), {
|
||||
res.* += <>
|
||||
<item>
|
||||
<tags>{template.map(obj.names.slice().reverse(), tag, " ")}</tags>
|
||||
<spec>{(obj instanceof Option)
|
||||
? template.map(obj.names.slice(), spec, " ")
|
||||
: let (name = (obj.specs || obj.names)[0])
|
||||
<spec>{let (name = (obj.specs || obj.names)[0])
|
||||
spec(template.highlightRegexp(tag(name),
|
||||
/\[(.*?)\]/g,
|
||||
function (m, n0) <oa>{n0}</oa>),
|
||||
|
||||
@@ -204,17 +204,33 @@ var Editor = Module("editor", {
|
||||
|
||||
if (textBox) {
|
||||
var text = textBox.value;
|
||||
let pre = text.substr(0, textBox.selectionStart);
|
||||
line = 1 + pre.replace(/[^\n]/g, "").length;
|
||||
column = 1 + pre.replace(/[^]*\n/, "").length;
|
||||
var pre = text.substr(0, textBox.selectionStart);
|
||||
}
|
||||
else {
|
||||
var editor_ = window.GetCurrentEditor ? GetCurrentEditor()
|
||||
: Editor.getEditor(document.commandDispatcher.focusedWindow);
|
||||
dactyl.assert(editor_);
|
||||
text = Array.map(editor_.rootElement.childNodes, function (e) DOM.stringify(e, true)).join("");
|
||||
|
||||
util.dump(editor_.selection);
|
||||
|
||||
if (!editor_.selection.rangeCount)
|
||||
var sel = "";
|
||||
else {
|
||||
let range = RangeFind.nodeContents(editor_.rootElement);
|
||||
let end = editor_.selection.getRangeAt(0);
|
||||
range.setEnd(end.startContainer, end.startOffset);
|
||||
pre = DOM.stringify(range, true);
|
||||
if (range.startContainer instanceof Text)
|
||||
pre = pre.replace(/^(?:<[^>"]+>)+/, "");
|
||||
if (range.endContainer instanceof Text)
|
||||
pre = pre.replace(/(?:<\/[^>"]+>)+$/, "");
|
||||
}
|
||||
}
|
||||
|
||||
line = 1 + pre.replace(/[^\n]/g, "").length;
|
||||
column = 1 + pre.replace(/[^]*\n/, "").length;
|
||||
|
||||
let origGroup = textBox && textBox.getAttributeNS(NS, "highlight") || "";
|
||||
let cleanup = util.yieldable(function cleanup(error) {
|
||||
if (timer)
|
||||
|
||||
Reference in New Issue
Block a user