diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 4f43ed7cf..640b04931 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1057,6 +1057,7 @@ "181": "The document has been shared to Liandi, click to view", "182": "Sharing document, please wait...", "183": "Validating index document tree [%d/%d %s]", - "184": "Powered by SiYuan" + "184": "Powered by SiYuan", + "185": "Index verification complete" } } diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index b069930c7..1bbf109e9 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1057,6 +1057,7 @@ "181": "El documento ha sido compartido con Liandi, haga clic para ver", "182": "Compartiendo documento, por favor espere...", "183": "Validando el árbol del documento de índice [%d/%d %s]", - "184": "Con la tecnología de SiYuan" + "184": "Con la tecnología de SiYuan", + "185": "Verificación de índice completada" } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index dd85e48d7..6db8f3206 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1057,6 +1057,7 @@ "181": "Le document a été partagé avec Liandi, cliquez pour afficher", "182": "Partage du document, veuillez patienter...", "183": "Validation de l'arborescence du document d'index [%d/%d %s]", - "184": "Propulsé par SiYuan" + "184": "Propulsé par SiYuan", + "185": "Vérification de l'index terminée" } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 61118c490..11cb02209 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1057,6 +1057,7 @@ "181": "已分享文檔到鏈滴,點擊查看", "182": "正在分享文檔,請稍等...", "183": "正在校驗索引文檔樹 [%d/%d %s]", - "184": "由思源筆記強力驅動" + "184": "由思源筆記強力驅動", + "185": "索引校驗完畢" } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index aaa6e979f..76e61b0e9 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1057,6 +1057,7 @@ "181": "已分享文档到链滴,点击查看", "182": "正在分享文档,请稍等...", "183": "正在校验索引文档树 [%d/%d %s]", - "184": "由思源笔记强力驱动" + "184": "由思源笔记强力驱动", + "185": "索引校验完毕" } } diff --git a/kernel/api/workspace.go b/kernel/api/workspace.go index 6b07968c7..44c52df2e 100644 --- a/kernel/api/workspace.go +++ b/kernel/api/workspace.go @@ -21,11 +21,13 @@ import ( "net/http" "os" "path/filepath" + "sort" "strings" "time" "unicode/utf8" "github.com/88250/gulu" + "github.com/facette/natsort" "github.com/gin-gonic/gin" "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/model" @@ -130,11 +132,23 @@ func getWorkspaces(c *gin.Context) { return } - var workspaces []*Workspace + var workspaces, openedWorkspaces, closedWorkspaces []*Workspace for _, p := range workspacePaths { closed := !util.IsWorkspaceLocked(p) - workspaces = append(workspaces, &Workspace{Path: p, Closed: closed}) + if closed { + closedWorkspaces = append(closedWorkspaces, &Workspace{Path: p, Closed: closed}) + } else { + openedWorkspaces = append(openedWorkspaces, &Workspace{Path: p, Closed: closed}) + } } + sort.Slice(openedWorkspaces, func(i, j int) bool { + return natsort.Compare(util.RemoveEmoji(filepath.Base(openedWorkspaces[i].Path)), util.RemoveEmoji(filepath.Base(openedWorkspaces[j].Path))) + }) + sort.Slice(closedWorkspaces, func(i, j int) bool { + return natsort.Compare(util.RemoveEmoji(filepath.Base(closedWorkspaces[i].Path)), util.RemoveEmoji(filepath.Base(closedWorkspaces[j].Path))) + }) + workspaces = append(workspaces, openedWorkspaces...) + workspaces = append(workspaces, closedWorkspaces...) ret.Data = workspaces } diff --git a/kernel/go.mod b/kernel/go.mod index 60b3f2e75..f841832b2 100644 --- a/kernel/go.mod +++ b/kernel/go.mod @@ -6,7 +6,7 @@ require ( github.com/88250/clipboard v0.1.5 github.com/88250/css v0.1.2 github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798 - github.com/88250/lute v1.7.5-0.20230109135528-9a4b82cd4447 + github.com/88250/lute v1.7.5 github.com/88250/pdfcpu v0.3.13 github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 github.com/ConradIrwin/font v0.0.0-20210318200717-ce8d41cc0732 @@ -17,18 +17,18 @@ require ( github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be github.com/denisbrodbeck/machineid v1.0.1 github.com/dgraph-io/ristretto v0.1.1 - github.com/dustin/go-humanize v1.0.0 + github.com/dustin/go-humanize v1.0.1 github.com/emirpasic/gods v1.18.1 github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb github.com/flopp/go-findfont v0.1.0 github.com/fsnotify/fsnotify v1.6.0 github.com/gabriel-vasile/mimetype v1.4.1 - github.com/getsentry/sentry-go v0.16.0 + github.com/getsentry/sentry-go v0.17.0 github.com/gin-contrib/gzip v0.0.6 github.com/gin-contrib/sessions v0.0.5 github.com/gin-gonic/gin v1.8.2 github.com/gofrs/flock v0.8.1 - github.com/imroc/req/v3 v3.27.0 + github.com/imroc/req/v3 v3.29.0 github.com/jinzhu/copier v0.3.5 github.com/json-iterator/go v1.1.12 github.com/mattn/go-sqlite3 v2.0.3+incompatible @@ -62,9 +62,9 @@ require ( github.com/alecthomas/chroma v0.10.0 // indirect github.com/andybalholm/cascadia v1.3.1 // indirect github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef // indirect - github.com/aws/aws-sdk-go v1.44.175 // indirect + github.com/aws/aws-sdk-go v1.44.180 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/dlclark/regexp2 v1.7.0 // indirect + github.com/dlclark/regexp2 v1.8.0 // indirect github.com/dsnet/compress v0.0.1 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect @@ -76,7 +76,7 @@ require ( github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/mock v1.6.0 // indirect - github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811 // indirect + github.com/google/pprof v0.0.0-20230111200839-76d1ae5aea2b // indirect github.com/google/uuid v1.3.0 // indirect github.com/gopherjs/gopherjs v1.17.2 // indirect github.com/gorilla/context v1.1.1 // indirect @@ -105,7 +105,7 @@ require ( github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/onsi/ginkgo/v2 v2.6.1 // indirect + github.com/onsi/ginkgo/v2 v2.7.0 // indirect github.com/open-spaced-repetition/go-fsrs v0.1.0 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -121,7 +121,7 @@ require ( go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/crypto v0.5.0 // indirect - golang.org/x/exp v0.0.0-20230105202349-8879d0199aa3 // indirect + golang.org/x/exp v0.0.0-20230113213754-f9f960f08ad4 // indirect golang.org/x/mod v0.7.0 // indirect golang.org/x/net v0.5.0 // indirect golang.org/x/sync v0.1.0 // indirect diff --git a/kernel/go.sum b/kernel/go.sum index 7bc19e91a..2fe65d9ba 100644 --- a/kernel/go.sum +++ b/kernel/go.sum @@ -17,10 +17,10 @@ github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5 h1:8HdZozCsXS github.com/88250/go-sqlite3 v1.14.13-0.20220714142610-fbbda1ee84f5/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798 h1:sR/s/Y9wyl79ZRCUERwLPo9zqaB3KhNRodCMTJ4ozEU= github.com/88250/gulu v1.2.3-0.20221117052724-cd06804db798/go.mod h1:I1qBzsksFL2ciGSuqDE7R3XW4BUMrfDgOvSXEk7FsAI= -github.com/88250/lute v1.7.5-0.20230105013116-b3175d9d81f8 h1:C04h1Xiye42GdB+CH7TnxQmEF/zeAZC5G3/aYVco98E= -github.com/88250/lute v1.7.5-0.20230105013116-b3175d9d81f8/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA= github.com/88250/lute v1.7.5-0.20230109135528-9a4b82cd4447 h1:AvdRSsM1BC7mdPyigd6IkJbxl+VooZ3N0mxWTTpIR3I= github.com/88250/lute v1.7.5-0.20230109135528-9a4b82cd4447/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA= +github.com/88250/lute v1.7.5 h1:mcPFURh5sK1WH1kFRjqK5DkMWOfVN2BhyrXitN8GmpQ= +github.com/88250/lute v1.7.5/go.mod h1:cEoBGi0zArPqAsp0MdG9SKinvH/xxZZWXU7sRx8vHSA= github.com/88250/pdfcpu v0.3.13 h1:touMWMZkCGalMIbEg9bxYp7rETM+zwb9hXjwhqi4I7Q= github.com/88250/pdfcpu v0.3.13/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4= github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY= @@ -48,8 +48,8 @@ github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhP github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw= github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef h1:2JGTg6JapxP9/R33ZaagQtAM4EkkSYnIAlOG5EI8gkM= github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef/go.mod h1:JS7hed4L1fj0hXcyEejnW57/7LCetXggd+vwrRnYeII= -github.com/aws/aws-sdk-go v1.44.175 h1:c0NzHHnPXV5kJoTUFQxFN5cUPpX1SxO635XnwL5/oIY= -github.com/aws/aws-sdk-go v1.44.175/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.180 h1:VLZuAHI9fa/3WME5JjpVjcPCNfpGHVMiHx8sLHWhMgI= +github.com/aws/aws-sdk-go v1.44.180/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= @@ -72,13 +72,14 @@ github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkz github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo= -github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dlclark/regexp2 v1.8.0 h1:rJD5HeGIT/2b5CDk63FVCwZA3qgYElfg+oQK7uH5pfE= +github.com/dlclark/regexp2 v1.8.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dsnet/compress v0.0.1 h1:PlZu0n3Tuv04TzpfPbrnI0HW/YwodEXDS+oPKahKF0Q= github.com/dsnet/compress v0.0.1/go.mod h1:Aw8dCMJ7RioblQeTqt88akK31OvO8Dhf5JflhBbQEHo= github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM= @@ -95,8 +96,8 @@ github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4 github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= -github.com/getsentry/sentry-go v0.16.0 h1:owk+S+5XcgJLlGR/3+3s6N4d+uKwqYvh/eS0AIMjPWo= -github.com/getsentry/sentry-go v0.16.0/go.mod h1:ZXCloQLj0pG7mja5NK6NPf2V4A88YJ4pNlc2mOHwh6Y= +github.com/getsentry/sentry-go v0.17.0 h1:UustVWnOoDFHBS7IJUB2QK/nB5pap748ZEp0swnQJak= +github.com/getsentry/sentry-go v0.17.0/go.mod h1:B82dxtBvxG0KaPD8/hfSV+VcHD+Lg/xUS4JuQn1P4cM= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= @@ -170,8 +171,8 @@ github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811 h1:wORs2YN3R3ona/CXYuTvLM31QlgoNKHvlCNuArCDDCU= -github.com/google/pprof v0.0.0-20221219190121-3cb0bae90811/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/google/pprof v0.0.0-20230111200839-76d1ae5aea2b h1:8htHrh2bw9c7Idkb7YNac+ZpTqLMjRpI+FWu51ltaQc= +github.com/google/pprof v0.0.0-20230111200839-76d1ae5aea2b/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -209,8 +210,8 @@ github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= -github.com/imroc/req/v3 v3.27.0 h1:3x0sW3ukFG8teOqZwyKyFFLX/gB1pXaCmAZuX5BSblk= -github.com/imroc/req/v3 v3.27.0/go.mod h1:u+HHE8MLYi6SkkfMKb09lvmQdJwUf4wfnVGoEsj8Xtk= +github.com/imroc/req/v3 v3.29.0 h1:QES7vJ7pE6AJWDJtntk81v299PUgcMY0XxcrP4Drmt4= +github.com/imroc/req/v3 v3.29.0/go.mod h1:u+HHE8MLYi6SkkfMKb09lvmQdJwUf4wfnVGoEsj8Xtk= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= @@ -301,8 +302,8 @@ github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvw github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.6.1 h1:1xQPCjcqYw/J5LchOcp4/2q/jzJFjiAOc25chhnDw+Q= -github.com/onsi/ginkgo/v2 v2.6.1/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= +github.com/onsi/ginkgo/v2 v2.7.0 h1:/XxtEV3I3Eif/HobnVx9YmJgk8ENdRsuUmM+fLCFNow= +github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= @@ -463,8 +464,8 @@ golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= -golang.org/x/exp v0.0.0-20230105202349-8879d0199aa3 h1:fJwx88sMf5RXwDwziL0/Mn9Wqs+efMSo/RYcL+37W9c= -golang.org/x/exp v0.0.0-20230105202349-8879d0199aa3/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230113213754-f9f960f08ad4 h1:CNkDRtCj8otM5CFz5jYvbr8ioXX8flVsLfDWEj0M5kk= +golang.org/x/exp v0.0.0-20230113213754-f9f960f08ad4/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20190823064033-3a9bac650e44/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= diff --git a/kernel/model/box.go b/kernel/model/box.go index bd29ac1d1..f63dc0d71 100644 --- a/kernel/model/box.go +++ b/kernel/model/box.go @@ -391,47 +391,28 @@ func isSkipFile(filename string) bool { return strings.HasPrefix(filename, ".") || "node_modules" == filename || "dist" == filename || "target" == filename } -func (box *Box) renameSubTrees(tree *parse.Tree) { - subFiles := box.ListFiles(tree.Path) - totals := len(subFiles) + 3 - showProgress := 64 < totals - for i, subFile := range subFiles { - if !strings.HasSuffix(subFile.path, ".sy") { - continue - } - - subTree, err := LoadTree(box.ID, subFile.path) // LoadTree 会重新构造 HPath - if nil != err { - continue - } - - sql.UpsertTreeQueue(subTree) - if showProgress { - msg := fmt.Sprintf(Conf.Language(107), subTree.HPath) - util.PushProgress(util.PushProgressCodeProgressed, i, totals, msg) - } - } - - if showProgress { - util.ClearPushProgress(totals) - } -} - func moveTree(tree *parse.Tree) { treenode.SetBlockTreePath(tree) sql.UpsertTreeQueue(tree) box := Conf.Box(tree.Box) - subFiles := box.ListFiles(tree.Path) - totals := len(subFiles) + 5 - showProgress := 64 < totals + box.renameSubTrees(tree) +} - for i, subFile := range subFiles { +func (box *Box) renameSubTrees(tree *parse.Tree) { + subFiles := box.ListFiles(tree.Path) + box.moveTrees0(subFiles) +} + +func (box *Box) moveTrees0(files []*FileInfo) { + totals := len(files) + 5 + showProgress := 64 < totals + for i, subFile := range files { if !strings.HasSuffix(subFile.path, ".sy") { continue } - subTree, err := LoadTree(box.ID, subFile.path) + subTree, err := LoadTree(box.ID, subFile.path) // LoadTree 会重新构造 HPath if nil != err { continue } diff --git a/kernel/model/mount.go b/kernel/model/mount.go index ec895d5f1..e3ac12ef8 100644 --- a/kernel/model/mount.go +++ b/kernel/model/mount.go @@ -123,16 +123,16 @@ func Unmount(boxID string) { } func unmount0(boxID string) { - for _, box := range Conf.GetOpenedBoxes() { - if box.ID == boxID { - boxConf := box.GetConf() - boxConf.Closed = true - box.SaveConf(boxConf) - box.Unindex() - debug.FreeOSMemory() - return - } + box := Conf.Box(boxID) + if nil == box { + return } + + boxConf := box.GetConf() + boxConf.Closed = true + box.SaveConf(boxConf) + box.Unindex() + debug.FreeOSMemory() } func Mount(boxID string) (alreadyMount bool, err error) { diff --git a/kernel/model/repository.go b/kernel/model/repository.go index eb5abe53c..dc1170b30 100644 --- a/kernel/model/repository.go +++ b/kernel/model/repository.go @@ -1203,7 +1203,7 @@ func subscribeEvents() { indexUpsertFileCount := 0 eventbus.Subscribe(eventbus.EvtIndexUpsertFile, func(context map[string]interface{}, path string) { msg := fmt.Sprintf(Conf.Language(160), filepath.Base(path)) - if 0 == indexUpsertFileCount%128 { + if 0 == indexUpsertFileCount%64 { util.SetBootDetails(msg) util.ContextPushMsg(context, msg) } @@ -1235,7 +1235,7 @@ func subscribeEvents() { eventbus.Subscribe(eventbus.EvtCheckoutUpsertFile, func(context map[string]interface{}, path string) { msg := fmt.Sprintf(Conf.Language(162), filepath.Base(path)) util.IncBootProgress(bootProgressPart, msg) - if 0 == coUpsertFileCount%128 { + if 0 == coUpsertFileCount%64 { util.ContextPushMsg(context, msg) } coUpsertFileCount++ diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index ce90b5177..96b2b2df2 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1234,7 +1234,17 @@ var autoFixLock = sync.Mutex{} func autoFixIndex() { defer logging.Recover() - if util.IsMutexLocked(&autoFixLock) || isFullReindexing { + if isFullReindexing { + logging.LogInfof("skip check index caused by full reindexing") + return + } + + if util.IsMutexLocked(&syncLock) { + logging.LogInfof("skip check index caused by sync lock") + return + } + + if util.IsMutexLocked(&autoFixLock) { return } @@ -1334,7 +1344,7 @@ func autoFixIndex() { reindexTree(rootID, i, size) } - util.PushStatusBar("") + util.PushStatusBar(Conf.Language(185)) } func reindexTreeByPath(box, p string, i, size int) {