@@ -14,57 +14,57 @@ import (
1414 "gopkg.in/yaml.v3"
1515)
1616
17+ // defaultToolLanguageMap defines the default mapping of tools to their supported languages and file extensions
18+ var defaultToolLanguageMap = map [string ]domain.ToolLanguageInfo {
19+ "cppcheck" : {
20+ Name : "cppcheck" ,
21+ Languages : []string {"C" , "CPP" },
22+ Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" },
23+ },
24+ "pylint" : {
25+ Name : "pylint" ,
26+ Languages : []string {"Python" },
27+ Extensions : []string {".py" },
28+ },
29+ "eslint" : {
30+ Name : "eslint" ,
31+ Languages : []string {"JavaScript" , "TypeScript" , "JSX" , "TSX" },
32+ Extensions : []string {".js" , ".jsx" , ".ts" , ".tsx" },
33+ },
34+ "pmd" : {
35+ Name : "pmd" ,
36+ Languages : []string {"Java" , "JavaScript" , "JSP" , "Velocity" , "XML" , "Apex" , "Scala" , "Ruby" , "VisualForce" },
37+ Extensions : []string {".java" , ".js" , ".jsp" , ".vm" , ".xml" , ".cls" , ".trigger" , ".scala" , ".rb" , ".page" , ".component" },
38+ },
39+ "trivy" : {
40+ Name : "trivy" ,
41+ Languages : []string {"Multiple" },
42+ Extensions : []string {},
43+ },
44+ "dartanalyzer" : {
45+ Name : "dartanalyzer" ,
46+ Languages : []string {"Dart" },
47+ Extensions : []string {".dart" },
48+ },
49+ "lizard" : {
50+ Name : "lizard" ,
51+ Languages : []string {"C" , "CPP" , "Java" , "C#" , "JavaScript" , "TypeScript" , "VueJS" , "Objective-C" , "Swift" , "Python" , "Ruby" , "TTCN-3" , "PHP" , "Scala" , "GDScript" , "Golang" , "Lua" , "Rust" , "Fortran" , "Kotlin" , "Solidity" , "Erlang" , "Zig" , "Perl" },
52+ Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" , ".java" , ".cs" , ".js" , ".jsx" , ".ts" , ".tsx" , ".vue" , ".m" , ".swift" , ".py" , ".rb" , ".ttcn" , ".php" , ".scala" , ".gd" , ".go" , ".lua" , ".rs" , ".f" , ".f90" , ".kt" , ".sol" , ".erl" , ".zig" , ".pl" },
53+ },
54+ "semgrep" : {
55+ Name : "semgrep" ,
56+ Languages : []string {"C" , "CPP" , "C#" , "Generic" , "Go" , "Java" , "JavaScript" , "JSON" , "Kotlin" , "Python" , "TypeScript" , "Ruby" , "Rust" , "JSX" , "PHP" , "Scala" , "Swift" , "Terraform" },
57+ Extensions : []string {".c" , ".cpp" , ".h" , ".hpp" , ".cs" , ".go" , ".java" , ".js" , ".json" , ".kt" , ".py" , ".ts" , ".rb" , ".rs" , ".jsx" , ".php" , ".scala" , ".swift" , ".tf" , ".tfvars" },
58+ },
59+ "codacy-enigma-cli" : {
60+ Name : "codacy-enigma-cli" ,
61+ Languages : []string {"Multiple" },
62+ Extensions : []string {},
63+ },
64+ }
65+
1766// CreateLanguagesConfigFile creates languages-config.yaml based on API response
1867func CreateLanguagesConfigFile (apiTools []domain.Tool , toolsConfigDir string , toolIDMap map [string ]string , initFlags domain.InitFlags ) error {
19- // Map tool names to their language/extension information
20- toolLanguageMap := map [string ]domain.ToolLanguageInfo {
21- "cppcheck" : {
22- Name : "cppcheck" ,
23- Languages : []string {"C" , "CPP" },
24- Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" },
25- },
26- "pylint" : {
27- Name : "pylint" ,
28- Languages : []string {"Python" },
29- Extensions : []string {".py" },
30- },
31- "eslint" : {
32- Name : "eslint" ,
33- Languages : []string {"JavaScript" , "TypeScript" , "JSX" , "TSX" },
34- Extensions : []string {".js" , ".jsx" , ".ts" , ".tsx" },
35- },
36- "pmd" : {
37- Name : "pmd" ,
38- Languages : []string {"Java" , "JavaScript" , "JSP" , "Velocity" , "XML" , "Apex" , "Scala" , "Ruby" , "VisualForce" },
39- Extensions : []string {".java" , ".js" , ".jsp" , ".vm" , ".xml" , ".cls" , ".trigger" , ".scala" , ".rb" , ".page" , ".component" },
40- },
41- "trivy" : {
42- Name : "trivy" ,
43- Languages : []string {"Multiple" },
44- Extensions : []string {},
45- },
46- "dartanalyzer" : {
47- Name : "dartanalyzer" ,
48- Languages : []string {"Dart" },
49- Extensions : []string {".dart" },
50- },
51- "lizard" : {
52- Name : "lizard" ,
53- Languages : []string {"C" , "CPP" , "Java" , "C#" , "JavaScript" , "TypeScript" , "VueJS" , "Objective-C" , "Swift" , "Python" , "Ruby" , "TTCN-3" , "PHP" , "Scala" , "GDScript" , "Golang" , "Lua" , "Rust" , "Fortran" , "Kotlin" , "Solidity" , "Erlang" , "Zig" , "Perl" },
54- Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" , ".java" , ".cs" , ".js" , ".jsx" , ".ts" , ".tsx" , ".vue" , ".m" , ".swift" , ".py" , ".rb" , ".ttcn" , ".php" , ".scala" , ".gd" , ".go" , ".lua" , ".rs" , ".f" , ".f90" , ".kt" , ".sol" , ".erl" , ".zig" , ".pl" },
55- },
56- "semgrep" : {
57- Name : "semgrep" ,
58- Languages : []string {"C" , "CPP" , "C#" , "Generic" , "Go" , "Java" , "JavaScript" , "JSON" , "Kotlin" , "Python" , "TypeScript" , "Ruby" , "Rust" , "JSX" , "PHP" , "Scala" , "Swift" , "Terraform" },
59- Extensions : []string {".c" , ".cpp" , ".h" , ".hpp" , ".cs" , ".go" , ".java" , ".js" , ".json" , ".kt" , ".py" , ".ts" , ".rb" , ".rs" , ".jsx" , ".php" , ".scala" , ".swift" , ".tf" , ".tfvars" },
60- },
61- "codacy-enigma-cli" : {
62- Name : "codacy-enigma-cli" ,
63- Languages : []string {"Multiple" },
64- Extensions : []string {},
65- },
66- }
67-
6868 // Build a list of tool language info for enabled tools
6969 var configTools []domain.ToolLanguageInfo
7070
@@ -81,7 +81,7 @@ func CreateLanguagesConfigFile(apiTools []domain.Tool, toolsConfigDir string, to
8181 }
8282
8383 // Get language info for this tool
84- langInfo , exists := toolLanguageMap [shortName ]
84+ langInfo , exists := defaultToolLanguageMap [shortName ]
8585 if exists {
8686 // Special case for Trivy - always include it
8787 if shortName == "trivy" {
@@ -118,7 +118,7 @@ func CreateLanguagesConfigFile(apiTools []domain.Tool, toolsConfigDir string, to
118118
119119 // If we have no tools or couldn't match any, include all known tools
120120 if len (configTools ) == 0 {
121- for _ , langInfo := range toolLanguageMap {
121+ for _ , langInfo := range defaultToolLanguageMap {
122122 configTools = append (configTools , langInfo )
123123 }
124124 }
@@ -146,55 +146,10 @@ func CreateLanguagesConfigFile(apiTools []domain.Tool, toolsConfigDir string, to
146146
147147// GetDefaultToolLanguageMapping returns a copy of the default tool to language/extension mapping.
148148func GetDefaultToolLanguageMapping () map [string ]domain.ToolLanguageInfo {
149- // toolLanguageMap is defined in CreateLanguagesConfigFile
150- // We are recreating it here to avoid making it a global variable or changing CreateLanguagesConfigFile signature significantly for now.
151- // Ideally, this map would be initialized once and stored, or CreateLanguagesConfigFile would be refactored.
152- toolMap := map [string ]domain.ToolLanguageInfo {
153- "cppcheck" : {
154- Name : "cppcheck" ,
155- Languages : []string {"C" , "CPP" },
156- Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" },
157- },
158- "pylint" : {
159- Name : "pylint" ,
160- Languages : []string {"Python" },
161- Extensions : []string {".py" },
162- },
163- "eslint" : {
164- Name : "eslint" ,
165- Languages : []string {"JavaScript" , "TypeScript" , "JSX" , "TSX" },
166- Extensions : []string {".js" , ".jsx" , ".ts" , ".tsx" },
167- },
168- "pmd" : {
169- Name : "pmd" ,
170- Languages : []string {"Java" , "JavaScript" , "JSP" , "Velocity" , "XML" , "Apex" , "Scala" , "Ruby" , "VisualForce" },
171- Extensions : []string {".java" , ".js" , ".jsp" , ".vm" , ".xml" , ".cls" , ".trigger" , ".scala" , ".rb" , ".page" , ".component" },
172- },
173- "trivy" : {
174- Name : "trivy" ,
175- Languages : []string {"Multiple" },
176- Extensions : []string {},
177- },
178- "dartanalyzer" : {
179- Name : "dartanalyzer" ,
180- Languages : []string {"Dart" },
181- Extensions : []string {".dart" },
182- },
183- "lizard" : {
184- Name : "lizard" ,
185- Languages : []string {"C" , "CPP" , "Java" , "C#" , "JavaScript" , "TypeScript" , "VueJS" , "Objective-C" , "Swift" , "Python" , "Ruby" , "TTCN-3" , "PHP" , "Scala" , "GDScript" , "Golang" , "Lua" , "Rust" , "Fortran" , "Kotlin" , "Solidity" , "Erlang" , "Zig" , "Perl" },
186- Extensions : []string {".c" , ".cpp" , ".cc" , ".h" , ".hpp" , ".java" , ".cs" , ".js" , ".jsx" , ".ts" , ".tsx" , ".vue" , ".m" , ".swift" , ".py" , ".rb" , ".ttcn" , ".php" , ".scala" , ".gd" , ".go" , ".lua" , ".rs" , ".f" , ".f90" , ".kt" , ".sol" , ".erl" , ".zig" , ".pl" },
187- },
188- "semgrep" : {
189- Name : "semgrep" ,
190- Languages : []string {"C" , "CPP" , "C#" , "Generic" , "Go" , "Java" , "JavaScript" , "JSON" , "Kotlin" , "Python" , "TypeScript" , "Ruby" , "Rust" , "JSX" , "PHP" , "Scala" , "Swift" , "Terraform" },
191- Extensions : []string {".c" , ".cpp" , ".h" , ".hpp" , ".cs" , ".go" , ".java" , ".js" , ".json" , ".kt" , ".py" , ".ts" , ".rb" , ".rs" , ".jsx" , ".php" , ".scala" , ".swift" , ".tf" , ".tfvars" },
192- },
193- "codacy-enigma-cli" : {
194- Name : "codacy-enigma-cli" ,
195- Languages : []string {"Multiple" },
196- Extensions : []string {},
197- },
149+ // Create a copy of the map to prevent modifications to the original
150+ toolMap := make (map [string ]domain.ToolLanguageInfo , len (defaultToolLanguageMap ))
151+ for k , v := range defaultToolLanguageMap {
152+ toolMap [k ] = v
198153 }
199154 return toolMap
200155}
0 commit comments