diff --git a/.golangci.yml b/.golangci.yml index b1d32686aa3..375f169505b 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -28,6 +28,8 @@ linters-settings: - github.com/pkg/errors: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" - github.com/cockroachdb/errors: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" - github.com/hashicorp/go-multierror: "Use github.com/sourcegraph/sourcegraph/lib/errors instead" + # More performant regexp + - regexp: "Use github.com/grafana/regexp instead" gocritic: disabled-checks: - appendAssign # Too many false positives diff --git a/cmd/frontend/backend/go_importers.go b/cmd/frontend/backend/go_importers.go index 2ebd756215a..63af676ea75 100644 --- a/cmd/frontend/backend/go_importers.go +++ b/cmd/frontend/backend/go_importers.go @@ -7,10 +7,11 @@ import ( "io" "net/http" "net/url" - "regexp" "strconv" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/cmd/frontend/envvar" "github.com/sourcegraph/sourcegraph/internal/api" "github.com/sourcegraph/sourcegraph/internal/api/internalapi" diff --git a/cmd/frontend/graphqlbackend/search_results.go b/cmd/frontend/graphqlbackend/search_results.go index 395be74fe37..416c9a3e2f4 100644 --- a/cmd/frontend/graphqlbackend/search_results.go +++ b/cmd/frontend/graphqlbackend/search_results.go @@ -5,13 +5,13 @@ import ( "encoding/json" "fmt" "math" - "regexp" "sort" "strconv" "strings" "sync" "time" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/neelance/parallel" "github.com/opentracing/opentracing-go" diff --git a/cmd/frontend/internal/app/editor.go b/cmd/frontend/internal/app/editor.go index 5357c5573fc..9a3abb5727a 100644 --- a/cmd/frontend/internal/app/editor.go +++ b/cmd/frontend/internal/app/editor.go @@ -7,10 +7,11 @@ import ( "net/http" "net/url" "path" - "regexp" "strconv" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/cmd/frontend/backend" "github.com/sourcegraph/sourcegraph/cmd/frontend/internal/cloneurls" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/cmd/frontend/internal/app/ui/handlers.go b/cmd/frontend/internal/app/ui/handlers.go index 57977996f12..02b7e3cdd60 100644 --- a/cmd/frontend/internal/app/ui/handlers.go +++ b/cmd/frontend/internal/app/ui/handlers.go @@ -9,12 +9,12 @@ import ( "net/http/httputil" "net/url" "os" - "regexp" "strconv" "strings" "time" "github.com/gorilla/mux" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/cmd/frontend/auth" diff --git a/cmd/frontend/internal/markdown/markdown.go b/cmd/frontend/internal/markdown/markdown.go index d19a264c351..e87a34856e0 100644 --- a/cmd/frontend/internal/markdown/markdown.go +++ b/cmd/frontend/internal/markdown/markdown.go @@ -1,7 +1,7 @@ package markdown import ( - "regexp" + "regexp" //nolint:depguard // bluemonday requires this pkg "sync" "github.com/microcosm-cc/bluemonday" diff --git a/cmd/frontend/internal/routevar/repo_test.go b/cmd/frontend/internal/routevar/repo_test.go index 013108114cf..00932adebfd 100644 --- a/cmd/frontend/internal/routevar/repo_test.go +++ b/cmd/frontend/internal/routevar/repo_test.go @@ -4,10 +4,10 @@ import ( "net/http" "net/url" "reflect" - "regexp" "testing" "github.com/gorilla/mux" + "github.com/grafana/regexp" ) func TestRepoPattern(t *testing.T) { diff --git a/cmd/searcher/search/search_regex.go b/cmd/searcher/search/search_regex.go index 0e232bf3890..c41dcd6d446 100644 --- a/cmd/searcher/search/search_regex.go +++ b/cmd/searcher/search/search_regex.go @@ -4,13 +4,13 @@ import ( "bytes" "context" "io" - "regexp" - "regexp/syntax" "strings" "sync" "time" "unicode/utf8" + "github.com/grafana/regexp" + "github.com/grafana/regexp/syntax" "github.com/opentracing/opentracing-go/ext" otlog "github.com/opentracing/opentracing-go/log" "go.uber.org/atomic" diff --git a/cmd/searcher/search/search_regex_test.go b/cmd/searcher/search/search_regex_test.go index 8b5ff11fb9b..6d0215915f3 100644 --- a/cmd/searcher/search/search_regex_test.go +++ b/cmd/searcher/search/search_regex_test.go @@ -6,13 +6,14 @@ import ( "context" "os" "reflect" - "regexp" - "regexp/syntax" "sort" "strconv" "testing" "testing/iotest" + "github.com/grafana/regexp" + "github.com/grafana/regexp/syntax" + "github.com/sourcegraph/sourcegraph/cmd/searcher/protocol" "github.com/sourcegraph/sourcegraph/internal/pathmatch" "github.com/sourcegraph/sourcegraph/internal/store" diff --git a/cmd/searcher/search/zoekt_search.go b/cmd/searcher/search/zoekt_search.go index 0883df2e7f9..cb7903badae 100644 --- a/cmd/searcher/search/zoekt_search.go +++ b/cmd/searcher/search/zoekt_search.go @@ -4,7 +4,7 @@ import ( "archive/zip" "context" "io" - "regexp/syntax" + "regexp/syntax" //nolint:depguard // zoekt requires this pkg "sync" "sync/atomic" "time" diff --git a/cmd/symbols/internal/database/init.go b/cmd/symbols/internal/database/init.go index 34fc375309e..d8b8175b2f0 100644 --- a/cmd/symbols/internal/database/init.go +++ b/cmd/symbols/internal/database/init.go @@ -2,8 +2,8 @@ package database import ( "database/sql" - "regexp" + "github.com/grafana/regexp" "github.com/mattn/go-sqlite3" ) diff --git a/cmd/symbols/internal/database/store/search.go b/cmd/symbols/internal/database/store/search.go index 517cb2aba93..41df4b832fc 100644 --- a/cmd/symbols/internal/database/store/search.go +++ b/cmd/symbols/internal/database/store/search.go @@ -3,9 +3,9 @@ package store import ( "context" "database/sql" - "regexp/syntax" "strings" + "github.com/grafana/regexp/syntax" "github.com/keegancsmith/sqlf" "github.com/sourcegraph/sourcegraph/cmd/symbols/internal/types" diff --git a/dev/codeintel-qa/cmd/upload/indexes.go b/dev/codeintel-qa/cmd/upload/indexes.go index 5f96e1284b8..0273ac4b115 100644 --- a/dev/codeintel-qa/cmd/upload/indexes.go +++ b/dev/codeintel-qa/cmd/upload/indexes.go @@ -2,7 +2,8 @@ package main import ( "os" - "regexp" + + "github.com/grafana/regexp" ) var indexFilenamePattern = regexp.MustCompile(`^(.+)\.\d+\.([0-9A-Fa-f]{40})\.dump$`) diff --git a/dev/depgraph/internal/graph/imports.go b/dev/depgraph/internal/graph/imports.go index 664eb26bb07..c201137d26e 100644 --- a/dev/depgraph/internal/graph/imports.go +++ b/dev/depgraph/internal/graph/imports.go @@ -5,9 +5,10 @@ import ( "fmt" "os" "path/filepath" - "regexp" "sort" "strings" + + "github.com/grafana/regexp" ) const rootPackage = "github.com/sourcegraph/sourcegraph" diff --git a/dev/depgraph/internal/graph/names.go b/dev/depgraph/internal/graph/names.go index 7bad3ac7d02..c7bfaef6c0f 100644 --- a/dev/depgraph/internal/graph/names.go +++ b/dev/depgraph/internal/graph/names.go @@ -4,8 +4,9 @@ import ( "bytes" "os" "path/filepath" - "regexp" "sort" + + "github.com/grafana/regexp" ) // parseNames returns a map from package paths to the name declared by that package. diff --git a/dev/depgraph/internal/lints/util.go b/dev/depgraph/internal/lints/util.go index 97698c12077..575bb38bc89 100644 --- a/dev/depgraph/internal/lints/util.go +++ b/dev/depgraph/internal/lints/util.go @@ -1,9 +1,10 @@ package lints import ( - "regexp" "sort" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/dev/depgraph/internal/graph" ) diff --git a/dev/depgraph/internal/visualization/dot.go b/dev/depgraph/internal/visualization/dot.go index 3a1ed1c79fa..3ec8e9fbbce 100644 --- a/dev/depgraph/internal/visualization/dot.go +++ b/dev/depgraph/internal/visualization/dot.go @@ -4,9 +4,10 @@ import ( "bytes" "fmt" "path/filepath" - "regexp" "sort" "strings" + + "github.com/grafana/regexp" ) // Dotify serializes the given package and edge data into a DOT-formatted graph. diff --git a/dev/schemadoc/main.go b/dev/schemadoc/main.go index 896fc0b3184..5c777c485d0 100644 --- a/dev/schemadoc/main.go +++ b/dev/schemadoc/main.go @@ -8,13 +8,13 @@ import ( "log" "os" "os/exec" - "regexp" "runtime" "sort" "strings" "sync" "time" + "github.com/grafana/regexp" "github.com/lib/pq" _ "github.com/lib/pq" "golang.org/x/sync/errgroup" diff --git a/dev/sg/internal/bk/logs.go b/dev/sg/internal/bk/logs.go index 4e12b81808a..8b7c87179aa 100644 --- a/dev/sg/internal/bk/logs.go +++ b/dev/sg/internal/bk/logs.go @@ -1,8 +1,9 @@ package bk import ( - "regexp" "strings" + + "github.com/grafana/regexp" ) // CleanANSI cleans up Buildkite log output markup. diff --git a/dev/sg/internal/loki/loki.go b/dev/sg/internal/loki/loki.go index 5d60a6bd728..5d1756deb70 100644 --- a/dev/sg/internal/loki/loki.go +++ b/dev/sg/internal/loki/loki.go @@ -8,9 +8,10 @@ import ( "io" "net/http" "net/url" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/dev/sg/internal/bk" "github.com/sourcegraph/sourcegraph/lib/errors" ) diff --git a/dev/sg/internal/migration/squash.go b/dev/sg/internal/migration/squash.go index f5936819d91..2c536dd8854 100644 --- a/dev/sg/internal/migration/squash.go +++ b/dev/sg/internal/migration/squash.go @@ -7,11 +7,12 @@ import ( "os" "os/exec" "path/filepath" - "regexp" "strconv" "strings" "time" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/dev/sg/internal/db" "github.com/sourcegraph/sourcegraph/dev/sg/internal/run" "github.com/sourcegraph/sourcegraph/dev/sg/internal/stdout" diff --git a/dev/sg/internal/rfc/rfc.go b/dev/sg/internal/rfc/rfc.go index 55d19be8709..8e675d3ce4b 100644 --- a/dev/sg/internal/rfc/rfc.go +++ b/dev/sg/internal/rfc/rfc.go @@ -4,9 +4,9 @@ import ( "context" "fmt" "net/http" - "regexp" "strings" + "github.com/grafana/regexp" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "google.golang.org/api/drive/v3" diff --git a/dev/sg/internal/run/run.go b/dev/sg/internal/run/run.go index bdf1bd80182..eb9ebd9c2ec 100644 --- a/dev/sg/internal/run/run.go +++ b/dev/sg/internal/run/run.go @@ -8,11 +8,11 @@ import ( "os" "os/exec" "path/filepath" - "regexp" "strings" "sync" "time" + "github.com/grafana/regexp" "github.com/rjeczalik/notify" "github.com/sourcegraph/sourcegraph/dev/sg/internal/stdout" diff --git a/dev/sg/sg_ci.go b/dev/sg/sg_ci.go index 2768d40fce5..c33f67a8a07 100644 --- a/dev/sg/sg_ci.go +++ b/dev/sg/sg_ci.go @@ -8,7 +8,6 @@ import ( "net/url" "os" "os/exec" - "regexp" "strings" "time" @@ -16,6 +15,7 @@ import ( "github.com/buildkite/go-buildkite/v3/buildkite" "github.com/gen2brain/beeep" + "github.com/grafana/regexp" "github.com/peterbourgon/ff/v3/ffcli" "github.com/sourcegraph/sourcegraph/dev/sg/internal/bk" diff --git a/enterprise/cmd/frontend/internal/codeintel/resolvers/mock_iface_test.go b/enterprise/cmd/frontend/internal/codeintel/resolvers/mock_iface_test.go index 8b8434e31fc..7f70c4c4959 100644 --- a/enterprise/cmd/frontend/internal/codeintel/resolvers/mock_iface_test.go +++ b/enterprise/cmd/frontend/internal/codeintel/resolvers/mock_iface_test.go @@ -4,10 +4,10 @@ package resolvers import ( "context" - "regexp" "sync" "time" + regexp "github.com/grafana/regexp" enqueuer "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/autoindex/enqueuer" dbstore "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" lsifstore "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/lsifstore" diff --git a/enterprise/cmd/frontend/internal/executorqueue/handler/routes.go b/enterprise/cmd/frontend/internal/executorqueue/handler/routes.go index f89c3e9dd2a..35ae704a75b 100644 --- a/enterprise/cmd/frontend/internal/executorqueue/handler/routes.go +++ b/enterprise/cmd/frontend/internal/executorqueue/handler/routes.go @@ -6,9 +6,9 @@ import ( "fmt" "io" "net/http" - "regexp" "github.com/gorilla/mux" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" apiclient "github.com/sourcegraph/sourcegraph/enterprise/internal/executor" diff --git a/enterprise/cmd/repo-updater/internal/authz/integration_test.go b/enterprise/cmd/repo-updater/internal/authz/integration_test.go index fd972068244..bd2d0c2d49f 100644 --- a/enterprise/cmd/repo-updater/internal/authz/integration_test.go +++ b/enterprise/cmd/repo-updater/internal/authz/integration_test.go @@ -8,10 +8,10 @@ import ( "fmt" "net/url" "os" - "regexp" "testing" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" authzGitHub "github.com/sourcegraph/sourcegraph/enterprise/internal/authz/github" edb "github.com/sourcegraph/sourcegraph/enterprise/internal/database" diff --git a/enterprise/cmd/worker/internal/codeintel/indexing/iface.go b/enterprise/cmd/worker/internal/codeintel/indexing/iface.go index b87429ec92b..4ef8a4726be 100644 --- a/enterprise/cmd/worker/internal/codeintel/indexing/iface.go +++ b/enterprise/cmd/worker/internal/codeintel/indexing/iface.go @@ -2,9 +2,10 @@ package indexing import ( "context" - "regexp" "time" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/policies" "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/enterprise/cmd/worker/internal/codeintel/indexing/mock_iface_test.go b/enterprise/cmd/worker/internal/codeintel/indexing/mock_iface_test.go index 7d47ba16af4..8f530ed2809 100644 --- a/enterprise/cmd/worker/internal/codeintel/indexing/mock_iface_test.go +++ b/enterprise/cmd/worker/internal/codeintel/indexing/mock_iface_test.go @@ -4,10 +4,10 @@ package indexing import ( "context" - "regexp" "sync" "time" + regexp "github.com/grafana/regexp" policies "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/policies" dbstore "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" api "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/enterprise/dev/ci/gen-pipeline.go b/enterprise/dev/ci/gen-pipeline.go index 6d79febec3a..a8a97e853ed 100644 --- a/enterprise/dev/ci/gen-pipeline.go +++ b/enterprise/dev/ci/gen-pipeline.go @@ -9,10 +9,11 @@ import ( "io" "log" "os" - "regexp" "strings" "time" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/dev/ci/runtype" "github.com/sourcegraph/sourcegraph/enterprise/dev/ci/internal/buildkite" "github.com/sourcegraph/sourcegraph/enterprise/dev/ci/internal/ci" diff --git a/enterprise/dev/ci/internal/buildkite/buildkite.go b/enterprise/dev/ci/internal/buildkite/buildkite.go index 9000f06d625..c530fd9b2af 100644 --- a/enterprise/dev/ci/internal/buildkite/buildkite.go +++ b/enterprise/dev/ci/internal/buildkite/buildkite.go @@ -11,11 +11,11 @@ import ( "fmt" "io" "os" - "regexp" "strconv" "strings" "github.com/ghodss/yaml" + "github.com/grafana/regexp" ) type featureFlags struct { diff --git a/enterprise/dev/ci/internal/ci/operations/operations.go b/enterprise/dev/ci/internal/ci/operations/operations.go index c01393d79ae..5f0546ba9f3 100644 --- a/enterprise/dev/ci/internal/ci/operations/operations.go +++ b/enterprise/dev/ci/internal/ci/operations/operations.go @@ -2,7 +2,8 @@ package operations import ( "fmt" - "regexp" + + "github.com/grafana/regexp" bk "github.com/sourcegraph/sourcegraph/enterprise/dev/ci/internal/buildkite" ) diff --git a/enterprise/internal/batches/search/syntax/parse_tree.go b/enterprise/internal/batches/search/syntax/parse_tree.go index 8c7a3d3fce5..a3613183e07 100644 --- a/enterprise/internal/batches/search/syntax/parse_tree.go +++ b/enterprise/internal/batches/search/syntax/parse_tree.go @@ -3,8 +3,9 @@ package syntax import ( "bytes" "fmt" - "regexp" "strings" + + "github.com/grafana/regexp" ) // The parse tree for search input. It is a list of expressions. diff --git a/enterprise/internal/batches/service/workspace_resolver.go b/enterprise/internal/batches/service/workspace_resolver.go index 0590fe4df22..6af1eff9577 100644 --- a/enterprise/internal/batches/service/workspace_resolver.go +++ b/enterprise/internal/batches/service/workspace_resolver.go @@ -5,11 +5,11 @@ import ( "fmt" "os" "path" - "regexp" "sort" "sync" "github.com/gobwas/glob" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/enterprise/internal/batches/store" btypes "github.com/sourcegraph/sourcegraph/enterprise/internal/batches/types" diff --git a/enterprise/internal/batches/sources/main_test.go b/enterprise/internal/batches/sources/main_test.go index b998bef711f..44da16c6f84 100644 --- a/enterprise/internal/batches/sources/main_test.go +++ b/enterprise/internal/batches/sources/main_test.go @@ -6,12 +6,12 @@ import ( "net/http" "os" "path/filepath" - "regexp" "strings" "testing" "github.com/dnaeon/go-vcr/cassette" "github.com/dnaeon/go-vcr/recorder" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/internal/extsvc" diff --git a/enterprise/internal/batches/store/text_search.go b/enterprise/internal/batches/store/text_search.go index 0c58810e0dd..26009a6554d 100644 --- a/enterprise/internal/batches/store/text_search.go +++ b/enterprise/internal/batches/store/text_search.go @@ -1,8 +1,7 @@ package store import ( - "regexp" - + "github.com/grafana/regexp" "github.com/keegancsmith/sqlf" "github.com/sourcegraph/sourcegraph/enterprise/internal/batches/search" diff --git a/enterprise/internal/codeintel/autoindex/enqueuer/enqueuer_test.go b/enterprise/internal/codeintel/autoindex/enqueuer/enqueuer_test.go index ba5f571d125..b7a51f17ffe 100644 --- a/enterprise/internal/codeintel/autoindex/enqueuer/enqueuer_test.go +++ b/enterprise/internal/codeintel/autoindex/enqueuer/enqueuer_test.go @@ -3,11 +3,11 @@ package enqueuer import ( "context" "fmt" - "regexp" "sort" "testing" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "golang.org/x/time/rate" store "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" diff --git a/enterprise/internal/codeintel/autoindex/enqueuer/iface.go b/enterprise/internal/codeintel/autoindex/enqueuer/iface.go index 2c94899ffd1..ef600fe2924 100644 --- a/enterprise/internal/codeintel/autoindex/enqueuer/iface.go +++ b/enterprise/internal/codeintel/autoindex/enqueuer/iface.go @@ -2,7 +2,8 @@ package enqueuer import ( "context" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/enterprise/internal/codeintel/autoindex/enqueuer/mock_iface_test.go b/enterprise/internal/codeintel/autoindex/enqueuer/mock_iface_test.go index 2397cfc2c68..6b7d6a72ad5 100644 --- a/enterprise/internal/codeintel/autoindex/enqueuer/mock_iface_test.go +++ b/enterprise/internal/codeintel/autoindex/enqueuer/mock_iface_test.go @@ -4,9 +4,9 @@ package enqueuer import ( "context" - "regexp" "sync" + regexp "github.com/grafana/regexp" dbstore "github.com/sourcegraph/sourcegraph/enterprise/internal/codeintel/stores/dbstore" api "github.com/sourcegraph/sourcegraph/internal/api" basestore "github.com/sourcegraph/sourcegraph/internal/database/basestore" diff --git a/enterprise/internal/codeintel/gitserver/client.go b/enterprise/internal/codeintel/gitserver/client.go index ccc4acdeccf..2cfe288ff86 100644 --- a/enterprise/internal/codeintel/gitserver/client.go +++ b/enterprise/internal/codeintel/gitserver/client.go @@ -3,9 +3,9 @@ package gitserver import ( "context" "os" - "regexp" "time" + "github.com/grafana/regexp" "github.com/opentracing/opentracing-go/log" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/enterprise/internal/compute/match_only_command.go b/enterprise/internal/compute/match_only_command.go index 65dba2c73cf..e8913d773f4 100644 --- a/enterprise/internal/compute/match_only_command.go +++ b/enterprise/internal/compute/match_only_command.go @@ -3,9 +3,10 @@ package compute import ( "context" "fmt" - "regexp" "strconv" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/search/result" ) diff --git a/enterprise/internal/compute/match_only_command_test.go b/enterprise/internal/compute/match_only_command_test.go index dcbb585d9e3..f2102c6badd 100644 --- a/enterprise/internal/compute/match_only_command_test.go +++ b/enterprise/internal/compute/match_only_command_test.go @@ -2,10 +2,11 @@ package compute import ( "encoding/json" - "regexp" "testing" + "github.com/grafana/regexp" "github.com/hexops/autogold" + "github.com/sourcegraph/sourcegraph/internal/search/result" ) diff --git a/enterprise/internal/compute/output_command.go b/enterprise/internal/compute/output_command.go index c1d506e9c55..45b757d08c7 100644 --- a/enterprise/internal/compute/output_command.go +++ b/enterprise/internal/compute/output_command.go @@ -3,9 +3,10 @@ package compute import ( "context" "fmt" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/authz" "github.com/sourcegraph/sourcegraph/internal/comby" "github.com/sourcegraph/sourcegraph/internal/search/result" diff --git a/enterprise/internal/compute/output_command_test.go b/enterprise/internal/compute/output_command_test.go index c27426596e9..4c6b91aacb1 100644 --- a/enterprise/internal/compute/output_command_test.go +++ b/enterprise/internal/compute/output_command_test.go @@ -3,9 +3,9 @@ package compute import ( "context" "os" - "regexp" "testing" + "github.com/grafana/regexp" "github.com/hexops/autogold" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/enterprise/internal/compute/query.go b/enterprise/internal/compute/query.go index 561feda2181..04a251da9f0 100644 --- a/enterprise/internal/compute/query.go +++ b/enterprise/internal/compute/query.go @@ -2,7 +2,8 @@ package compute import ( "fmt" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/lazyregexp" "github.com/sourcegraph/sourcegraph/internal/search/query" diff --git a/enterprise/internal/compute/replace_command_test.go b/enterprise/internal/compute/replace_command_test.go index 3831c59290f..5bd56cae538 100644 --- a/enterprise/internal/compute/replace_command_test.go +++ b/enterprise/internal/compute/replace_command_test.go @@ -3,10 +3,11 @@ package compute import ( "context" "os" - "regexp" "testing" + "github.com/grafana/regexp" "github.com/hexops/autogold" + "github.com/sourcegraph/sourcegraph/internal/comby" ) diff --git a/enterprise/internal/insights/background/historical_enqueuer.go b/enterprise/internal/insights/background/historical_enqueuer.go index 2d6effee460..a96a4bf91a7 100644 --- a/enterprise/internal/insights/background/historical_enqueuer.go +++ b/enterprise/internal/insights/background/historical_enqueuer.go @@ -4,11 +4,11 @@ import ( "context" "encoding/json" "fmt" - "regexp" "strings" "sync" "time" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/opentracing/opentracing-go/log" "github.com/prometheus/client_golang/prometheus" diff --git a/enterprise/internal/insights/query/query_executor.go b/enterprise/internal/insights/query/query_executor.go index 1111e43e19c..525cc85ae32 100644 --- a/enterprise/internal/insights/query/query_executor.go +++ b/enterprise/internal/insights/query/query_executor.go @@ -3,11 +3,11 @@ package query import ( "context" "fmt" - "regexp" "sort" "strings" "time" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/enterprise/internal/insights/compression" diff --git a/enterprise/internal/insights/resolvers/insight_view_resolvers.go b/enterprise/internal/insights/resolvers/insight_view_resolvers.go index b73a254b926..cff62d86fd3 100644 --- a/enterprise/internal/insights/resolvers/insight_view_resolvers.go +++ b/enterprise/internal/insights/resolvers/insight_view_resolvers.go @@ -3,11 +3,11 @@ package resolvers import ( "context" "fmt" - "regexp" "sort" "sync" "time" + "github.com/grafana/regexp" "github.com/graph-gophers/graphql-go" "github.com/graph-gophers/graphql-go/relay" "github.com/inconshreveable/log15" diff --git a/go.mod b/go.mod index 8c8e43421fe..caae5a42247 100644 --- a/go.mod +++ b/go.mod @@ -77,6 +77,7 @@ require ( github.com/gorilla/sessions v1.2.1 github.com/goware/urlx v0.3.1 github.com/grafana-tools/sdk v0.0.0-20220203092117-edae16afa87b + github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32 github.com/graph-gophers/graphql-go v1.3.0 github.com/graphql-go/graphql v0.8.0 github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 @@ -392,7 +393,7 @@ require ( // or intentional forks. replace ( // We maintain our own fork of Zoekt. Update with ./dev/zoekt/update - github.com/google/zoekt => github.com/sourcegraph/zoekt v0.0.0-20220210200412-9d1b56e6180f + github.com/google/zoekt => github.com/sourcegraph/zoekt v0.0.0-20220211090549-756e833d8ebe // We use a fork of Alertmanager to allow prom-wrapper to better manipulate Alertmanager configuration. // See https://docs.sourcegraph.com/dev/background-information/observability/prometheus github.com/prometheus/alertmanager => github.com/sourcegraph/alertmanager v0.21.1-0.20211110092431-863f5b1ee51b diff --git a/go.sum b/go.sum index 216419689f0..be10864171f 100644 --- a/go.sum +++ b/go.sum @@ -858,6 +858,8 @@ github.com/goware/urlx v0.3.1 h1:BbvKl8oiXtJAzOzMqAQ0GfIhf96fKeNEZfm9ocNSUBI= github.com/goware/urlx v0.3.1/go.mod h1:h8uwbJy68o+tQXCGZNa9D73WN8n0r9OBae5bUnLcgjw= github.com/grafana-tools/sdk v0.0.0-20220203092117-edae16afa87b h1:R9LID2XreyUOQfJ/NKLGuYOF4/Wz6ljmYFAhlOaHVQ4= github.com/grafana-tools/sdk v0.0.0-20220203092117-edae16afa87b/go.mod h1:AHHlOEv1+GGQ3ktHMlhuTUwo3zljV3QJbC0+8o2kn+4= +github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32 h1:M3wP8Hwic62qJsiydSgXtev03d4f92uN1I52nVjRgw0= +github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= github.com/graph-gophers/graphql-go v1.3.0 h1:Eb9x/q6MFpCLz7jBCiP/WTxjSDrYLR1QY41SORZyNJ0= github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/graphql-go/graphql v0.8.0 h1:JHRQMeQjofwqVvGwYnr8JnPTY0AxgVy1HpHSGPLdH0I= @@ -1489,8 +1491,8 @@ github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/sourcegraph/yaml v1.0.1-0.20200714132230-56936252f152 h1:z/MpntplPaW6QW95pzcAR/72Z5TWDyDnSo0EOcyij9o= github.com/sourcegraph/yaml v1.0.1-0.20200714132230-56936252f152/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= -github.com/sourcegraph/zoekt v0.0.0-20220210200412-9d1b56e6180f h1:jBnIBqQsyTfPJ0ahWXQbRdGcSllkuhqbzCfw86AuD6Y= -github.com/sourcegraph/zoekt v0.0.0-20220210200412-9d1b56e6180f/go.mod h1:Dx/yL46cfqqppDnXA6XwNlWi/++l+WIGs8AkJIo9cDI= +github.com/sourcegraph/zoekt v0.0.0-20220211090549-756e833d8ebe h1:Eh4QsOq1jXT3RCwflCxHIGGvFEylFYoqZnxiK2ED1wo= +github.com/sourcegraph/zoekt v0.0.0-20220211090549-756e833d8ebe/go.mod h1:7ch4x99rdVR1l7wn4D/LIK4q+0bkXhJUC8C37QISsDY= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= diff --git a/internal/cmd/tracking-issue/emoji.go b/internal/cmd/tracking-issue/emoji.go index 538228b7e49..6b0eb72d4e1 100644 --- a/internal/cmd/tracking-issue/emoji.go +++ b/internal/cmd/tracking-issue/emoji.go @@ -1,9 +1,10 @@ package main import ( - "regexp" "sort" "strings" + + "github.com/grafana/regexp" ) // Emojis returns a string of emojis that should be displayed with an issue or a pull request. diff --git a/internal/cmd/tracking-issue/issue.go b/internal/cmd/tracking-issue/issue.go index c0731a8de1b..dd5b4c8b301 100644 --- a/internal/cmd/tracking-issue/issue.go +++ b/internal/cmd/tracking-issue/issue.go @@ -1,10 +1,11 @@ package main import ( - "regexp" "strings" "sync" "time" + + "github.com/grafana/regexp" ) // Issue represents an existing GitHub Issue. diff --git a/internal/cmd/tracking-issue/render.go b/internal/cmd/tracking-issue/render.go index 271ab32f1fe..b9c5ffbace1 100644 --- a/internal/cmd/tracking-issue/render.go +++ b/internal/cmd/tracking-issue/render.go @@ -2,10 +2,11 @@ package main import ( "fmt" - "regexp" "sort" "strconv" "strings" + + "github.com/grafana/regexp" ) // RenderTrackingIssue renders the work section of the given tracking issue. diff --git a/internal/cmd/tracking-issue/resolve.go b/internal/cmd/tracking-issue/resolve.go index 3c3c79c8fbf..f000fd63f9e 100644 --- a/internal/cmd/tracking-issue/resolve.go +++ b/internal/cmd/tracking-issue/resolve.go @@ -2,7 +2,8 @@ package main import ( "fmt" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/lib/errors" ) diff --git a/internal/comby/translate.go b/internal/comby/translate.go index b89ab217fd0..3504d3a0ed6 100644 --- a/internal/comby/translate.go +++ b/internal/comby/translate.go @@ -1,10 +1,11 @@ package comby import ( - "regexp" "strings" "unicode/utf8" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/lazyregexp" ) diff --git a/internal/conf/reposource/common.go b/internal/conf/reposource/common.go index 75667d14d7a..88ea846054e 100644 --- a/internal/conf/reposource/common.go +++ b/internal/conf/reposource/common.go @@ -2,9 +2,10 @@ package reposource import ( "net/url" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/api" "github.com/sourcegraph/sourcegraph/internal/extsvc" "github.com/sourcegraph/sourcegraph/internal/lazyregexp" diff --git a/internal/conf/reposource/custom.go b/internal/conf/reposource/custom.go index 917ea4206ee..32e7be8760f 100644 --- a/internal/conf/reposource/custom.go +++ b/internal/conf/reposource/custom.go @@ -2,9 +2,9 @@ package reposource import ( "fmt" - "regexp" "strings" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/internal/conf/reposource/custom_test.go b/internal/conf/reposource/custom_test.go index 63760cea8e3..a8305b98c1f 100644 --- a/internal/conf/reposource/custom_test.go +++ b/internal/conf/reposource/custom_test.go @@ -1,9 +1,10 @@ package reposource import ( - "regexp" "testing" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/api" ) diff --git a/internal/conf/validate_custom.go b/internal/conf/validate_custom.go index da94c809666..11325232465 100644 --- a/internal/conf/validate_custom.go +++ b/internal/conf/validate_custom.go @@ -4,9 +4,10 @@ import ( "encoding/json" "fmt" "net/url" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/conf/conftypes" ) diff --git a/internal/database/repos.go b/internal/database/repos.go index e812383d1e8..16793484a6a 100644 --- a/internal/database/repos.go +++ b/internal/database/repos.go @@ -7,11 +7,11 @@ import ( "fmt" "net" "os" - regexpsyntax "regexp/syntax" "strconv" "strings" "time" + regexpsyntax "github.com/grafana/regexp/syntax" "github.com/inconshreveable/log15" "github.com/keegancsmith/sqlf" "github.com/lib/pq" diff --git a/internal/extsvc/github/vcr_test.go b/internal/extsvc/github/vcr_test.go index 23f40300d17..ee7e4ddf08c 100644 --- a/internal/extsvc/github/vcr_test.go +++ b/internal/extsvc/github/vcr_test.go @@ -3,7 +3,8 @@ package github import ( "flag" "os" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/extsvc/auth" ) diff --git a/internal/extsvc/gitlab/client_test.go b/internal/extsvc/gitlab/client_test.go index 9ac3d5e4c65..d32b1130745 100644 --- a/internal/extsvc/gitlab/client_test.go +++ b/internal/extsvc/gitlab/client_test.go @@ -5,10 +5,10 @@ import ( "flag" "net/url" "os" - "regexp" "testing" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/httptestutil" ) diff --git a/internal/lazyregexp/lazyre.go b/internal/lazyregexp/lazyre.go index f12c9daa3d8..27a8e27e898 100644 --- a/internal/lazyregexp/lazyre.go +++ b/internal/lazyregexp/lazyre.go @@ -8,9 +8,10 @@ package lazyregexp import ( "os" - "regexp" "strings" "sync" + + "github.com/grafana/regexp" ) // Regexp is a wrapper around regexp.Regexp, where the underlying regexp will be diff --git a/internal/pathmatch/pathmatch.go b/internal/pathmatch/pathmatch.go index 6dd38bfffaa..ffdd65ffc92 100644 --- a/internal/pathmatch/pathmatch.go +++ b/internal/pathmatch/pathmatch.go @@ -5,10 +5,10 @@ package pathmatch import ( "bytes" "fmt" - "regexp" "strings" "github.com/gobwas/glob" + "github.com/grafana/regexp" ) // PathMatcher reports whether the path was matched. diff --git a/internal/repos/exclude.go b/internal/repos/exclude.go index 4872e4a182d..c7618ace233 100644 --- a/internal/repos/exclude.go +++ b/internal/repos/exclude.go @@ -1,8 +1,9 @@ package repos import ( - "regexp" "strings" + + "github.com/grafana/regexp" ) // excludeFunc takes a string and returns true if it should be excluded. In diff --git a/internal/repos/main_test.go b/internal/repos/main_test.go index 033dc9f7c18..0c43166388d 100644 --- a/internal/repos/main_test.go +++ b/internal/repos/main_test.go @@ -3,9 +3,10 @@ package repos import ( "flag" "os" - "regexp" "testing" + "github.com/grafana/regexp" + "github.com/inconshreveable/log15" ) diff --git a/internal/repos/scheduler.go b/internal/repos/scheduler.go index 5920830cd70..969b490f988 100644 --- a/internal/repos/scheduler.go +++ b/internal/repos/scheduler.go @@ -4,11 +4,11 @@ import ( "container/heap" "context" "math/rand" - "regexp" "strings" "sync" "time" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/internal/repos/sources_test.go b/internal/repos/sources_test.go index 4d790c6f156..5bb80c0676d 100644 --- a/internal/repos/sources_test.go +++ b/internal/repos/sources_test.go @@ -8,7 +8,6 @@ import ( "os" "path/filepath" "reflect" - "regexp" "sort" "strconv" "strings" @@ -17,6 +16,7 @@ import ( "github.com/dnaeon/go-vcr/cassette" "github.com/dnaeon/go-vcr/recorder" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/internal/search/backend/index_options.go b/internal/search/backend/index_options.go index cebf3904cc8..60cb1939d82 100644 --- a/internal/search/backend/index_options.go +++ b/internal/search/backend/index_options.go @@ -3,11 +3,12 @@ package backend import ( "bytes" "encoding/json" - "regexp" "sort" "github.com/google/zoekt" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" + "github.com/sourcegraph/sourcegraph/schema" ) diff --git a/internal/search/casetransform/lower_regexp.go b/internal/search/casetransform/lower_regexp.go index 9280236cee8..e488fecbab4 100644 --- a/internal/search/casetransform/lower_regexp.go +++ b/internal/search/casetransform/lower_regexp.go @@ -1,9 +1,10 @@ package casetransform import ( - "regexp/syntax" "unicode" "unicode/utf8" + + "github.com/grafana/regexp/syntax" ) // LowerRegexpASCII lowers rune literals and expands char classes to include diff --git a/internal/search/casetransform/lower_regexp_test.go b/internal/search/casetransform/lower_regexp_test.go index fd972341b85..9dcd23ba224 100644 --- a/internal/search/casetransform/lower_regexp_test.go +++ b/internal/search/casetransform/lower_regexp_test.go @@ -1,8 +1,9 @@ package casetransform import ( - "regexp/syntax" "testing" + + "github.com/grafana/regexp/syntax" ) func TestLowerRegexpASCII(t *testing.T) { diff --git a/internal/search/casetransform/regexp.go b/internal/search/casetransform/regexp.go index 9012b142778..3b6306a29ed 100644 --- a/internal/search/casetransform/regexp.go +++ b/internal/search/casetransform/regexp.go @@ -1,8 +1,8 @@ package casetransform import ( - "regexp" - "regexp/syntax" + "github.com/grafana/regexp" + "github.com/grafana/regexp/syntax" ) // Regexp is a light wrapper over *regexp.Regexp that optimizes for case-insensitive search. diff --git a/internal/search/commit/commit.go b/internal/search/commit/commit.go index af63330c4ee..94c60d0277e 100644 --- a/internal/search/commit/commit.go +++ b/internal/search/commit/commit.go @@ -2,10 +2,10 @@ package commit import ( "context" - "regexp" "strings" "time" + "github.com/grafana/regexp" "github.com/opentracing/opentracing-go/log" "github.com/sourcegraph/sourcegraph/internal/conf" diff --git a/internal/search/query/predicate.go b/internal/search/query/predicate.go index 1c25b71d12a..1610ceb3f61 100644 --- a/internal/search/query/predicate.go +++ b/internal/search/query/predicate.go @@ -1,9 +1,10 @@ package query import ( - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/lib/errors" ) diff --git a/internal/search/query/transformer.go b/internal/search/query/transformer.go index 97c3477e20d..ef0d6d7da0e 100644 --- a/internal/search/query/transformer.go +++ b/internal/search/query/transformer.go @@ -2,9 +2,10 @@ package query import ( "fmt" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/lazyregexp" "github.com/sourcegraph/sourcegraph/lib/errors" ) diff --git a/internal/search/query/transformer_test.go b/internal/search/query/transformer_test.go index c65e9e4d59e..7bd343b0b9b 100644 --- a/internal/search/query/transformer_test.go +++ b/internal/search/query/transformer_test.go @@ -2,11 +2,11 @@ package query import ( "encoding/json" - "regexp" "strings" "testing" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "github.com/hexops/autogold" ) diff --git a/internal/search/query/types.go b/internal/search/query/types.go index a2a872e9a11..2eca0c2468b 100644 --- a/internal/search/query/types.go +++ b/internal/search/query/types.go @@ -2,9 +2,10 @@ package query import ( "fmt" - "regexp" "strconv" "time" + + "github.com/grafana/regexp" ) type ExpectedOperand struct { diff --git a/internal/search/query/validate.go b/internal/search/query/validate.go index fef110ebecb..12d6f2aec8d 100644 --- a/internal/search/query/validate.go +++ b/internal/search/query/validate.go @@ -1,12 +1,12 @@ package query import ( - "regexp" "strconv" "strings" "time" "github.com/go-enry/go-enry/v2" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/search/filter" "github.com/sourcegraph/sourcegraph/lib/errors" diff --git a/internal/search/query/value.go b/internal/search/query/value.go index b55e6ad0edb..434ec7f02fe 100644 --- a/internal/search/query/value.go +++ b/internal/search/query/value.go @@ -1,8 +1,9 @@ package query import ( - "regexp" "strconv" + + "github.com/grafana/regexp" ) // ValueType is the set of types of values in queries. diff --git a/internal/search/query_converter.go b/internal/search/query_converter.go index f1246c291ba..50fd9ad11a3 100644 --- a/internal/search/query_converter.go +++ b/internal/search/query_converter.go @@ -1,14 +1,14 @@ package search import ( - "regexp" - "regexp/syntax" + "regexp/syntax" //nolint:depguard // zoekt requires this pkg "strconv" "strings" "time" "github.com/go-enry/go-enry/v2" "github.com/go-enry/go-enry/v2/data" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/conf" "github.com/sourcegraph/sourcegraph/internal/search/filter" diff --git a/internal/search/repos/repos.go b/internal/search/repos/repos.go index 54661a8f09e..25c1b2c7a29 100644 --- a/internal/search/repos/repos.go +++ b/internal/search/repos/repos.go @@ -3,13 +3,13 @@ package repos import ( "context" "fmt" - "regexp" - regexpsyntax "regexp/syntax" "sort" "strconv" "strings" "sync" + "github.com/grafana/regexp" + regexpsyntax "github.com/grafana/regexp/syntax" "github.com/inconshreveable/log15" otlog "github.com/opentracing/opentracing-go/log" "golang.org/x/sync/errgroup" diff --git a/internal/search/searchcontexts/search_contexts.go b/internal/search/searchcontexts/search_contexts.go index cdee1bd224a..f3347a50e5d 100644 --- a/internal/search/searchcontexts/search_contexts.go +++ b/internal/search/searchcontexts/search_contexts.go @@ -3,10 +3,10 @@ package searchcontexts import ( "context" "fmt" - "regexp" "strings" "sync" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "golang.org/x/sync/errgroup" "golang.org/x/sync/semaphore" diff --git a/internal/search/streaming/search_filters.go b/internal/search/streaming/search_filters.go index 257f3ba06f1..cea47697778 100644 --- a/internal/search/streaming/search_filters.go +++ b/internal/search/streaming/search_filters.go @@ -3,10 +3,11 @@ package streaming import ( "fmt" "path" - "regexp" "strconv" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/internal/api" "github.com/sourcegraph/sourcegraph/internal/inventory" "github.com/sourcegraph/sourcegraph/internal/lazyregexp" diff --git a/internal/search/symbol/symbol.go b/internal/search/symbol/symbol.go index bc3fca89de6..10ac3960229 100644 --- a/internal/search/symbol/symbol.go +++ b/internal/search/symbol/symbol.go @@ -3,14 +3,14 @@ package symbol import ( "context" "fmt" - "regexp" - "regexp/syntax" + "regexp/syntax" //nolint:depguard // zoekt requires this pkg "sort" "time" "github.com/RoaringBitmap/roaring" "github.com/google/zoekt" zoektquery "github.com/google/zoekt/query" + "github.com/grafana/regexp" "github.com/neelance/parallel" "github.com/opentracing/opentracing-go/ext" otlog "github.com/opentracing/opentracing-go/log" diff --git a/internal/search/zoekt/zoekt.go b/internal/search/zoekt/zoekt.go index 318435eb865..bfbfa5e5f07 100644 --- a/internal/search/zoekt/zoekt.go +++ b/internal/search/zoekt/zoekt.go @@ -2,7 +2,7 @@ package zoekt import ( "context" - "regexp/syntax" + "regexp/syntax" //nolint:depguard // zoekt requires this pkg "time" "github.com/google/zoekt" diff --git a/internal/search/zoekt/zoekt_global.go b/internal/search/zoekt/zoekt_global.go index 3c3f9610039..c49bc44b4c8 100644 --- a/internal/search/zoekt/zoekt_global.go +++ b/internal/search/zoekt/zoekt_global.go @@ -1,9 +1,8 @@ package zoekt import ( - "regexp" - zoektquery "github.com/google/zoekt/query" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/search" "github.com/sourcegraph/sourcegraph/internal/search/query" diff --git a/internal/uploadstore/s3_client_test.go b/internal/uploadstore/s3_client_test.go index 5c4d8d8126e..874141ac26c 100644 --- a/internal/uploadstore/s3_client_test.go +++ b/internal/uploadstore/s3_client_test.go @@ -5,7 +5,6 @@ import ( "context" "fmt" "io" - "regexp" "sort" "strconv" "testing" @@ -15,6 +14,7 @@ import ( "github.com/aws/aws-sdk-go-v2/service/s3" s3types "github.com/aws/aws-sdk-go-v2/service/s3/types" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/observation" "github.com/sourcegraph/sourcegraph/lib/errors" diff --git a/internal/vcs/git/tree.go b/internal/vcs/git/tree.go index 11f6494ee04..02771bd55d0 100644 --- a/internal/vcs/git/tree.go +++ b/internal/vcs/git/tree.go @@ -8,7 +8,6 @@ import ( "os" stdlibpath "path" "path/filepath" - "regexp" "sort" "strconv" "strings" @@ -16,6 +15,7 @@ import ( "time" "github.com/golang/groupcache/lru" + "github.com/grafana/regexp" "gopkg.in/src-d/go-git.v4/plumbing/format/config" "github.com/sourcegraph/sourcegraph/internal/actor" diff --git a/internal/vcs/git/tree_test.go b/internal/vcs/git/tree_test.go index 63d37a4dadb..757cb7e43fb 100644 --- a/internal/vcs/git/tree_test.go +++ b/internal/vcs/git/tree_test.go @@ -7,13 +7,13 @@ import ( "os" "path/filepath" "reflect" - "regexp" "runtime" "sort" "strings" "testing" "github.com/google/go-cmp/cmp" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/internal/actor" "github.com/sourcegraph/sourcegraph/internal/api" diff --git a/internal/vcs/url.go b/internal/vcs/url.go index c20c92b498e..25e263db027 100644 --- a/internal/vcs/url.go +++ b/internal/vcs/url.go @@ -19,9 +19,10 @@ package vcs import ( "fmt" "net/url" - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/lib/errors" ) diff --git a/internal/workerutil/dbworker/store/store.go b/internal/workerutil/dbworker/store/store.go index 0c628ba8514..4f193f1a6ac 100644 --- a/internal/workerutil/dbworker/store/store.go +++ b/internal/workerutil/dbworker/store/store.go @@ -6,11 +6,11 @@ import ( "database/sql/driver" "encoding/json" "fmt" - "regexp" "strings" "time" "github.com/derision-test/glock" + "github.com/grafana/regexp" "github.com/inconshreveable/log15" "github.com/keegancsmith/sqlf" "github.com/opentracing/opentracing-go/log" diff --git a/lib/codeintel/autoindex/inference/gitclient.go b/lib/codeintel/autoindex/inference/gitclient.go index 781322e3aec..ab125f301dd 100644 --- a/lib/codeintel/autoindex/inference/gitclient.go +++ b/lib/codeintel/autoindex/inference/gitclient.go @@ -2,7 +2,8 @@ package inference import ( "context" - "regexp" + + "github.com/grafana/regexp" ) type GitClient interface { diff --git a/lib/codeintel/autoindex/inference/go.go b/lib/codeintel/autoindex/inference/go.go index 30561125d2a..2a6b3b02a3b 100644 --- a/lib/codeintel/autoindex/inference/go.go +++ b/lib/codeintel/autoindex/inference/go.go @@ -2,7 +2,8 @@ package inference import ( "path/filepath" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/lib/codeintel/autoindex/config" ) diff --git a/lib/codeintel/autoindex/inference/helpers_test.go b/lib/codeintel/autoindex/inference/helpers_test.go index ed65da37d2b..16e972ad038 100644 --- a/lib/codeintel/autoindex/inference/helpers_test.go +++ b/lib/codeintel/autoindex/inference/helpers_test.go @@ -2,9 +2,10 @@ package inference import ( "fmt" - "regexp" "strings" "testing" + + "github.com/grafana/regexp" ) type PathTestCase = struct { diff --git a/lib/codeintel/autoindex/inference/java.go b/lib/codeintel/autoindex/inference/java.go index db4a370018a..0b647fa8f5e 100644 --- a/lib/codeintel/autoindex/inference/java.go +++ b/lib/codeintel/autoindex/inference/java.go @@ -1,9 +1,10 @@ package inference import ( - "regexp" "strings" + "github.com/grafana/regexp" + "github.com/sourcegraph/sourcegraph/lib/codeintel/autoindex/config" ) diff --git a/lib/codeintel/autoindex/inference/mock_gitclient_test.go b/lib/codeintel/autoindex/inference/mock_gitclient_test.go index b95ddf11ce8..6e805830302 100644 --- a/lib/codeintel/autoindex/inference/mock_gitclient_test.go +++ b/lib/codeintel/autoindex/inference/mock_gitclient_test.go @@ -4,8 +4,9 @@ package inference import ( "context" - "regexp" "sync" + + "github.com/grafana/regexp" ) // MockGitClient is a mock implementation of the GitClient interface (from diff --git a/lib/codeintel/autoindex/inference/patterns.go b/lib/codeintel/autoindex/inference/patterns.go index a0d6d2b369d..c09df344661 100644 --- a/lib/codeintel/autoindex/inference/patterns.go +++ b/lib/codeintel/autoindex/inference/patterns.go @@ -1,8 +1,9 @@ package inference import ( - "regexp" "strings" + + "github.com/grafana/regexp" ) // Patterns is a regular expression that matches any input that would also match diff --git a/lib/codeintel/autoindex/inference/recognizers.go b/lib/codeintel/autoindex/inference/recognizers.go index d8d84515b92..d2e004ba224 100644 --- a/lib/codeintel/autoindex/inference/recognizers.go +++ b/lib/codeintel/autoindex/inference/recognizers.go @@ -1,7 +1,7 @@ package inference import ( - "regexp" + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/lib/codeintel/autoindex/config" ) diff --git a/lib/codeintel/autoindex/inference/rust.go b/lib/codeintel/autoindex/inference/rust.go index e983dff6c77..0e73f2c881c 100644 --- a/lib/codeintel/autoindex/inference/rust.go +++ b/lib/codeintel/autoindex/inference/rust.go @@ -2,7 +2,8 @@ package inference import ( "path/filepath" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/lib/codeintel/autoindex/config" ) diff --git a/lib/codeintel/autoindex/inference/typescript.go b/lib/codeintel/autoindex/inference/typescript.go index 06c77d76132..3dd1815b8cb 100644 --- a/lib/codeintel/autoindex/inference/typescript.go +++ b/lib/codeintel/autoindex/inference/typescript.go @@ -4,7 +4,8 @@ import ( "context" "encoding/json" "path/filepath" - "regexp" + + "github.com/grafana/regexp" "github.com/sourcegraph/sourcegraph/lib/codeintel/autoindex/config" ) diff --git a/lib/codeintel/tools/lsif-visualize/internal/visualization/visualizer.go b/lib/codeintel/tools/lsif-visualize/internal/visualization/visualizer.go index 6c22194bc66..dafebaa4e18 100644 --- a/lib/codeintel/tools/lsif-visualize/internal/visualization/visualizer.go +++ b/lib/codeintel/tools/lsif-visualize/internal/visualization/visualizer.go @@ -5,9 +5,10 @@ import ( "encoding/json" "fmt" "io" - "regexp" "strings" + "github.com/grafana/regexp" + protocolReader "github.com/sourcegraph/sourcegraph/lib/codeintel/lsif/protocol/reader" "github.com/sourcegraph/sourcegraph/lib/codeintel/lsif/reader" ) diff --git a/lib/go.mod b/lib/go.mod index a3fe3d9cf48..88a4a0b0cae 100644 --- a/lib/go.mod +++ b/lib/go.mod @@ -14,6 +14,7 @@ require ( github.com/go-stack/stack v1.8.1 // indirect github.com/gobwas/glob v0.2.3 github.com/google/go-cmp v0.5.7 + github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32 github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 github.com/hexops/autogold v1.3.0 diff --git a/lib/go.sum b/lib/go.sum index 441e63517bc..5670b372e5a 100644 --- a/lib/go.sum +++ b/lib/go.sum @@ -124,6 +124,8 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32 h1:M3wP8Hwic62qJsiydSgXtev03d4f92uN1I52nVjRgw0= +github.com/grafana/regexp v0.0.0-20220202152701-6a046c4caf32/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= diff --git a/lib/output/visible_string_width.go b/lib/output/visible_string_width.go index 32ca28abe0c..982e491fee2 100644 --- a/lib/output/visible_string_width.go +++ b/lib/output/visible_string_width.go @@ -1,8 +1,7 @@ package output import ( - "regexp" - + "github.com/grafana/regexp" "github.com/mattn/go-runewidth" )