Skip to content

Commit

Permalink
refactor: 采用标准库代替 sliceutil 的部分功能
Browse files Browse the repository at this point in the history
  • Loading branch information
caixw committed Oct 12, 2024
1 parent 43150eb commit c34ff12
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 32 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
go: ['1.21.x', '1.23.x']
go: ['1.23.x']

steps:

Expand Down
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
module github.com/issue9/localeutil

go 1.21
go 1.22.0

require (
github.com/issue9/assert/v4 v4.3.0
github.com/issue9/sliceutil v0.16.1
golang.org/x/text v0.18.0
golang.org/x/tools v0.24.0
github.com/issue9/assert/v4 v4.3.1
github.com/issue9/sliceutil v0.16.2
golang.org/x/text v0.19.0
golang.org/x/tools v0.26.0
)

require (
golang.org/x/mod v0.20.0 // indirect
golang.org/x/mod v0.21.0 // indirect
golang.org/x/sync v0.8.0 // indirect
)
20 changes: 10 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
github.com/issue9/assert/v4 v4.3.0 h1:W3XDKmttsfzihYGxJ9rJoL2ViJgWERB9IxfHcxjv65U=
github.com/issue9/assert/v4 v4.3.0/go.mod h1:v7qDRXi7AsaZZNh8eAK2rkLJg5/clztqQGA1DRv9Lv4=
github.com/issue9/sliceutil v0.16.1 h1:NVZ2feN014oUmMpZvZUrKkKMGhAfzT8WNzJF81krebM=
github.com/issue9/sliceutil v0.16.1/go.mod h1:ldun6sT4/bOJxuMtOXhtc6P7GCwE7L+avV86HNks7qk=
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
github.com/issue9/assert/v4 v4.3.1 h1:dHYODk1yV7j/1baIB6K6UggI4r1Hfuljqic7PaDbwLg=
github.com/issue9/assert/v4 v4.3.1/go.mod h1:v7qDRXi7AsaZZNh8eAK2rkLJg5/clztqQGA1DRv9Lv4=
github.com/issue9/sliceutil v0.16.2 h1:pcS5iCC3HQxRRTdzeVakTgrWlYjE+dGjVNKUhc5COE4=
github.com/issue9/sliceutil v0.16.2/go.mod h1:H12YcbHztIj83H+Tsra62t+so7diRnyIminI6fX/te8=
golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0=
golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
7 changes: 3 additions & 4 deletions message/extract/extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"sync"

"github.com/issue9/localeutil"
"github.com/issue9/sliceutil"
"golang.org/x/tools/go/packages"

"github.com/issue9/localeutil/message"
Expand Down Expand Up @@ -182,10 +181,10 @@ func (ex *extractor) inspect(expr *ast.CallExpr, info *types.Info) bool {
}

func (ex *extractor) tryAppendMsg(expr *ast.CallExpr, pkgName, structName, name string) (continueInspect bool) {
exists := sliceutil.Exists(ex.funcs, func(m fn, _ int) bool {
index := slices.IndexFunc(ex.funcs, func(m fn) bool {
return m.name == name && pkgName == m.pkgName && structName == m.typeName
})
if !exists {
if index < 0 {
return true
}

Expand Down Expand Up @@ -229,7 +228,7 @@ func (ex *extractor) appendMsg(expr *ast.CallExpr) {
ex.mux.Lock()
defer ex.mux.Unlock()

if sliceutil.Exists(ex.msg, func(m message.Message, _ int) bool { return m.Key == key }) {
if slices.IndexFunc(ex.msg, func(m message.Message) bool { return m.Key == key }) >= 0 {
ex.warnLog(localeutil.Phrase("has same key %s at %s:%d, will be ignore", strconv.Quote(key), path, p.Line))
return
}
Expand Down
5 changes: 2 additions & 3 deletions message/extract/testdata/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ module github.com/issue9/localeutil/testdata
require github.com/issue9/localeutil v1.0.0

// NOTE: 需要保证与根目录中 go.mod 的 text 具有相同的版本,否则测试会失败!
require golang.org/x/text v0.18.0 // indirect
require golang.org/x/text v0.19.0 // indirect

replace github.com/issue9/localeutil => ../../..

// NOTE: 需要保证与根目录中 go.mod 的 text 具有相同的版本,否则测试会失败!
go 1.21
go 1.22.0
8 changes: 4 additions & 4 deletions message/extract/testdata/go.sum
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
github.com/issue9/assert/v4 v4.3.0 h1:W3XDKmttsfzihYGxJ9rJoL2ViJgWERB9IxfHcxjv65U=
github.com/issue9/assert/v4 v4.3.0/go.mod h1:v7qDRXi7AsaZZNh8eAK2rkLJg5/clztqQGA1DRv9Lv4=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
github.com/issue9/assert/v4 v4.3.1 h1:dHYODk1yV7j/1baIB6K6UggI4r1Hfuljqic7PaDbwLg=
github.com/issue9/assert/v4 v4.3.1/go.mod h1:v7qDRXi7AsaZZNh8eAK2rkLJg5/clztqQGA1DRv9Lv4=
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
5 changes: 3 additions & 2 deletions message/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package message

import (
"slices"
"strconv"

"github.com/issue9/sliceutil"
Expand Down Expand Up @@ -92,7 +93,7 @@ func (l *Language) MergeTo(log LogFunc, dest []*Language) {
func (l *Language) mergeTo(log LogFunc, dest *Language) {
// 删除只存在于 dest 而不存在于 l 的内容
dest.Messages = sliceutil.Delete(dest.Messages, func(dm Message, _ int) bool {
exist := sliceutil.Exists(l.Messages, func(sm Message, _ int) bool { return sm.Key == dm.Key })
exist := slices.IndexFunc(l.Messages, func(sm Message) bool { return sm.Key == dm.Key }) >= 0
if !exist {
log(localeutil.Phrase("the key %s of %s not found, will be deleted", strconv.Quote(dm.Key), dest.ID))
}
Expand All @@ -101,7 +102,7 @@ func (l *Language) mergeTo(log LogFunc, dest *Language) {

// 将 l 独有的项写入 dest
for _, sm := range l.Messages {
if !sliceutil.Exists(dest.Messages, func(dm Message, _ int) bool { return dm.Key == sm.Key }) {
if slices.IndexFunc(dest.Messages, func(dm Message) bool { return dm.Key == sm.Key }) < 0 {
dest.Messages = append(dest.Messages, sm)
}
}
Expand Down
5 changes: 3 additions & 2 deletions message/serialize/unmarshal.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"io/fs"
"os"
"path/filepath"
"slices"

"github.com/issue9/localeutil"
"github.com/issue9/sliceutil"
Expand Down Expand Up @@ -102,7 +103,7 @@ func joinLanguages(langs []*message.Language) []*message.Language {
delIndexes := make([]int, 0, len(langs))
for index, lang := range langs {
// 该元素已经被标记为删除
if sliceutil.Exists(delIndexes, func(v int, _ int) bool { return index == v }) {
if slices.IndexFunc(delIndexes, func(v int) bool { return index == v }) >= 0 {
continue
}

Expand All @@ -119,6 +120,6 @@ func joinLanguages(langs []*message.Language) []*message.Language {
}

return sliceutil.QuickDelete(langs, func(_ *message.Language, index int) bool {
return sliceutil.Exists(delIndexes, func(i int, _ int) bool { return i == index })
return slices.IndexFunc(delIndexes, func(i int) bool { return i == index }) >= 0
})
}

0 comments on commit c34ff12

Please sign in to comment.