Added file patterns and exclusions to folder data sources (#1057)

Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
Paul KoudelkaandThorsten Sommer authored and GitHub committed 2026-10-17 19:12:43 +02:00
1 parent 249fc778a2
commit 031874cebf
75 files changed
+4808 -589

No files matched your search

@@ -82,6 +82,7 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
this.hasReportedWriteFailure = false;
this.numProcessedFiles = 0;
this.pauseBeforeNextFileSeconds = 0;
this.numTooLargeFiles = 0;
}
protected override bool MightPreselectValues()
@@ -102,7 +103,10 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
private string inputDirectory = string.Empty;
private string outputDirectory = string.Empty;
private string filePatterns = DataBatchProcessing.DEFAULT_FILE_PATTERNS;
private bool includeSubdirectories;
private string excludePatterns = FileExclusions.DEFAULT_PATTERNS;
private int maxFileSizeMegabytes = FolderFileSelection.DEFAULT_MAX_FILE_SIZE_MEGABYTES;
private bool includeSubdirectories = DataBatchProcessing.DEFAULT_INCLUDE_SUBDIRECTORIES;
private bool includeHiddenFilesAndFolders = DataBatchProcessing.DEFAULT_INCLUDE_HIDDEN_FILES_AND_FOLDERS;
private BatchProcessingPromptSource promptSource = BatchProcessingPromptSource.FREE_PROMPT;
private string freePrompt = string.Empty;
private string importedPrompt = string.Empty;
@@ -120,11 +124,17 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
private readonly List<BatchProcessingFileResult> fileResults = [];
private readonly HashSet<string> usedResultFileNames = new(StringComparer.OrdinalIgnoreCase);
private bool showExpertSettings;
private bool isProcessingBatch;
private bool hasReportedWriteFailure;
private int numProcessedFiles;
private int pauseBeforeNextFileSeconds;
/// <summary>
/// How many matching files the last search left out for their size, cf. FindInputFiles.
/// </summary>
private int numTooLargeFiles;
/// <summary>
/// The header of the column of the results table that holds the AI answer.
/// </summary>
@@ -159,6 +169,12 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
private void RestoreDefaultFilePatterns() => this.filePatterns = DataBatchProcessing.DEFAULT_FILE_PATTERNS;
private void RestoreDefaultExcludePatterns() => this.excludePatterns = FileExclusions.DEFAULT_PATTERNS;
private void ToggleExpertSettings() => this.showExpertSettings = !this.showExpertSettings;
private string GetExpertStyles => this.showExpertSettings ? "border-2 border-dashed rounded pa-2" : string.Empty;
private ConfidenceLevel GetMinimumConfidenceLevel()
{
var minimumLevel = this.SettingsManager.GetMinimumConfidenceLevel(this.Component);
@@ -178,7 +194,10 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
this.inputDirectory = string.Empty;
this.outputDirectory = string.Empty;
this.filePatterns = DataBatchProcessing.DEFAULT_FILE_PATTERNS;
this.includeSubdirectories = false;
this.excludePatterns = FileExclusions.DEFAULT_PATTERNS;
this.maxFileSizeMegabytes = FolderFileSelection.DEFAULT_MAX_FILE_SIZE_MEGABYTES;
this.includeSubdirectories = DataBatchProcessing.DEFAULT_INCLUDE_SUBDIRECTORIES;
this.includeHiddenFilesAndFolders = DataBatchProcessing.DEFAULT_INCLUDE_HIDDEN_FILES_AND_FOLDERS;
this.promptSource = BatchProcessingPromptSource.FREE_PROMPT;
this.freePrompt = string.Empty;
this.promptFilePath = string.Empty;
@@ -197,7 +216,10 @@ public partial class AssistantBatchProcessing : AssistantBaseCore<SettingsDialog
this.inputDirectory = settings.InputDirectory;
this.outputDirectory = settings.OutputDirectory;
this.filePatterns = settings.FilePatterns;
this.excludePatterns = settings.ExcludePatterns;
this.maxFileSizeMegabytes = Math.Max(settings.MaxFileSizeMegabytes, FolderFileSelection.SMALLEST_MAX_FILE_SIZE_MEGABYTES);
this.includeSubdirectories = settings.IncludeSubdirectories;
this.includeHiddenFilesAndFolders = settings.IncludeHiddenFilesAndFolders;
this.promptSource = settings.PromptSource;
this.freePrompt = settings.FreePrompt;
this.promptFilePath = settings.PromptFilePath;