mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-25 04:36:23 +00:00
Relative file match (#24074)
This commit is contained in:
@@ -28,6 +28,7 @@ test -d node_modules || ./scripts/npm.sh install
|
||||
(test -f "$CODE" && [ $INTENDED_VERSION == $INSTALLED_VERSION ]) || ./node_modules/.bin/gulp electron
|
||||
|
||||
# Unit Tests
|
||||
export ELECTRON_ENABLE_LOGGING=1
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
cd $ROOT ; ulimit -n 4096 ; \
|
||||
"$CODE" \
|
||||
|
||||
@@ -221,6 +221,7 @@ export class FileWalker {
|
||||
const useRipgrep = this.useRipgrep;
|
||||
let cmd: childProcess.ChildProcess;
|
||||
let noSiblingsClauses: boolean;
|
||||
let filePatternSeen = false;
|
||||
if (useRipgrep) {
|
||||
const ripgrep = spawnRipgrepCmd(folderQuery, this.config.includePattern, this.folderExcludePatterns.get(folderQuery.folder).expression);
|
||||
cmd = ripgrep.cmd;
|
||||
@@ -262,11 +263,28 @@ export class FileWalker {
|
||||
|
||||
if (useRipgrep && noSiblingsClauses) {
|
||||
for (const relativePath of relativeFiles) {
|
||||
if (relativePath === this.filePattern) {
|
||||
filePatternSeen = true;
|
||||
}
|
||||
const basename = path.basename(relativePath);
|
||||
this.matchFile(onResult, { base: rootFolder, relativePath, basename });
|
||||
}
|
||||
if (last) {
|
||||
done();
|
||||
if (!filePatternSeen) {
|
||||
this.checkFilePatternRelativeMatch(folderQuery.folder, (match, size) => {
|
||||
if (match) {
|
||||
this.resultCount++;
|
||||
onResult({
|
||||
base: folderQuery.folder,
|
||||
relativePath: this.filePattern,
|
||||
basename: path.basename(this.filePattern),
|
||||
});
|
||||
}
|
||||
done();
|
||||
});
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -368,27 +368,27 @@ suite('FileSearchEngine', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// test('Files: relative path to file ignores excludes', function (done: () => void) {
|
||||
// let engine = new FileSearchEngine({
|
||||
// folderQueries: ROOT_FOLDER_QUERY,
|
||||
// filePattern: path.normalize(path.join('examples', 'company.js')),
|
||||
// excludePattern: { '**/*.js': true }
|
||||
// });
|
||||
test('Files: relative path to file ignores excludes', function (done: () => void) {
|
||||
let engine = new FileSearchEngine({
|
||||
folderQueries: ROOT_FOLDER_QUERY,
|
||||
filePattern: path.normalize(path.join('examples', 'company.js')),
|
||||
excludePattern: { '**/*.js': true }
|
||||
});
|
||||
|
||||
// let count = 0;
|
||||
// let res: IRawFileMatch;
|
||||
// engine.search((result) => {
|
||||
// if (result) {
|
||||
// count++;
|
||||
// }
|
||||
// res = result;
|
||||
// }, () => { }, (error) => {
|
||||
// assert.ok(!error);
|
||||
// assert.equal(count, 1);
|
||||
// assert.equal(path.basename(res.relativePath), 'company.js');
|
||||
// done();
|
||||
// });
|
||||
// });
|
||||
let count = 0;
|
||||
let res: IRawFileMatch;
|
||||
engine.search((result) => {
|
||||
if (result) {
|
||||
count++;
|
||||
}
|
||||
res = result;
|
||||
}, () => { }, (error) => {
|
||||
assert.ok(!error);
|
||||
assert.equal(count, 1);
|
||||
assert.equal(path.basename(res.relativePath), 'company.js');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
test('Files: Include pattern, single files', function (done: () => void) {
|
||||
let engine = new FileSearchEngine({
|
||||
|
||||
Reference in New Issue
Block a user