{"record":{"id":"4e29525113cbf8bb","repo":"jesseduffield/lazygit","slug":"git-diffrenderers-command-cannot-be-used-with-d","errorCode":null,"errorMessage":"git.diffRenderers: 'command' cannot be used with diff renderer type 'rawGit'.","messagePattern":"git\\.diffRenderers: 'command' cannot be used with diff renderer type 'rawGit'\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/config/user_config_validation.go","lineNumber":129,"sourceCode":"}\n\nfunc validateDiffRenderers(diffRenderers []DiffRendererConfig) error {\n\tfor _, diffRenderer := range diffRenderers {\n\t\tswitch diffRenderer.Type {\n\t\tcase \"stdinFilter\", \"\":\n\t\t\tif diffRenderer.Command == \"\" {\n\t\t\t\treturn errors.New(\"git.diffRenderers: 'command' must be specified for diff renderer type 'stdinFilter'.\")\n\t\t\t}\n\t\t\tif len(diffRenderer.Args) > 0 {\n\t\t\t\treturn errors.New(\"git.diffRenderers: 'args' cannot be used with diff renderer type 'stdinFilter'.\")\n\t\t\t}\n\t\tcase \"extDiff\":\n\t\t\tif len(diffRenderer.Args) > 0 {\n\t\t\t\treturn errors.New(\"git.diffRenderers: 'args' cannot be used with diff renderer type 'extDiff'.\")\n\t\t\t}\n\t\tcase \"rawGit\":\n\t\t\tif diffRenderer.Command != \"\" {\n\t\t\t\treturn errors.New(\"git.diffRenderers: 'command' cannot be used with diff renderer type 'rawGit'.\")\n\t\t\t}\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"git.diffRenderers: unknown type '%s'. Allowed values: stdinFilter, extDiff, rawGit\", diffRenderer.Type)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateEnum(name string, value string, allowedValues []string) error {\n\tif slices.Contains(allowedValues, value) {\n\t\treturn nil\n\t}\n\tallowedValuesStr := strings.Join(allowedValues, \", \")\n\treturn fmt.Errorf(\"Unexpected value '%s' for '%s'. Allowed values: %s\", value, name, allowedValuesStr)\n}\n\nfunc validateKeybindingsRecurse(path string, node any) error {\n\tvalue := reflect.ValueOf(node)","sourceCodeStart":111,"sourceCodeEnd":147,"githubUrl":"https://github.com/jesseduffield/lazygit/blob/c477a2959b229fbf3284be0d4d2904ab61ec3c94/pkg/config/user_config_validation.go#L111-L147","documentation":"Validation error from validateDiffRenderers (user_config_validation.go:129). Type 'rawGit' means 'render diffs using git itself with lazygit's own theming' — no external program is involved, so a 'command' field is contradictory and rejected at config load.","triggerScenarios":"A git.diffRenderers entry with type rawGit that also sets command, e.g. type: rawGit, command: delta.","commonSituations":"Switching a renderer from stdinFilter to rawGit and forgetting to delete the command field; config merge leaving a stale command behind.","solutions":["Delete the command field from the rawGit entry","If you actually wanted an external filter, change type back to stdinFilter (with command) or extDiff","Restart lazygit to confirm validation passes"],"exampleFix":"# before\ngit:\n  diffRenderers:\n    - type: rawGit\n      command: delta\n\n# after\ngit:\n  diffRenderers:\n    - type: rawGit","handlingStrategy":"validation","validationCode":"func rawGitHasNoCommand(e DiffRendererConfig) bool {\n    return e.Type == \"rawGit\" && e.Command == \"\"\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["rawGit means 'git's own diff with lazygit theming' — no command belongs there","When switching renderer types, delete fields the new type forbids","Diff the config change before saving when toggling types"],"tags":["config","validation","diff"],"backgroundTag":null,"analyzedSha":"c477a2959b229fbf3284be0d4d2904ab61ec3c94","analyzedAt":"2026-08-15T08:34:32.451Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}