From 3b801c8b83897eeba9a7c8838b39d85a37f2d601 Mon Sep 17 00:00:00 2001 From: Rebecca Stambler Date: Thu, 2 Sep 2021 13:51:16 -0400 Subject: [PATCH] internal/lsp: exclude node_modules in the workspace root by default It is unlikely that users want gopls operating on their node_modules directories, so we should exclude them by default. If a user wants to include them, they can override their directory filters setting. This doesn't exclude *any* directory named "node_modules", so we still need to implement golang/go#46438 to exclude node_modules completely. Change-Id: I03c42208e62390dc35e44ac5176422ddf8dc53f7 Reviewed-on: https://go-review.googlesource.com/c/tools/+/347297 Trust: Rebecca Stambler Run-TryBot: Rebecca Stambler gopls-CI: kokoro Reviewed-by: Robert Findley TryBot-Result: Go Bot --- gopls/doc/settings.md | 2 +- internal/lsp/source/api_json.go | 2 +- internal/lsp/source/options.go | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gopls/doc/settings.md b/gopls/doc/settings.md index 8b0ec839e2..2788ad81b8 100644 --- a/gopls/doc/settings.md +++ b/gopls/doc/settings.md @@ -70,7 +70,7 @@ Include only project_a: `-` (exclude everything), `+project_a` Include only project_a, but not node_modules inside it: `-`, `+project_a`, `-project_a/node_modules` -Default: `[]`. +Default: `["-node_modules"]`. #### **memoryMode** *enum* diff --git a/internal/lsp/source/api_json.go b/internal/lsp/source/api_json.go index c7522201a9..a5dcb4ded9 100755 --- a/internal/lsp/source/api_json.go +++ b/internal/lsp/source/api_json.go @@ -40,7 +40,7 @@ var GeneratedAPIJSON = &APIJSON{ Keys: nil, }, EnumValues: nil, - Default: "[]", + Default: "[\"-node_modules\"]", Status: "", Hierarchy: "build", }, diff --git a/internal/lsp/source/options.go b/internal/lsp/source/options.go index 5175507dc3..6e75056c7e 100644 --- a/internal/lsp/source/options.go +++ b/internal/lsp/source/options.go @@ -109,6 +109,7 @@ func DefaultOptions() *Options { ExpandWorkspaceToModule: true, ExperimentalPackageCacheKey: true, MemoryMode: ModeNormal, + DirectoryFilters: []string{"-node_modules"}, }, UIOptions: UIOptions{ DiagnosticOptions: DiagnosticOptions{