diff --git a/content/completion.js b/content/completion.js
index 51148d60..4b54ee83 100644
--- a/content/completion.js
+++ b/content/completion.js
@@ -813,9 +813,47 @@ function Completion() //{{{
bookmark: function (filter)
{
+ // TODO: move to template.js?
+ function createHtml(item)
+ {
+ var extra = [];
+ if (item.keyword)
+ extra.push(['keyword', item.keyword, "hl-Keyword"]);
+ if (item.tags.length > 0)
+ extra.push(["tags", item.tags.join(","), "hl-Tag"]); // no space, otherwise it looks strange, since we just have spaces to seperate tags from keywords
+
+ return
+ 
+ - {util.clip(item.title || "", 50)}
+ -
+ {item.url}
+ {
+ !(extra.length) ? "" :
+
+ }
+
+
+ }
+
return {
start: 0,
- get items() { return bookmarks.get(filter) },
+ get items() {
+ return bookmarks.get(filter).map(function (bmark) {
+ // temporary, until we have moved all completions to objects
+ bmark[0] = bmark.url;
+ bmark[1] = bmark.title;
+
+ bmark.text = bmark.url;
+ bmark.__defineGetter__("html", function () createHtml(bmark));
+ return bmark;
+ });
+ },
createRow: function (item)

diff --git a/content/ui.js b/content/ui.js
index e345f232..24a9942d 100644
--- a/content/ui.js
+++ b/content/ui.js
@@ -1373,8 +1373,6 @@ function ItemList(id) //{{{
if (offset == null || offset - startIndex == 0 || offset < 0 || items.length && offset >= items.length)
return;
- //let createRow = ("createRow" in completionObject) ? completionObject.createRow : createDefaultRow;
- let createRow = createDefaultRow;
startIndex = offset;
endIndex = Math.min(startIndex + maxItems, items.length);
@@ -1385,14 +1383,14 @@ function ItemList(id) //{{{
if (diff == 1) /* Scroll down */
{
let item = items[endIndex - 1];
- let row = createRow(item, true);
+ let row = "html" in item ? util.xmlToDom(item.html, doc) : createDefaultRow(item, true);
tbody.removeChild(tbody.firstChild);
tbody.appendChild(row);
}
else /* Scroll up */
{
let item = items[offset];
- let row = createRow(item, true);
+ let row = "html" in item ? util.xmlToDom(item.html, doc) : createDefaultRow(item, true);
tbody.removeChild(tbody.lastChild);
tbody.insertBefore(row, tbody.firstChild);
}
@@ -1406,7 +1404,7 @@ function ItemList(id) //{{{
{
template.map(util.range(offset, endIndex), function (i)
- createRow(items[i]))
+ "html" in items[i] ? items[i].html : createDefaultRow(items[i]))
}