Respect editorconfig formatting

This commit is contained in:
2026-06-06 16:21:38 +02:00
parent dfdc47c2dc
commit 55322dc7bf
4 changed files with 351 additions and 10 deletions
+22 -10
View File
@@ -804,9 +804,6 @@ func saveNativeLockfiles(collected []nativeCollectedDataset) (int, int, error) {
}
added += countAddedLockEntries(current, dataset.LockData)
pruned += countAddedLockEntries(dataset.LockData, current)
if lockDataEqual(current, dataset.LockData) {
continue
}
if err := saveLockfile(dataset.Dataset.LockPath, dataset.LockData); err != nil {
return 0, 0, fmt.Errorf("dataset %s: %w", dataset.Dataset.Name, err)
}
@@ -6498,7 +6495,11 @@ func saveLockfile(path string, lockData map[string]int) error {
if err != nil {
return fmt.Errorf("read lockfile order: %w", err)
}
raw, err := marshalOrderedLockfile(keys, lockData)
formatting, err := resolveJSONFileFormatting(path)
if err != nil {
return fmt.Errorf("resolve lockfile formatting: %w", err)
}
raw, err := marshalOrderedLockfile(keys, lockData, formatting)
if err != nil {
return fmt.Errorf("marshal lockfile: %w", err)
}
@@ -6587,13 +6588,21 @@ func readLockfileKeyOrder(path string) ([]string, error) {
return keys, nil
}
func marshalOrderedLockfile(keys []string, lockData map[string]int) ([]byte, error) {
func marshalOrderedLockfile(keys []string, lockData map[string]int, formatting jsonFileFormatting) ([]byte, error) {
lineEnding := formatting.LineEnding
if lineEnding == "" {
lineEnding = "\n"
}
if len(keys) == 0 {
return []byte("{}\n"), nil
if formatting.FinalNewline {
return []byte("{}" + lineEnding), nil
}
return []byte("{}"), nil
}
var buffer bytes.Buffer
buffer.WriteString("{\n")
buffer.WriteString("{")
buffer.WriteString(lineEnding)
for index, key := range keys {
keyRaw, err := json.Marshal(key)
if err != nil {
@@ -6603,16 +6612,19 @@ func marshalOrderedLockfile(keys []string, lockData map[string]int) ([]byte, err
if err != nil {
return nil, err
}
buffer.WriteString(" ")
buffer.WriteString(formatting.Indent)
buffer.Write(keyRaw)
buffer.WriteString(": ")
buffer.Write(valueRaw)
if index < len(keys)-1 {
buffer.WriteByte(',')
}
buffer.WriteByte('\n')
buffer.WriteString(lineEnding)
}
buffer.WriteString("}")
if formatting.FinalNewline {
buffer.WriteString(lineEnding)
}
buffer.WriteString("}\n")
return buffer.Bytes(), nil
}