Untitled
unknown
plain_text
a year ago
1.5 kB
10
Indexable
(function() {
CodeMirror.defineExtension("inlineSuggestion", function(options) {
const editor = this;
function fetchSuggestion(query) {
// Hardcoded suggestion for demo purposes
return new Promise((resolve) => {
resolve("SELECT * FROM demo_table");
});
}
function showSuggestion(suggestion) {
const cursor = editor.getCursor();
const token = editor.getTokenAt(cursor);
const suggestionWidget = document.createElement("span");
suggestionWidget.className = "CodeMirror-suggestion";
suggestionWidget.textContent = suggestion;
const coords = editor.cursorCoords();
suggestionWidget.style.position = 'absolute';
suggestionWidget.style.left = `${coords.left}px`;
suggestionWidget.style.top = `${coords.bottom}px`;
editor.addWidget(cursor, suggestionWidget, false);
suggestionWidget.onclick = () => {
editor.replaceRange(suggestion, token.start, token.end);
suggestionWidget.remove();
};
}
editor.on("inputRead", (cm, event) => {
const cursor = editor.getCursor();
const token = editor.getTokenAt(cursor);
fetchSuggestion(token.string).then((suggestion) => {
showSuggestion(suggestion);
});
});
});
})();
Editor is loading...
Leave a Comment