Display specific message if diff is not displayed because of too long line (#15611)

* 7184-  message if line too long

* Update options/locale/locale_en-US.ini

Co-authored-by: silverwind <me@silverwind.io>

* add flag on missing cases

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
Loutro 2021-05-04 14:58:49 +02:00 committed by GitHub
parent 1cd301796c
commit 34b21625c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 16 deletions

View file

@ -1887,6 +1887,7 @@ diff.file_image_width = Width
diff.file_image_height = Height diff.file_image_height = Height
diff.file_byte_size = Size diff.file_byte_size = Size
diff.file_suppressed = File diff suppressed because it is too large diff.file_suppressed = File diff suppressed because it is too large
diff.file_suppressed_line_too_long = File diff suppressed because one or more lines are too long
diff.too_many_files = Some files were not shown because too many files changed in this diff diff.too_many_files = Some files were not shown because too many files changed in this diff
diff.comment.placeholder = Leave a comment diff.comment.placeholder = Leave a comment
diff.comment.markdown_info = Styling with markdown is supported. diff.comment.markdown_info = Styling with markdown is supported.

View file

@ -574,21 +574,22 @@ func (diffSection *DiffSection) GetComputedInlineDiffFor(diffLine *DiffLine) tem
// DiffFile represents a file diff. // DiffFile represents a file diff.
type DiffFile struct { type DiffFile struct {
Name string Name string
OldName string OldName string
Index int Index int
Addition, Deletion int Addition, Deletion int
Type DiffFileType Type DiffFileType
IsCreated bool IsCreated bool
IsDeleted bool IsDeleted bool
IsBin bool IsBin bool
IsLFSFile bool IsLFSFile bool
IsRenamed bool IsRenamed bool
IsAmbiguous bool IsAmbiguous bool
IsSubmodule bool IsSubmodule bool
Sections []*DiffSection Sections []*DiffSection
IsIncomplete bool IsIncomplete bool
IsProtected bool IsIncompleteLineTooLong bool
IsProtected bool
} }
// GetType returns type of diff file. // GetType returns type of diff file.
@ -935,6 +936,7 @@ func parseHunks(curFile *DiffFile, maxLines, maxLineCharacters int, input *bufio
for { for {
for isFragment { for isFragment {
curFile.IsIncomplete = true curFile.IsIncomplete = true
curFile.IsIncompleteLineTooLong = true
_, isFragment, err = input.ReadLine() _, isFragment, err = input.ReadLine()
if err != nil { if err != nil {
// Now by the definition of ReadLine this cannot be io.EOF // Now by the definition of ReadLine this cannot be io.EOF
@ -1062,6 +1064,7 @@ func parseHunks(curFile *DiffFile, maxLines, maxLineCharacters int, input *bufio
line := string(lineBytes) line := string(lineBytes)
if isFragment { if isFragment {
curFile.IsIncomplete = true curFile.IsIncomplete = true
curFile.IsIncompleteLineTooLong = true
for isFragment { for isFragment {
lineBytes, isFragment, err = input.ReadLine() lineBytes, isFragment, err = input.ReadLine()
if err != nil { if err != nil {
@ -1073,6 +1076,7 @@ func parseHunks(curFile *DiffFile, maxLines, maxLineCharacters int, input *bufio
} }
if len(line) > maxLineCharacters { if len(line) > maxLineCharacters {
curFile.IsIncomplete = true curFile.IsIncomplete = true
curFile.IsIncompleteLineTooLong = true
line = line[:maxLineCharacters] line = line[:maxLineCharacters]
} }
curSection.Lines[len(curSection.Lines)-1].Content = line curSection.Lines[len(curSection.Lines)-1].Content = line

View file

@ -53,7 +53,13 @@
</div> </div>
<span class="file mono">{{$file.Name}}</span> <span class="file mono">{{$file.Name}}</span>
<div class="diff-file-header-actions df ac"> <div class="diff-file-header-actions df ac">
<div class="text grey">{{$.i18n.Tr "repo.diff.file_suppressed"}}</div> <div class="text grey">
{{if $file.IsIncompleteLineTooLong}}
{{$.i18n.Tr "repo.diff.file_suppressed_line_too_long"}}
{{else}}
{{$.i18n.Tr "repo.diff.file_suppressed"}}
{{end}}
</div>
{{if $file.IsProtected}} {{if $file.IsProtected}}
<span class="ui basic label">{{$.i18n.Tr "repo.diff.protected"}}</span> <span class="ui basic label">{{$.i18n.Tr "repo.diff.protected"}}</span>
{{end}} {{end}}