From 0cc6e39f0f3f9daea0d23d855c489c0f2e4c7c67 Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Mon, 24 Feb 2025 09:12:56 +0100 Subject: [PATCH] Filter out [dev] comments earlier Previously we only filtered them out from the example config section in Config.md, but they still appeared in the schema. This is not ideal, because the schema descriptions can appear in editors on mouse hover or in auto-completions. So filter them out earlier, so that they don't appear in the schema either. --- pkg/jsonschema/generate.go | 11 +++++++++++ schema/config.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/jsonschema/generate.go b/pkg/jsonschema/generate.go index 05d9f5782..d8514e3b6 100644 --- a/pkg/jsonschema/generate.go +++ b/pkg/jsonschema/generate.go @@ -56,6 +56,7 @@ func customReflect(v *config.UserConfig) *jsonschema.Schema { if err := r.AddGoComments("github.com/jesseduffield/lazygit/pkg/config", "../config"); err != nil { panic(err) } + filterOutDevComments(r) schema := r.Reflect(v) defaultConfig := config.GetDefaultConfig() userConfigSchema := schema.Definitions["UserConfig"] @@ -76,6 +77,16 @@ func customReflect(v *config.UserConfig) *jsonschema.Schema { return schema } +func filterOutDevComments(r *jsonschema.Reflector) { + for k, v := range r.CommentMap { + commentLines := strings.Split(v, "\n") + filteredCommentLines := lo.Filter(commentLines, func(line string, _ int) bool { + return !strings.Contains(line, "[dev]") + }) + r.CommentMap[k] = strings.Join(filteredCommentLines, "\n") + } +} + func setDefaultVals(rootSchema, schema *jsonschema.Schema, defaults any) { t := reflect.TypeOf(defaults) v := reflect.ValueOf(defaults) diff --git a/schema/config.json b/schema/config.json index 276cba300..cbb418667 100644 --- a/schema/config.json +++ b/schema/config.json @@ -1468,7 +1468,7 @@ }, "editInTerminal": { "type": "boolean", - "description": "Whether lazygit suspends until an edit process returns\n[dev] Pointer to bool so that we can distinguish unset (nil) from false.\n[dev] We're naming this `editInTerminal` for backwards compatibility" + "description": "Whether lazygit suspends until an edit process returns" }, "openDirInEditor": { "type": "string",