45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
import { AutoCompleteOption } from './AutoCompleteOption.js';
|
|
|
|
export class MacroAutoCompleteOption extends AutoCompleteOption {
|
|
/**@type {string}*/ fullName;
|
|
/**@type {string}*/ description;
|
|
|
|
|
|
constructor(name, fullName, description) {
|
|
super(name, '{}');
|
|
this.fullName = fullName;
|
|
this.description = description;
|
|
this.nameOffset = 2;
|
|
}
|
|
|
|
|
|
renderItem() {
|
|
let li;
|
|
li = this.makeItem(`${this.fullName}`, '{}', true, [], [], null, this.description);
|
|
li.setAttribute('data-name', this.name);
|
|
li.setAttribute('data-option-type', 'macro');
|
|
return li;
|
|
}
|
|
|
|
|
|
renderDetails() {
|
|
const frag = document.createDocumentFragment();
|
|
const specs = document.createElement('div'); {
|
|
specs.classList.add('specs');
|
|
const name = document.createElement('div'); {
|
|
name.classList.add('name');
|
|
name.classList.add('monospace');
|
|
name.textContent = this.fullName;
|
|
specs.append(name);
|
|
}
|
|
frag.append(specs);
|
|
}
|
|
const help = document.createElement('span'); {
|
|
help.classList.add('help');
|
|
help.innerHTML = this.description;
|
|
frag.append(help);
|
|
}
|
|
return frag;
|
|
}
|
|
}
|