completion hightlight
This commit is contained in:
parent
ee9359c138
commit
caf24779dd
2 changed files with 23 additions and 9 deletions
|
@ -43,7 +43,9 @@ const completeNext = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
let input = window.document.querySelector('#vimvixen-console-command-input');
|
let input = window.document.querySelector('#vimvixen-console-command-input');
|
||||||
input.value = completionOrigin + ' ' + item.content;
|
input.value = completionOrigin + ' ' + item[0].content;
|
||||||
|
|
||||||
|
selectCompletion(item[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const completePrev = () => {
|
const completePrev = () => {
|
||||||
|
@ -56,7 +58,9 @@ const completePrev = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
let input = window.document.querySelector('#vimvixen-console-command-input');
|
let input = window.document.querySelector('#vimvixen-console-command-input');
|
||||||
input.value = completionOrigin + ' ' + item.content;
|
input.value = completionOrigin + ' ' + item[0].content;
|
||||||
|
|
||||||
|
selectCompletion(item[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleKeydown = (e) => {
|
const handleKeydown = (e) => {
|
||||||
|
@ -126,6 +130,8 @@ const setCompletions = (completions) => {
|
||||||
completion.style.display = 'block';
|
completion.style.display = 'block';
|
||||||
completion.innerHTML = '';
|
completion.innerHTML = '';
|
||||||
|
|
||||||
|
let pairs = [];
|
||||||
|
|
||||||
for (let group of completions) {
|
for (let group of completions) {
|
||||||
let title = window.document.createElement('li');
|
let title = window.document.createElement('li');
|
||||||
title.className = 'vimvixen-console-completion-title';
|
title.className = 'vimvixen-console-completion-title';
|
||||||
|
@ -147,22 +153,27 @@ const setCompletions = (completions) => {
|
||||||
li.className = 'vimvixen-console-completion-item';
|
li.className = 'vimvixen-console-completion-item';
|
||||||
li.append(caption);
|
li.append(caption);
|
||||||
li.append(url);
|
li.append(url);
|
||||||
li.setAttribute('data-content', item.content);
|
|
||||||
|
|
||||||
completion.append(li);
|
completion.append(li);
|
||||||
|
|
||||||
|
pairs.push([item, li]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let flatten = [];
|
window.completion = new Completion(pairs);
|
||||||
for (let group of completions) {
|
|
||||||
flatten = flatten.concat(group.items);
|
|
||||||
}
|
|
||||||
window.completion = new Completion(flatten);
|
|
||||||
|
|
||||||
let input = window.document.querySelector('#vimvixen-console-command-input');
|
let input = window.document.querySelector('#vimvixen-console-command-input');
|
||||||
completionOrigin = input.value.split(' ')[0];
|
completionOrigin = input.value.split(' ')[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const selectCompletion = (element) => {
|
||||||
|
let elements = window.document.querySelectorAll('.vimvixen-console-completion-item');
|
||||||
|
Array.prototype.forEach.call(elements, (ele) => {
|
||||||
|
ele.className = 'vimvixen-console-completion-item';
|
||||||
|
});
|
||||||
|
element.classList.add('vimvixen-completion-selected');
|
||||||
|
};
|
||||||
|
|
||||||
messages.receive(window, (message) => {
|
messages.receive(window, (message) => {
|
||||||
switch (message.type) {
|
switch (message.type) {
|
||||||
case 'vimvixen.console.show.command':
|
case 'vimvixen.console.show.command':
|
||||||
|
|
|
@ -43,6 +43,10 @@ body {
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
|
&.vimvixen-completion-selected {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
|
||||||
&-caption {
|
&-caption {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 40%;
|
width: 40%;
|
||||||
|
@ -53,7 +57,6 @@ body {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&-error {
|
&-error {
|
||||||
|
|
Reference in a new issue