Compare commits

...

2 Commits

Author SHA1 Message Date
Maksim Smirnov
072582d9cb fix changed not saved to the file 2025-08-23 09:50:12 +02:00
920de1c512 Update go.mod 2025-08-23 08:49:14 +02:00
2 changed files with 18 additions and 7 deletions

View File

@@ -50,12 +50,18 @@ func FixCommand(c *cli.Context) error {
// Run line checkers and fixers. // Run line checkers and fixers.
lines := SplitIntoLines(fileContent) lines := SplitIntoLines(fileContent)
lineNo := 1 lineNo := 1
for _, line := range lines { for i, line := range lines {
for ruleName, ruleValue := range rules { for ruleName, ruleValue := range rules {
if lineChecker, ok := lineCheckers[ruleName]; ok { if lineChecker, ok := lineCheckers[ruleName]; ok {
result := lineChecker(ruleValue, line) result := lineChecker(ruleValue, line)
if !result.isOk { if !result.isOk {
fmt.Println(f + ": line " + strconv.Itoa(lineNo) + ": " + ruleName + ": " + result.messageIfNotOk) if result.fixer != nil {
lines[i] = result.fixer(ruleValue, line)
hasChanged = true
fmt.Println(f + ": line " + strconv.Itoa(lineNo) + ": " + ruleName + ": fixed")
} else {
fmt.Println(f + ": line " + strconv.Itoa(lineNo) + ": " + ruleName + ": " + result.messageIfNotOk)
}
// Don't show more than 1 error per line. // Don't show more than 1 error per line.
break break
} }
@@ -64,13 +70,18 @@ func FixCommand(c *cli.Context) error {
lineNo++ lineNo++
} }
// Rejoin the lines if any were changed
if hasChanged { if hasChanged {
fileHandler, err := os.Open(f) fileContent = strings.Join(lines, "\n")
}
if hasChanged {
err := os.WriteFile(f, []byte(fileContent), 0644)
if err != nil { if err != nil {
fmt.Println("Could not write to " + f) fmt.Println("Could not write to " + f + ": " + err.Error())
} else {
fmt.Println("Wrote to " + f)
} }
fileHandler.WriteString(fileContent)
fmt.Println("Wrote to " + f)
} }
} }

2
go.mod
View File

@@ -1,4 +1,4 @@
module github.com/amyboyd/editorconfig-cli module git.lab.xmaxsmi.dev/xmaxsmi/editorconfig-cli
go 1.25.0 go 1.25.0