From e5034c7b58fb47fe57b28dbb001e72a567ef9abe Mon Sep 17 00:00:00 2001 From: Alice Koreman Date: Mon, 23 Oct 2023 13:50:06 +0200 Subject: [PATCH 1/3] fix: doc tooltip not filtering properly --- src/autocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/autocomplete.js b/src/autocomplete.js index d4edd9bab6b..3cf948ca152 100644 --- a/src/autocomplete.js +++ b/src/autocomplete.js @@ -464,7 +464,7 @@ class Autocomplete { updateDocTooltip() { var popup = this.popup; - var all = popup.data; + var all = this.completions.filtered; var selected = all && (all[popup.getHoveredRow()] || all[popup.getRow()]); var doc = null; if (!selected || !this.editor || !this.popup.isOpen) From b27dcba521e34679d53dbe42b3f4700804673709 Mon Sep 17 00:00:00 2001 From: Alice Koreman Date: Mon, 23 Oct 2023 15:21:36 +0200 Subject: [PATCH 2/3] adds text doc tooltip filtering --- src/autocomplete_test.js | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/autocomplete_test.js b/src/autocomplete_test.js index 8737e2926ec..c893e2cccd2 100644 --- a/src/autocomplete_test.js +++ b/src/autocomplete_test.js @@ -297,6 +297,62 @@ module.exports = { }, 10); } }, + "test: completers tooltip filtering": function (done) { + var editor = initEditor(""); + var firstDoc = "First tooltip"; + var secondDoc = "Second tooltip"; + editor.completers = [ + { + getCompletions: function (editor, session, pos, prefix, callback) { + var completions = [ + { + caption: "case", + value: "case", + }, { + caption: "catch", + value: "catch", + } + ]; + callback(null, completions); + }, + getDocTooltip: function (item) { + console.log(item) + + if (item.value === 'case') { + item.docHTML = firstDoc; + } + if (item.value === 'catch') { + item.docHTML = secondDoc; + } + }, + } + ]; + + sendKey("ca"); + var popup = editor.completer.popup; + + check(function() { + assert.equal(popup.data.length, 2); + assert.equal(popup.container.lastChild.innerHTML, firstDoc); + + sendKey("t"); + + check(function() { + assert.equal(popup.data.length, 1); + assert.equal(popup.container.lastChild.innerHTML, secondDoc); + + editor.destroy(); + editor.container.remove(); + done(); + }) + }) + + function check(callback) { + setTimeout(function wait() { + callback(); + }, 10); + } + }, "test: slow and fast completers": function(done) { var syncCompleter={ getCompletions: function(editor, session, pos, prefix, callback) { From a33e3ba760fa74b488619ebf9eca28681a706873 Mon Sep 17 00:00:00 2001 From: Alice Koreman Date: Mon, 23 Oct 2023 15:23:48 +0200 Subject: [PATCH 3/3] fix style issues --- src/autocomplete_test.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/autocomplete_test.js b/src/autocomplete_test.js index c893e2cccd2..d1bb7463990 100644 --- a/src/autocomplete_test.js +++ b/src/autocomplete_test.js @@ -307,24 +307,22 @@ module.exports = { var completions = [ { caption: "case", - value: "case", + value: "case" }, { caption: "catch", - value: "catch", + value: "catch" } ]; callback(null, completions); }, getDocTooltip: function (item) { - console.log(item) - if (item.value === 'case') { item.docHTML = firstDoc; } if (item.value === 'catch') { item.docHTML = secondDoc; } - }, + } } ]; @@ -344,8 +342,8 @@ module.exports = { editor.destroy(); editor.container.remove(); done(); - }) - }) + }); + }); function check(callback) { setTimeout(function wait() {