@@ -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-
6617// CreateLanguagesConfigFile creates languages-config.yaml based on API response
6718func 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 := defaultToolLanguageMap [shortName ]
84+ langInfo , exists := toolLanguageMap [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 defaultToolLanguageMap {
121+ for _ , langInfo := range toolLanguageMap {
122122 configTools = append (configTools , langInfo )
123123 }
124124 }
@@ -146,10 +146,55 @@ 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- // 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
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+ },
153198 }
154199 return toolMap
155200}
0 commit comments