2021-10-04 22:07:35 +03:00
|
|
|
[package]
|
2021-10-05 02:45:05 +03:00
|
|
|
name = "project"
|
2021-10-04 22:07:35 +03:00
|
|
|
version = "0.1.0"
|
2022-01-23 01:19:14 +03:00
|
|
|
edition = "2021"
|
2023-01-18 23:28:02 +03:00
|
|
|
publish = false
|
2024-01-27 15:51:16 +03:00
|
|
|
license = "GPL-3.0-or-later"
|
2024-01-23 19:40:30 +03:00
|
|
|
|
2021-11-30 22:46:39 +03:00
|
|
|
[lib]
|
|
|
|
path = "src/project.rs"
|
2022-03-04 03:15:56 +03:00
|
|
|
doctest = false
|
2021-11-30 22:46:39 +03:00
|
|
|
|
2021-10-04 22:07:35 +03:00
|
|
|
[features]
|
2022-02-09 02:48:44 +03:00
|
|
|
test-support = [
|
|
|
|
"client/test-support",
|
|
|
|
"language/test-support",
|
2022-06-09 11:48:06 +03:00
|
|
|
"settings/test-support",
|
2022-02-09 02:48:44 +03:00
|
|
|
"text/test-support",
|
2023-10-11 19:08:35 +03:00
|
|
|
"prettier/test-support",
|
2024-01-03 22:53:24 +03:00
|
|
|
"gpui/test-support",
|
2022-02-09 02:48:44 +03:00
|
|
|
]
|
2021-10-04 22:07:35 +03:00
|
|
|
|
|
|
|
[dependencies]
|
2024-01-31 05:41:29 +03:00
|
|
|
aho-corasick = "1.1"
|
|
|
|
anyhow.workspace = true
|
|
|
|
async-trait.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
client.workspace = true
|
|
|
|
clock.workspace = true
|
|
|
|
collections.workspace = true
|
|
|
|
copilot.workspace = true
|
|
|
|
fs.workspace = true
|
2024-01-31 05:41:29 +03:00
|
|
|
futures.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
fuzzy.workspace = true
|
|
|
|
git.workspace = true
|
2023-05-19 19:13:31 +03:00
|
|
|
globset.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
gpui.workspace = true
|
2021-10-04 22:07:35 +03:00
|
|
|
ignore = "0.4"
|
2024-02-26 04:37:52 +03:00
|
|
|
itertools.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
language.workspace = true
|
2023-04-25 03:41:55 +03:00
|
|
|
log.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
lsp.workspace = true
|
|
|
|
node_runtime.workspace = true
|
2023-04-25 03:41:55 +03:00
|
|
|
parking_lot.workspace = true
|
|
|
|
postage.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
prettier.workspace = true
|
2024-02-27 00:09:22 +03:00
|
|
|
project_core.workspace = true
|
2023-04-25 03:41:55 +03:00
|
|
|
rand.workspace = true
|
|
|
|
regex.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
rpc.workspace = true
|
2024-02-21 15:56:43 +03:00
|
|
|
task.workspace = true
|
2023-05-17 03:45:04 +03:00
|
|
|
schemars.workspace = true
|
2023-04-25 03:41:55 +03:00
|
|
|
serde.workspace = true
|
|
|
|
serde_json.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
settings.workspace = true
|
2024-02-26 12:08:57 +03:00
|
|
|
sha2.workspace = true
|
2022-03-08 21:00:54 +03:00
|
|
|
similar = "1.3"
|
2023-04-25 03:41:55 +03:00
|
|
|
smol.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
sum_tree.workspace = true
|
|
|
|
terminal.workspace = true
|
|
|
|
text.workspace = true
|
|
|
|
util.workspace = true
|
Detect and possibly use user-installed `gopls` / `zls` language servers (#8188)
After a lot of back-and-forth, this is a small attempt to implement
solutions (1) and (3) in
https://github.com/zed-industries/zed/issues/7902. The goal is to have a
minimal change that helps users get started with Zed, until we have
extensions ready.
Release Notes:
- Added detection of user-installed `gopls` to Go language server
adapter. If a user has `gopls` in `$PATH` when opening a worktree, it
will be used.
- Added detection of user-installed `zls` to Zig language server
adapter. If a user has `zls` in `$PATH` when opening a worktree, it will
be used.
Example:
I don't have `go` installed globally, but I do have `gopls`:
```
~ $ which go
go not found
~ $ which gopls
/Users/thorstenball/code/go/bin/gopls
```
But I do have `go` in a project's directory:
```
~/tmp/go-testing φ which go
/Users/thorstenball/.local/share/mise/installs/go/1.21.5/go/bin/go
~/tmp/go-testing φ which gopls
/Users/thorstenball/code/go/bin/gopls
```
With current Zed when I run `zed ~/tmp/go-testing`, I'd get the dreaded
error:
![screenshot-2024-02-23-11 14
08@2x](https://github.com/zed-industries/zed/assets/1185253/822ea59b-c63e-4102-a50e-75501cc4e0e3)
But with the changes in this PR, it works:
```
[2024-02-23T11:14:42+01:00 INFO language::language_registry] starting language server "gopls", path: "/Users/thorstenball/tmp/go-testing", id: 1
[2024-02-23T11:14:42+01:00 INFO language::language_registry] found user-installed language server for Go. path: "/Users/thorstenball/code/go/bin/gopls", arguments: ["-mode=stdio"]
[2024-02-23T11:14:42+01:00 INFO lsp] starting language server. binary path: "/Users/thorstenball/code/go/bin/gopls", working directory: "/Users/thorstenball/tmp/go-testing", args: ["-mode=stdio"]
```
---------
Co-authored-by: Antonio <antonio@zed.dev>
2024-02-23 15:39:14 +03:00
|
|
|
which.workspace = true
|
2022-09-26 17:59:51 +03:00
|
|
|
|
2021-10-04 22:07:35 +03:00
|
|
|
[dev-dependencies]
|
2024-02-06 22:41:36 +03:00
|
|
|
client = { workspace = true, features = ["test-support"] }
|
|
|
|
collections = { workspace = true, features = ["test-support"] }
|
2024-01-31 05:41:29 +03:00
|
|
|
env_logger.workspace = true
|
2024-02-19 19:41:43 +03:00
|
|
|
fs = { workspace = true, features = ["test-support"] }
|
2024-01-31 05:41:29 +03:00
|
|
|
git2.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
|
|
language = { workspace = true, features = ["test-support"] }
|
|
|
|
release_channel.workspace = true
|
|
|
|
lsp = { workspace = true, features = ["test-support"] }
|
|
|
|
prettier = { workspace = true, features = ["test-support"] }
|
2024-01-31 05:41:29 +03:00
|
|
|
pretty_assertions.workspace = true
|
2024-02-27 00:09:22 +03:00
|
|
|
project_core = { workspace = true, features = ["test-support"] }
|
2024-02-06 22:41:36 +03:00
|
|
|
rpc = { workspace = true, features = ["test-support"] }
|
|
|
|
settings = { workspace = true, features = ["test-support"] }
|
2023-04-25 03:41:55 +03:00
|
|
|
unindent.workspace = true
|
2024-02-06 22:41:36 +03:00
|
|
|
util = { workspace = true, features = ["test-support"] }
|