From 5609ec3488015cf9b950530f22b9a5c39fecd13b Mon Sep 17 00:00:00 2001 From: Zaureau15 <56055012+Zaureau15@users.noreply.github.com> Date: Sun, 10 May 2026 14:18:43 -0400 Subject: [PATCH] Add back gitignore filter --- src/ext/queries/file-query-api.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ext/queries/file-query-api.ts b/src/ext/queries/file-query-api.ts index 745ade3..c05c8ab 100644 --- a/src/ext/queries/file-query-api.ts +++ b/src/ext/queries/file-query-api.ts @@ -4,6 +4,7 @@ import * as path from 'path'; import * as mm from 'micromatch'; import { Config } from '../utilities/config'; import { Logger } from '../utilities/logger'; +import { Git } from '../utilities/git'; type FilterFn = (path: string, isDirectory: boolean) => boolean; @@ -25,6 +26,7 @@ type WithGlobOptions = { export class FileQueryApi { private _config = Config.instance; private _logger = new Logger('files-api'); + private _git = new Git(); private constructor( public readonly workspaceFolder: WorkspaceFolder, @@ -109,6 +111,19 @@ export class FileQueryApi { }; } + private getGitIgnoreFilter(): FilterFn | undefined { + if (!this._config.useGitIgnore) { + return; + } + + this._logger.info(`\tgetting git ignore filter`); + + return (file): boolean => { + const ignored = this._git.isIgnored(Uri.file(file)); + return !ignored; + }; + } + private async execute(): Promise { this._logger.info(`searching for files in workspace ${this.workspaceFolder.uri.fsPath}`); @@ -124,6 +139,11 @@ export class FileQueryApi { builder = builder.filter(excludeFilter); } + const gitIgnoreFilter = this.getGitIgnoreFilter(); + if (gitIgnoreFilter) { + builder = builder.filter(gitIgnoreFilter); + } + if (this._config.excludedFolders.length) { const excludedFolders = this._config.excludedFolders.map(folder => path.resolve(this.workspaceFolder.uri.fsPath, folder)); builder = builder.exclude((_directoryName, directoryPath) => {