diff options
author | Benno <blueworrybear@gmail.com> | 2019-11-15 10:52:59 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2019-11-15 10:52:59 +0800 |
commit | 149a9df9e8e7e91c813232fb82e644b0d3369b09 (patch) | |
tree | cfb677cde7578ad448a201224522c50b227a6097 /modules | |
parent | 42ada741e3360b14ede8772aa1a2dd3e83209033 (diff) | |
download | gitea-149a9df9e8e7e91c813232fb82e644b0d3369b09.tar.gz gitea-149a9df9e8e7e91c813232fb82e644b0d3369b09.zip |
Expand/Collapse Files and Blob Excerpt while Reviewing/Comparing code (#8924)
* update #8659 fold/unfold code diffs
* add fold button style
* update #8659 implement expand up/down codes (blob excerpt)
* fix golint errors
* fix expand direction
* remove debug message
* update css style for blob exceprt
* fix typo in comment
* update style sheet with less
* update expect diff (add SectionInfo)
* update #8942 accept suggested change (fix typo)
* close reader and check file type before get tail section
* adjust button position and check file type before insert fold button
* move index js to web_src
* merge index.js with master
* generate index.js
* update js coding style
Diffstat (limited to 'modules')
-rw-r--r-- | modules/git/blob.go | 23 | ||||
-rw-r--r-- | modules/repofiles/diff_test.go | 9 |
2 files changed, 32 insertions, 0 deletions
diff --git a/modules/git/blob.go b/modules/git/blob.go index 68147673a3..df88ac2ede 100644 --- a/modules/git/blob.go +++ b/modules/git/blob.go @@ -6,6 +6,7 @@ package git import ( + "bytes" "encoding/base64" "io" "io/ioutil" @@ -50,6 +51,28 @@ func (b *Blob) GetBlobContent() (string, error) { return string(buf), nil } +// GetBlobLineCount gets line count of lob as raw text +func (b *Blob) GetBlobLineCount() (int, error) { + reader, err := b.DataAsync() + if err != nil { + return 0, err + } + defer reader.Close() + buf := make([]byte, 32*1024) + count := 0 + lineSep := []byte{'\n'} + for { + c, err := reader.Read(buf) + count += bytes.Count(buf[:c], lineSep) + switch { + case err == io.EOF: + return count, nil + case err != nil: + return count, err + } + } +} + // GetBlobContentBase64 Reads the content of the blob with a base64 encode and returns the encoded string func (b *Blob) GetBlobContentBase64() (string, error) { dataRc, err := b.DataAsync() diff --git a/modules/repofiles/diff_test.go b/modules/repofiles/diff_test.go index db2c7552c4..4e1d5b13eb 100644 --- a/modules/repofiles/diff_test.go +++ b/modules/repofiles/diff_test.go @@ -55,6 +55,15 @@ func TestGetDiffPreview(t *testing.T) { Type: 4, Content: "@@ -1,3 +1,4 @@", Comments: nil, + SectionInfo: &gitdiff.DiffLineSectionInfo{ + Path: "README.md", + LastLeftIdx: 0, + LastRightIdx: 0, + LeftIdx: 1, + RightIdx: 1, + LeftHunkSize: 3, + RightHunkSize: 4, + }, }, { LeftIdx: 1, |