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

@ -588,6 +588,7 @@ type DiffFile struct {
IsSubmodule bool IsSubmodule bool
Sections []*DiffSection Sections []*DiffSection
IsIncomplete bool IsIncomplete bool
IsIncompleteLineTooLong bool
IsProtected bool IsProtected bool
} }
@ -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}}