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:
parent
255554eee3
commit
52b1904a0d
@ -1168,7 +1168,7 @@ const importRE = /\bimport\s*\(\s*['"`](([\w@./:-]+\/)?(?:[\w@./:-]*))(?![^'"`])
|
|||||||
const requireRE = /\brequire\s*\(\s*['"`](([\w@./:-]+\/)?(?:[\w@./:-]*))(?![^'"`])$/;
|
const requireRE = /\brequire\s*\(\s*['"`](([\w@./:-]+\/)?(?:[\w@./:-]*))(?![^'"`])$/;
|
||||||
const fsAutoCompleteRE = /fs(?:\.promises)?\.\s*[a-z][a-zA-Z]+\(\s*["'](.*)/;
|
const fsAutoCompleteRE = /fs(?:\.promises)?\.\s*[a-z][a-zA-Z]+\(\s*["'](.*)/;
|
||||||
const simpleExpressionRE =
|
const simpleExpressionRE =
|
||||||
/(?:[a-zA-Z_$](?:\w|\$)*\??\.)*[a-zA-Z_$](?:\w|\$)*\??\.?$/;
|
/(?:[\w$'"`[{(](?:\w|\$|['"`\]})])*\??\.)*[a-zA-Z_$](?:\w|\$)*\??\.?$/;
|
||||||
const versionedFileNamesRe = /-\d+\.\d+/;
|
const versionedFileNamesRe = /-\d+\.\d+/;
|
||||||
|
|
||||||
function isIdentifier(str) {
|
function isIdentifier(str) {
|
||||||
|
@ -558,6 +558,26 @@ testMe.complete('obj.', common.mustCall(function(error, data) {
|
|||||||
putIn.run(['.clear']);
|
putIn.run(['.clear']);
|
||||||
testMe.complete('Buffer.prototype.', common.mustCall());
|
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({
|
const testNonGlobal = repl.start({
|
||||||
input: putIn,
|
input: putIn,
|
||||||
output: putIn,
|
output: putIn,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user