@@ -55,18 +55,19 @@ type RuntimeBinaries struct {
5555
5656// ToolPluginConfig holds the structure of the tool plugin.yaml file
5757type ToolPluginConfig struct {
58- Name string `yaml:"name"`
59- Description string `yaml:"description"`
60- DefaultVersion string `yaml:"default_version"`
61- Runtime string `yaml:"runtime"`
62- RuntimeBinaries RuntimeBinaries `yaml:"runtime_binaries"`
63- Installation InstallationConfig `yaml:"installation"`
64- Download DownloadConfig `yaml:"download"`
65- Environment map [string ]string `yaml:"environment"`
66- Binaries []ToolBinary `yaml:"binaries"`
67- Formatters []Formatter `yaml:"formatters"`
68- OutputOptions OutputOptions `yaml:"output_options"`
69- AnalysisOptions AnalysisOptions `yaml:"analysis_options"`
58+ Name string `yaml:"name"`
59+ Description string `yaml:"description"`
60+ DefaultVersion string `yaml:"default_version"`
61+ SupportsSpecificFiles bool `yaml:"support_specific_files"`
62+ Runtime string `yaml:"runtime"`
63+ RuntimeBinaries RuntimeBinaries `yaml:"runtime_binaries"`
64+ Installation InstallationConfig `yaml:"installation"`
65+ Download DownloadConfig `yaml:"download"`
66+ Environment map [string ]string `yaml:"environment"`
67+ Binaries []ToolBinary `yaml:"binaries"`
68+ Formatters []Formatter `yaml:"formatters"`
69+ OutputOptions OutputOptions `yaml:"output_options"`
70+ AnalysisOptions AnalysisOptions `yaml:"analysis_options"`
7071}
7172
7273// ToolConfig represents configuration for a tool
@@ -78,15 +79,16 @@ type ToolConfig struct {
7879
7980// ToolInfo contains all processed information about a tool
8081type ToolInfo struct {
81- Name string
82- Version string
83- Runtime string
84- InstallDir string
85- Binaries map [string ]string // Map of binary name to full path
86- Formatters map [string ]string // Map of formatter name to flag
87- OutputFlag string
88- AutofixFlag string
89- DefaultPath string
82+ Name string
83+ Version string
84+ Runtime string
85+ InstallDir string
86+ Binaries map [string ]string // Map of binary name to full path
87+ Formatters map [string ]string // Map of formatter name to flag
88+ OutputFlag string
89+ AutofixFlag string
90+ DefaultPath string
91+ SupportsSpecificFiles bool // Whether tool supports specific file analysis
9092 // Runtime binaries
9193 PackageManager string
9294 ExecutionBinary string
@@ -135,15 +137,16 @@ func ProcessTools(configs []ToolConfig, toolDir string, runtimes map[string]*Run
135137 }
136138 // Create ToolInfo with basic information
137139 info := & ToolInfo {
138- Name : config .Name ,
139- Version : config .Version ,
140- Runtime : toolRuntime ,
141- InstallDir : installDir ,
142- Binaries : make (map [string ]string ),
143- Formatters : make (map [string ]string ),
144- OutputFlag : pluginConfig .OutputOptions .FileFlag ,
145- AutofixFlag : pluginConfig .AnalysisOptions .AutofixFlag ,
146- DefaultPath : pluginConfig .AnalysisOptions .DefaultPath ,
140+ Name : config .Name ,
141+ Version : config .Version ,
142+ Runtime : toolRuntime ,
143+ InstallDir : installDir ,
144+ Binaries : make (map [string ]string ),
145+ Formatters : make (map [string ]string ),
146+ OutputFlag : pluginConfig .OutputOptions .FileFlag ,
147+ AutofixFlag : pluginConfig .AnalysisOptions .AutofixFlag ,
148+ DefaultPath : pluginConfig .AnalysisOptions .DefaultPath ,
149+ SupportsSpecificFiles : pluginConfig .SupportsSpecificFiles ,
147150 // Store runtime binary information
148151 PackageManager : pluginConfig .RuntimeBinaries .PackageManager ,
149152 ExecutionBinary : pluginConfig .RuntimeBinaries .Execution ,
0 commit comments