1
0
Fork 0
forked from forgejo/forgejo

Declaring specific types for enums constants.

This makes the code more strict since you can't assign or compare
values of different types without proper cast.
This commit is contained in:
Andrey Nering 2016-01-06 18:00:40 -02:00
parent 73474c043b
commit 81ed5c4bee
2 changed files with 27 additions and 20 deletions

View file

@ -28,31 +28,34 @@ import (
"github.com/sergi/go-diff/diffmatchpatch" "github.com/sergi/go-diff/diffmatchpatch"
) )
// Diff line types. type DiffLineType uint8
const (
DIFF_LINE_PLAIN = iota + 1
DIFF_LINE_ADD
DIFF_LINE_DEL
DIFF_LINE_SECTION
)
const ( const (
DIFF_FILE_ADD = iota + 1 DIFF_LINE_PLAIN DiffLineType = iota + 1
DIFF_FILE_CHANGE DIFF_LINE_ADD DiffLineType = iota + 1
DIFF_FILE_DEL DIFF_LINE_DEL DiffLineType = iota + 1
DIFF_FILE_RENAME DIFF_LINE_SECTION DiffLineType = iota + 1
)
type DiffFileType uint8
const (
DIFF_FILE_ADD DiffFileType = iota + 1
DIFF_FILE_CHANGE DiffFileType = iota + 1
DIFF_FILE_DEL DiffFileType = iota + 1
DIFF_FILE_RENAME DiffFileType = iota + 1
) )
type DiffLine struct { type DiffLine struct {
LeftIdx int LeftIdx int
RightIdx int RightIdx int
Type int Type DiffLineType
Content string Content string
ParsedContent template.HTML ParsedContent template.HTML
} }
func (d DiffLine) GetType() int { func (d *DiffLine) GetType() int {
return d.Type return int(d.Type)
} }
type DiffSection struct { type DiffSection struct {
@ -60,7 +63,7 @@ type DiffSection struct {
Lines []*DiffLine Lines []*DiffLine
} }
func diffToHtml(diffRecord []diffmatchpatch.Diff, lineType int) template.HTML { func diffToHtml(diffRecord []diffmatchpatch.Diff, lineType DiffLineType) template.HTML {
result := "" result := ""
for _, s := range diffRecord { for _, s := range diffRecord {
if s.Type == diffmatchpatch.DiffInsert && lineType == DIFF_LINE_ADD { if s.Type == diffmatchpatch.DiffInsert && lineType == DIFF_LINE_ADD {
@ -146,7 +149,7 @@ type DiffFile struct {
OldName string OldName string
Index int Index int
Addition, Deletion int Addition, Deletion int
Type int Type DiffFileType
IsCreated bool IsCreated bool
IsDeleted bool IsDeleted bool
IsBin bool IsBin bool
@ -154,6 +157,10 @@ type DiffFile struct {
Sections []*DiffSection Sections []*DiffSection
} }
func (diffFile *DiffFile) GetType() int {
return int(diffFile.Type)
}
type Diff struct { type Diff struct {
TotalAddition, TotalDeletion int TotalAddition, TotalDeletion int
Files []*DiffFile Files []*DiffFile

View file

@ -26,7 +26,7 @@
{{end}} {{end}}
</div> </div>
<!-- todo finish all file status, now modify, add, delete and rename --> <!-- todo finish all file status, now modify, add, delete and rename -->
<span class="status {{DiffTypeToStr .Type}} poping up" data-content="{{DiffTypeToStr .Type}}" data-variation="inverted tiny" data-position="right center">&nbsp;</span> <span class="status {{DiffTypeToStr .GetType}} poping up" data-content="{{DiffTypeToStr .GetType}}" data-variation="inverted tiny" data-position="right center">&nbsp;</span>
<a class="file" href="#diff-{{.Index}}">{{.Name}}</a> <a class="file" href="#diff-{{.Index}}">{{.Name}}</a>
</li> </li>
{{end}} {{end}}
@ -71,7 +71,7 @@
{{if $.IsSplitStyle}} {{if $.IsSplitStyle}}
{{range $j, $section := .Sections}} {{range $j, $section := .Sections}}
{{range $k, $line := .Lines}} {{range $k, $line := .Lines}}
<tr class="{{DiffLineTypeToStr .Type}}-code nl-{{$k}} ol-{{$k}}"> <tr class="{{DiffLineTypeToStr .GetType}}-code nl-{{$k}} ol-{{$k}}">
<td class="lines-num lines-num-old"> <td class="lines-num lines-num-old">
<span rel="{{if $line.LeftIdx}}diff-{{Sha1 $file.Name}}L{{$line.LeftIdx}}{{end}}">{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}</span> <span rel="{{if $line.LeftIdx}}diff-{{Sha1 $file.Name}}L{{$line.LeftIdx}}{{end}}">{{if $line.LeftIdx}}{{$line.LeftIdx}}{{end}}</span>
</td> </td>
@ -90,8 +90,8 @@
{{else}} {{else}}
{{range $j, $section := .Sections}} {{range $j, $section := .Sections}}
{{range $k, $line := .Lines}} {{range $k, $line := .Lines}}
<tr class="{{DiffLineTypeToStr .Type}}-code nl-{{$k}} ol-{{$k}}"> <tr class="{{DiffLineTypeToStr .GetType}}-code nl-{{$k}} ol-{{$k}}">
{{if eq .Type 4}} {{if eq .GetType 4}}
<td colspan="2" class="lines-num"> <td colspan="2" class="lines-num">
{{if gt $j 0}}<span class="fold octicon octicon-fold"></span>{{end}} {{if gt $j 0}}<span class="fold octicon octicon-fold"></span>{{end}}
</td> </td>