Skip to content

Commit 613f865

Browse files
Merge pull request #83 from codacy/not-processing-eslint-plugins
avoiding eslint plugins - PLUTO-1364
2 parents 79d7df5 + 254aa8f commit 613f865

File tree

3 files changed

+27
-11
lines changed

3 files changed

+27
-11
lines changed

cmd/init.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ func createToolFileConfigurations(tool tools.Tool, patternConfiguration []domain
342342
if err != nil {
343343
return fmt.Errorf("failed to write eslint config: %v", err)
344344
}
345-
fmt.Println("ESLint configuration created based on Codacy settings")
345+
fmt.Println("ESLint configuration created based on Codacy settings. Ignoring plugin rules. ESLint plugins are not supported yet.")
346346
} else {
347347
err := createDefaultEslintConfigFile(toolsConfigDir)
348348
if err != nil {

tools/eslintConfigCreator.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,28 @@ func CreateEslintConfig(configuration []domain.PatternConfiguration) string {
2828
for _, patternConfiguration := range configuration {
2929
rule := strings.TrimPrefix(patternConfiguration.PatternDefinition.Id, "ESLint8_")
3030

31-
const tempstring = "TEMPORARYSTRING"
32-
rule = strings.ReplaceAll(rule, "__", tempstring)
33-
rule = strings.ReplaceAll(rule, "_", "/")
34-
rule = strings.ReplaceAll(rule, tempstring, "_")
31+
// Handle plugin rules (those containing _)
32+
if strings.Contains(rule, "_") {
33+
parts := strings.Split(rule, "_")
34+
if len(parts) >= 2 {
35+
// First part is the plugin name, last part is the rule name
36+
plugin := parts[0]
37+
ruleName := parts[len(parts)-1]
38+
39+
// Handle scoped packages
40+
if strings.HasPrefix(plugin, "@") {
41+
rule = fmt.Sprintf("%s/%s", plugin, ruleName)
42+
} else {
43+
// For non-scoped packages, add eslint-plugin- prefix
44+
rule = fmt.Sprintf("%s/%s", "eslint-plugin-"+plugin, ruleName)
45+
}
46+
}
47+
}
48+
49+
// Skip any rule that contains a plugin (contains "/")
50+
if strings.Contains(rule, "/") {
51+
continue
52+
}
3553

3654
parametersString := ""
3755

@@ -44,7 +62,6 @@ func CreateEslintConfig(configuration []domain.PatternConfiguration) string {
4462
// build named parameters json object
4563
namedParametersString := ""
4664
for _, parameter := range patternConfiguration.Parameters {
47-
4865
if parameter.Name != "unnamedParam" {
4966
if len(namedParametersString) == 0 {
5067
namedParametersString += "{"

tools/eslintConfigCreator_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func TestCreateEslintConfigNamedParam(t *testing.T) {
7070
[]domain.PatternConfiguration{
7171
{
7272
PatternDefinition: domain.PatternDefinition{
73-
Id: "consistent-return",
73+
Id: "ESLint8_consistent-return",
7474
},
7575
Parameters: []domain.ParameterConfiguration{
7676
{
@@ -94,7 +94,7 @@ func TestCreateEslintConfigUnnamedAndNamedParam(t *testing.T) {
9494
[]domain.PatternConfiguration{
9595
{
9696
PatternDefinition: domain.PatternDefinition{
97-
Id: "consistent-return",
97+
Id: "ESLint8_consistent-return",
9898
},
9999
Parameters: []domain.ParameterConfiguration{
100100
{
@@ -117,19 +117,18 @@ func TestCreateEslintConfigUnnamedAndNamedParam(t *testing.T) {
117117
];`)
118118
}
119119

120-
func TestCreateEslintConfigSupportPlugins(t *testing.T) {
120+
func TestCreateEslintConfigDoNotSupportPlugins(t *testing.T) {
121121
testConfig(t,
122122
[]domain.PatternConfiguration{
123123
{
124124
PatternDefinition: domain.PatternDefinition{
125-
Id: "plugin/consistent-return",
125+
Id: "ESLint8_plugin_consistent-return",
126126
},
127127
},
128128
},
129129
`export default [
130130
{
131131
rules: {
132-
"plugin/consistent-return": "error",
133132
}
134133
}
135134
];`)

0 commit comments

Comments
 (0)