Skip to content

Commit 2cd8515

Browse files
Revert "refactor: centralize tool language mapping in language_config.go"
This reverts commit d3659d6.
1 parent d3659d6 commit 2cd8515

File tree

1 file changed

+100
-55
lines changed

1 file changed

+100
-55
lines changed

tools/language_config.go

Lines changed: 100 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -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
6718
func 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.
148148
func 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

Comments
 (0)