diff --git a/README.md b/README.md
index e017dfa..98010c8 100644
--- a/README.md
+++ b/README.md
@@ -120,65 +120,8 @@
 you may wish to adjust settings to customize its behavior. Below are a few
 commonly used settings. Please see the
 [settings documentation](docs/settings.md) for a comprehensive list of settings.
-
-### Choosing a different version of Go
-
-The extension chooses the `go` command using the `PATH` (or `Path`) environment
-variable by default. You can configure the extension to choose a different
-version of `go` with one of the following options.
-
-* (Preferred) Adjust your `PATH` or `Path` environment variable, and *open VS
-  Code with the adjusted environment* variable, or
-* Use the Go extension's `"Go: Choose Go Environment"` command that opens a
-  [menu](docs/ui.md) to change the `go` version, or
-* Use the `"go.alternateTools"` settings and specify the absolute path to the
-  `go` command. `"go.alternateTools": { "go": "/path/to/go/command" }`
-
-**note**: For historical reasons, some users configure the `"go.goroot"`
-
-settings or the `GOROOT` environment variable to select the Go SDK location.
-With recent versions of Go, that's unnecessary in most cases.
-
-### Configuring the installation of command-line tools
-
-The `Go: Install/Update Tools` command uses the `go get` command to download and
-install requested tools. By default, `go get` will install the compiled tools in
-one of the following directories.
-
-* the directory the `GOBIN` environment variable specifies, or
-* the `bin` directory under the first `GOPATH` (or `"go.gopath"`) directory, or
-* the `$HOME/go/bin` (or `$USERPROFILE/go/bin`) directory.
-
-Some users prefer to choose a different installation location. In that case, use
-the `"go.toolsGopath"` setting.
-
-The extension finds the required tools by their names (`go`, `gopls`, `dlv`,
-etc.). The `"go.alternateTools"` setting provides a way to configure the
-extension to use different tool location, for example a wrapper with a different
-name.
-
-### Using a custom linter
-
-A commonly customized feature is the linter, which is the tool used to provide
-coding style feedback and suggestions. This extension supports linters such as
-`staticcheck`, `golangci-lint`, and `revive`. You can choose one of them using
-the `"go.lintTool"` setting. For customization of the linter, please consult the
-linter's documentation.
-
-Note that if you are using `staticcheck`, you can enable it to run within
-`gopls` by setting `"gopls": { "ui.diagnostic.staticcheck": true }`.
-
-<!-- TODO: maybe have tips.md or settings.md to discuss more customization and
-setting tips (e.g. activating signature help after completion, disabling
-snippets to reduce the interference with gopls' suggestions, setting proxies,
-etc.)-->
-
-### Working on the Go standard library and the Go tools
-
-When you need to work on the [Go project](https://go.googlesource.com/go),
-please follow the instruction in the
-[Standard Library Development](docs/stdlib.md) documentation to adjust your
-settings.
+See [advanced topics](docs/advanced.md) for further customizations and unique
+use cases.
 
 ## Ask for help
 
diff --git a/docs/advanced.md b/docs/advanced.md
new file mode 100644
index 0000000..d1253fd
--- /dev/null
+++ b/docs/advanced.md
@@ -0,0 +1,93 @@
+# Advanced topics
+
+This document describes more advanced ways of working with the VS Code Go
+extension.
+
+## Choosing a different version of Go
+
+The extension chooses the `go` command using the `PATH` (or `Path`) environment
+variable by default. You can configure the extension to choose a different
+version of `go` with one of the following options.
+
+* (Preferred) Adjust your `PATH` or `Path` environment variable, and *open VS
+  Code with the adjusted environment* variable, or
+* Use the Go extension's `"Go: Choose Go Environment"` command that opens a
+  [menu](ui.md) to change the `go` version, or
+* Use the `"go.alternateTools"` settings and specify the absolute path to the
+  `go` command. `"go.alternateTools": { "go": "/path/to/go/command" }`
+
+**note**: For historical reasons, some users configure the `"go.goroot"`
+
+settings or the `GOROOT` environment variable to select the Go SDK location.
+With recent versions of Go, that's unnecessary in most cases.
+
+## Configuring the installation of command-line tools
+
+The `Go: Install/Update Tools` command uses the `go get` command to download and
+install requested tools. By default, `go get` will install the compiled tools in
+one of the following directories.
+
+* the directory the `GOBIN` environment variable specifies, or
+* the `bin` directory under the first `GOPATH` (or `"go.gopath"`) directory, or
+* the `$HOME/go/bin` (or `$USERPROFILE/go/bin`) directory.
+
+Some users prefer to choose a different installation location. In that case, use
+the `"go.toolsGopath"` setting.
+
+The extension finds the required tools by their names (`go`, `gopls`, `dlv`,
+etc.). The `"go.alternateTools"` setting provides a way to configure the
+extension to use different tool location, for example a wrapper with a different
+name.
+
+## Using a custom linter
+
+A commonly customized feature is the linter, which is the tool used to provide
+coding style feedback and suggestions. This extension supports linters such as
+`staticcheck`, `golangci-lint`, and `revive`. You can choose one of them using
+the `"go.lintTool"` setting. For customization of the linter, please consult the
+linter's documentation.
+
+Note that if you are using `staticcheck`, you can enable it to run within
+`gopls` by setting `"gopls": { "ui.diagnostic.staticcheck": true }`.
+
+## Working on the Go standard library and the Go tools
+
+This extension can be used for developing the standard library with additional
+configuration.
+
+First, you **must open the `src/` folder in VS Code**, not the Go tree root.
+(See [golang/go#32394](https://github.com/golang/go/issues/32394).)
+
+Then, you need to configure the workspace, by placing the following in
+`src/.vscode/settings.json`. [Command Palette] ->
+`Preferences: Open Workspace Settings (JSON)` will open the settings file.
+
+```json5
+{
+  // Use the local go tool. This needs to be built with make.bash.
+  "go.alternateTools": {
+    "go": "~/godev/bin/go"
+  },
+
+  //
+  // Below is optional.
+  //
+  // Build a separate set of tools. For golang/vscode-go#294.
+  "go.toolsGopath": "~/.vscode/godev",
+  // Don't reformat HTML files since we have a custom style.
+  "html.format.enable": false
+}
+```
+
+The above assumes the Go tree is checked out at `~/godev`. If your Go tree is
+somewhere else, modify `go.alternateTools.go` to point to the go *binary*
+accordingly. Many underlying tools including `gopls` invoke the go command
+(`go list`, etc), so we assume the binary isn't completely broken.
+
+You can add `.vscode` to `.git/info/exclude` to avoid risking checking
+`settings.json` into git.
+
+If you see an "inconsistent vendoring" error, please report it at
+[golang/go#40250](https://github.com/golang/go/issues/40250).
+
+[Command Palette]: https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette
diff --git a/docs/stdlib.md b/docs/stdlib.md
deleted file mode 100644
index fea0e40..0000000
--- a/docs/stdlib.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Standard library development
-
-vscode-go and gopls can be used for developing the standard library, but require configuration.
-
-First, you **must open the `src/` folder in VS Code**, not the Go tree root.
-(See [golang/go#32394](https://github.com/golang/go/issues/32394).)
-
-Then, you need to configure the workspace, by placing the following in `src/.vscode/settings.json`.
-[Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette)
--> `Preferences: Open Workspace Settings (JSON)` will open the setting file.
-
-```json5
-{
-  // Use the local go tool. This needs to be built with make.bash.
-  "go.alternateTools": {
-    "go": "~/godev/bin/go"
-  },
-
-  //
-  // Below is optional.
-  //
-  // Build a separate set of tools. For golang/vscode-go#294.
-  "go.toolsGopath": "~/.vscode/godev",
-  // Don't reformat HTML files since we have a custom style.
-  "html.format.enable": false
-}
-```
-
-The above assumes the Go tree is checked out at `~/godev`. If your Go tree is somewhere else, modify
-`go.alternateTools.go` to point to the go *binary* accordingly. Many underlying tools
-including `gopls` invoke the go command (`go list`, etc), so we assume the binary isn't 
-completely broken.
-
-You can add `.vscode` to `.git/info/exclude` to avoid risking checking `settings.json` into git.
-
-The Go language server ([`gopls`](https://golang.org/s/gopls)) works for developing the standard
-library. To enable it, please read our [`gopls` documentation](gopls.md).
-
-If you see an "inconsistent vendoring" error, please report it at
-[golang/go#40250](https://github.com/golang/go/issues/40250).
-
-See also [golang/go#38603](https://github.com/golang/go/issues/38603).
