Changes
4 changed files (+33/-9)
-
-
@@ -5,6 +5,8 @@package user const ( // SettingsKeyHiddenCommentTypes is the settings key for hidden comment types // SettingsKeyHiddenCommentTypes is the setting key for hidden comment types SettingsKeyHiddenCommentTypes = "issue.hidden_comment_types" // SettingsKeyDiffWhitespaceBehavior is the setting key for whitespace behavior of diff SettingsKeyDiffWhitespaceBehavior = "diff.whitespace_behaviour" )
-
-
-
@@ -63,11 +63,29 @@ func SetDiffViewStyle(ctx *context.Context) {// SetWhitespaceBehavior set whitespace behavior as render variable func SetWhitespaceBehavior(ctx *context.Context) { const defaultWhitespaceBehavior = "show-all" whitespaceBehavior := ctx.FormString("whitespace") switch whitespaceBehavior { case "ignore-all", "ignore-eol", "ignore-change": ctx.Data["WhitespaceBehavior"] = whitespaceBehavior case "", "ignore-all", "ignore-eol", "ignore-change": break default: ctx.Data["WhitespaceBehavior"] = "" whitespaceBehavior = defaultWhitespaceBehavior } if ctx.IsSigned { userWhitespaceBehavior, err := user_model.GetUserSetting(ctx.User.ID, user_model.SettingsKeyDiffWhitespaceBehavior, defaultWhitespaceBehavior) if err == nil { if whitespaceBehavior == "" { whitespaceBehavior = userWhitespaceBehavior } else if whitespaceBehavior != userWhitespaceBehavior { _ = user_model.SetUserSetting(ctx.User.ID, user_model.SettingsKeyDiffWhitespaceBehavior, whitespaceBehavior) } } // else: we can ignore the error safely } // these behaviors are for gitdiff.GetWhitespaceFlag if whitespaceBehavior == "" { ctx.Data["WhitespaceBehavior"] = defaultWhitespaceBehavior } else { ctx.Data["WhitespaceBehavior"] = whitespaceBehavior } }
-
-
-
@@ -1532,13 +1532,17 @@ func CommentMustAsDiff(c *models.Comment) *Diff {} // GetWhitespaceFlag returns git diff flag for treating whitespaces func GetWhitespaceFlag(whiteSpaceBehavior string) string { func GetWhitespaceFlag(whitespaceBehavior string) string { whitespaceFlags := map[string]string{ "ignore-all": "-w", "ignore-change": "-b", "ignore-eol": "--ignore-space-at-eol", "": "", "show-all": "", } return whitespaceFlags[whiteSpaceBehavior] if flag, ok := whitespaceFlags[whitespaceBehavior]; ok { return flag } log.Warn("unknown whitespace behavior: %q, default to 'show-all'", whitespaceBehavior) return "" }
-
-
-
@@ -2,8 +2,8 @@{{.i18n.Tr "repo.diff.whitespace_button"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}} <div class="menu"> <a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace="> <i class="circle {{ if eq .WhitespaceBehavior "" }}dot{{else}}outline{{end}} icon"></i> <a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=show-all"> <i class="circle {{ if eq .WhitespaceBehavior "show-all" }}dot{{else}}outline{{end}} icon"></i> {{.i18n.Tr "repo.diff.whitespace_show_everything"}} </a> <a class="item" href="?style={{if .IsSplitStyle}}split{{else}}unified{{end}}&whitespace=ignore-all">
-