go/internal/lsp
Shoshin Nikita d0768c9130 internal/lsp/source/completion: suggest only valid package names
Before this change directory names were used "as is" for package completion.
It could lead to invalid suggestions (for example, 'package 1abc' or package 'ab-cd').

This change adds a check whether a directory name can be used in a package path.
If the directory name is invalid, only 'package main' will be suggested.
Otherwise, the directory name will be normalized and will be used as a package name.

Note: normalized directory names contain only lower case letters and digits.

Fixes golang/go#44680

Change-Id: I4b710f90d1723c512e29dc3c248a1e681f1cd37f
GitHub-Last-Rev: 8ae69f1c6fdf80831e5773bdb3507a8d51a4a0cf
GitHub-Pull-Request: golang/tools#310
Reviewed-on: https://go-review.googlesource.com/c/tools/+/313092
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
Trust: Rebecca Stambler <rstambler@golang.org>
Trust: Peter Weinberger <pjw@google.com>
Run-TryBot: Rebecca Stambler <rstambler@golang.org>
gopls-CI: kokoro <noreply+kokoro@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
2021-04-27 19:53:45 +00:00
..
analysis gopls, internal/lsp: support fillstruct for partially-filled structs 2020-11-30 20:22:45 +00:00
browser all: replace all usages of os/exec with golang.org/x/sys/execabs 2021-01-19 22:25:03 +00:00
cache internal/lsp/cache: improve snapshot clone perfomance 2021-04-26 16:33:32 +00:00
cmd internal/lsp/cmd: add a command-line command to start daemon debugging 2021-04-27 13:49:53 +00:00
command internal/lsp: add a command to start the debug server 2021-04-26 15:43:18 +00:00
debug internal/lsp/debug: splice in updated servers rather than overwrite 2021-04-27 15:36:10 +00:00
diff all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
fake internal/lsp/source: fix Highlight for std and 3rd-party packages 2021-04-05 22:17:18 +00:00
fuzzy internal/lsp/fuzzy: fix return value on no match 2020-08-28 15:37:48 +00:00
helper internal/lsp/protocol: latest version of LSP 2021-04-20 19:23:16 +00:00
lsprpc internal/lsp/cmd: add a command-line command to start daemon debugging 2021-04-27 13:49:53 +00:00
mod internal/lsp: switch to 'go get -u ./...' for transitive upgrades 2021-04-07 17:38:53 +00:00
protocol internal/lsp/protocol: latest version of LSP 2021-04-20 19:23:16 +00:00
regtest internal/lsp: add a command to start the debug server 2021-04-26 15:43:18 +00:00
snippet internal/lsp/source/completion: add postfix snippet completions 2021-03-29 17:27:46 +00:00
source internal/lsp/source/completion: suggest only valid package names 2021-04-27 19:53:45 +00:00
testdata lsp/completion: fix postfix completions preceding assignments 2021-04-26 15:26:58 +00:00
tests internal/lsp/semantic: fix some type definitions 2021-03-30 15:15:52 +00:00
README.md internal/lsp: add READMEs that describe tests, how to run tests 2020-12-03 17:03:53 +00:00
call_hierarchy.go internal/lsp: release resources for call hierarchy file requests 2020-08-07 21:04:51 +00:00
code_action.go internal/lsp: fix support for SourceFixAll code actions 2021-03-24 23:51:27 +00:00
code_lens.go internal/lsp: switch to the new command API 2021-02-09 22:09:28 +00:00
command.go internal/lsp: add a command to start the debug server 2021-04-26 15:43:18 +00:00
completion.go internal/lsp/cache: allow fixing multiple syntax errors 2021-02-05 19:47:01 +00:00
completion_test.go internal/lsp/completion: move postfix completions behind option 2021-03-29 18:55:49 +00:00
debounce.go internal/lsp: add experimental support for multi-phase diagnostics 2020-10-02 14:12:12 +00:00
debounce_test.go internal/lsp: delay longer in TestDebouncer 2020-10-30 20:03:00 +00:00
definition.go internal/lsp: handle nil pointer with import shortcut = link 2021-02-16 20:35:08 +00:00
diagnostics.go internal/lsp: hold the gc details lock when storing diagnostics 2021-03-25 17:12:39 +00:00
folding_range.go all: add copyright notices to files that are missing them 2021-01-06 17:23:47 +00:00
format.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
general.go internal/lsp: add a temp workspace per folder, and a helper command 2021-03-15 23:11:33 +00:00
highlight.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
hover.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
implementation.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
link.go internal/lsp: add ?utm_source=gopls to links to pkg.go.dev 2020-11-16 00:15:58 +00:00
lsp_test.go internal/lsp: remove some unused parameters, mostly in the cache package 2021-03-25 00:26:08 +00:00
progress.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
progress_test.go internal/lsp: improvements for command messages 2020-08-21 20:07:30 +00:00
references.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
rename.go internal/lsp/source: make it an error to rename embedded fields 2021-01-26 13:52:46 +00:00
reset_golden.sh internal/lsp: fix regeneration of golden files 2019-09-25 13:16:59 +00:00
semantic.go internal/lsp/semantic: avoid doing semantic tokens for large files 2021-04-20 17:53:17 +00:00
server.go internal/lsp: add a temp workspace per folder, and a helper command 2021-03-15 23:11:33 +00:00
server_gen.go internal/lsp/protocol: latest version of LSP 2021-04-20 19:23:16 +00:00
signature_help.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
symbols.go internal/lsp/cache: ref-count snapshots 2020-08-03 22:08:54 +00:00
text_synchronization.go internal/lsp: update to latest version of LSP protocol 2021-02-02 11:32:59 +00:00
workspace.go internal/lsp: add a temp workspace per folder, and a helper command 2021-03-15 23:11:33 +00:00
workspace_symbol.go internal/lsp/source: add a new symbolStyle configuration option 2020-06-26 17:13:37 +00:00

README.md

lsp

internal/lsp provides much of the Language Server Protocol (lsp) implementation for gopls.

Documentation for users and contributors can be found in the gopls/doc directory.