repl: #41690 REPL gives wrong autocomplete on literals

Fixes: https://github.com/nodejs/node/issues/41690

PR-URL: https://github.com/nodejs/node/pull/41883
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Mestery <mestery@protonmail.com>
This commit is contained in:
Xuguang Mei authored and GitHub committed 2022-02-10 00:36:23 +00:00
1 parent 255554eee3
commit 52b1904a0d
2 files changed
+21 -1

No files matched your search

+1 -1
View File
@@ -1168,7 +1168,7 @@ const importRE = /\bimport\s*\(\s*['"`](([\w@./:-]+\/)?(?:[\w@./:-]*))(?![^'"`])
const requireRE = /\brequire\s*\(\s*['"`](([\w@./:-]+\/)?(?:[\w@./:-]*))(?![^'"`])$/;
const fsAutoCompleteRE = /fs(?:\.promises)?\.\s*[a-z][a-zA-Z]+\(\s*["'](.*)/;
const simpleExpressionRE =
/(?:[a-zA-Z_$](?:\w|\$)*\??\.)*[a-zA-Z_$](?:\w|\$)*\??\.?$/;
/(?:[\w$'"`[{(](?:\w|\$|['"`\]})])*\??\.)*[a-zA-Z_$](?:\w|\$)*\??\.?$/;
const versionedFileNamesRe = /-\d+\.\d+/;
function isIdentifier(str) {
+20
View File
@@ -558,6 +558,26 @@ testMe.complete('obj.', common.mustCall(function(error, data) {
putIn.run(['.clear']);
testMe.complete('Buffer.prototype.', common.mustCall());
// Make sure repl gives correct autocomplete on literals
testMe.complete('``.a', common.mustCall((err, data) => {
assert.strictEqual(data[0].includes('``.at'), true);
}));
testMe.complete('\'\'.a', common.mustCall((err, data) => {
assert.strictEqual(data[0].includes('\'\'.at'), true);
}));
testMe.complete('"".a', common.mustCall((err, data) => {
assert.strictEqual(data[0].includes('"".at'), true);
}));
testMe.complete('("").a', common.mustCall((err, data) => {
assert.strictEqual(data[0].includes('("").at'), true);
}));
testMe.complete('[].a', common.mustCall((err, data) => {
assert.strictEqual(data[0].includes('[].at'), true);
}));
testMe.complete('{}.a', common.mustCall((err, data) => {
assert.deepStrictEqual(data[0], []);
}));
const testNonGlobal = repl.start({
input: putIn,
output: putIn,