From a01b1219a3e814c370f6827b81c9118f2cbc7a64 Mon Sep 17 00:00:00 2001 From: Pyush Sinha <89475668+psinha40898@users.noreply.github.com> Date: Sun, 20 Jul 2025 00:55:33 -0700 Subject: feat: full implementation for .geminiignore in settings and respective tool calls (#3727) --- packages/core/src/config/config.test.ts | 1 + packages/core/src/config/config.ts | 29 ++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) (limited to 'packages/core/src/config') diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts index e34880a6..44300a83 100644 --- a/packages/core/src/config/config.test.ts +++ b/packages/core/src/config/config.test.ts @@ -331,6 +331,7 @@ describe('Server Config (config.ts)', () => { config.getDebugMode(), config.getFileService(), config.getExtensionContextFilePaths(), + config.getFileFilteringOptions(), ); expect(config.getUserMemory()).toBe(mockMemoryData.memoryContent); diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index f81b3e32..9528f648 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -76,7 +76,20 @@ export interface GeminiCLIExtension { version: string; isActive: boolean; } - +export interface FileFilteringOptions { + respectGitIgnore: boolean; + respectGeminiIgnore: boolean; +} +// For memory files +export const DEFAULT_MEMORY_FILE_FILTERING_OPTIONS: FileFilteringOptions = { + respectGitIgnore: false, + respectGeminiIgnore: true, +}; +// For all other files +export const DEFAULT_FILE_FILTERING_OPTIONS: FileFilteringOptions = { + respectGitIgnore: true, + respectGeminiIgnore: true, +}; export class MCPServerConfig { constructor( // For stdio transport @@ -137,6 +150,7 @@ export interface ConfigParameters { usageStatisticsEnabled?: boolean; fileFiltering?: { respectGitIgnore?: boolean; + respectGeminiIgnore?: boolean; enableRecursiveFileSearch?: boolean; }; checkpointing?: boolean; @@ -182,6 +196,7 @@ export class Config { private geminiClient!: GeminiClient; private readonly fileFiltering: { respectGitIgnore: boolean; + respectGeminiIgnore: boolean; enableRecursiveFileSearch: boolean; }; private fileDiscoveryService: FileDiscoveryService | null = null; @@ -239,6 +254,7 @@ export class Config { this.fileFiltering = { respectGitIgnore: params.fileFiltering?.respectGitIgnore ?? true, + respectGeminiIgnore: params.fileFiltering?.respectGeminiIgnore ?? true, enableRecursiveFileSearch: params.fileFiltering?.enableRecursiveFileSearch ?? true, }; @@ -473,6 +489,16 @@ export class Config { getFileFilteringRespectGitIgnore(): boolean { return this.fileFiltering.respectGitIgnore; } + getFileFilteringRespectGeminiIgnore(): boolean { + return this.fileFiltering.respectGeminiIgnore; + } + + getFileFilteringOptions(): FileFilteringOptions { + return { + respectGitIgnore: this.fileFiltering.respectGitIgnore, + respectGeminiIgnore: this.fileFiltering.respectGeminiIgnore, + }; + } getCheckpointingEnabled(): boolean { return this.checkpointing; @@ -549,6 +575,7 @@ export class Config { this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths(), + this.getFileFilteringOptions(), ); this.setUserMemory(memoryContent); -- cgit v1.2.3