zed-industries / zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
https://zed.dev
Other
48.9k stars 2.94k forks source link

rust Cargo.toml completion support #7081

Closed kzhui125 closed 6 months ago

kzhui125 commented 9 months ago

Check for existing issues

Describe the feature

image

If applicable, add mockups / screenshots to help present your vision of the feature

No response

kzhui125 commented 6 months ago

I remember a previous version of Zed already support Cargo.toml auto completion, but a later upgrade remove this feature.

Is there a setting for rust analyzer already support Cargo.toml auto completion?

I am curious that how does VSCode rust analyzer extension support Cargo.toml auto completion

JustFrederik commented 6 months ago

the . separator is bugged, but its working in zed

Screenshot 2024-04-19 at 15 24 39
JustFrederik commented 6 months ago

@kzhui125 isn't that exactly what you asked for?

kzhui125 commented 6 months ago

1

@JustFrederik do I need some extensions?

JustFrederik commented 6 months ago

Only rust_analyzer & taplo

kzhui125 commented 6 months ago
image

@JustFrederik installed but don't have completion.

JustFrederik commented 6 months ago

what does the log say? Are both language servers running? I think rust_analyzer isn't running. Every time I change something in the Cargo.toml I get one of these:

Screenshot 2024-04-29 at 10 45 31

rust_analyzer log

stderr: 2024-04-29T08:37:44.388348Z ERROR flycheck: Flycheck failed to run the following command: CommandHandle { program: "/Users/frederik/.cargo/bin/cargo", arguments: ["check", "--workspace", "--message-format=json", "--manifest-path", "/Users/frederik/test-crate/Cargo.toml", "--all-targets"], current_dir: Some("/Users/frederik/test-crate") }, error=Cargo watcher failed, the command produced no valid metadata (exit code: ExitStatus(unix_wait_status(25856))):
stderr: error: failed to parse manifest at `/Users/frederik/test-crate/Cargo.toml`
stderr:
stderr: Caused by:
stderr: failed to parse the `edition` key
stderr:
stderr: Caused by:
stderr: supported edition values are `2015`, `2018`, `2021`, or `2024`, but `20` is unknown
stderr:
stderr: 2024-04-29T08:37:44.461587Z ERROR rust_analyzer::main_loop: FetchWorkspaceError:
stderr: rust-analyzer failed to load workspace: Failed to load the project at /Users/frederik/test-crate/Cargo.toml: Failed to read Cargo metadata from Cargo.toml file /Users/frederik/test-crate/Cargo.toml, Some(Version { major: 1, minor: 77, patch: 2 }): Failed to run `cd "/Users/frederik/test-crate" && RUSTUP_TOOLCHAIN="/Users/frederik/.rustup/toolchains/stable-aarch64-apple-darwin" "/Users/frederik/.cargo/bin/cargo" "metadata" "--format-version" "1" "--manifest-path" "/Users/frederik/test-crate/Cargo.toml" "--filter-platform" "aarch64-apple-darwin"`: `cargo metadata` exited with an error: error: failed to parse manifest at `/Users/frederik/test-crate/Cargo.toml`
stderr:
stderr: Caused by:
stderr: failed to parse the `edition` key
stderr:
stderr: Caused by:
stderr: supported edition values are `2015`, `2018`, `2021`, or `2024`, but `20` is unknown
stderr:
stderr:
stderr: 2024-04-29T08:37:44.543332Z ERROR flycheck: Flycheck failed to run the following command: CommandHandle { program: "/Users/frederik/.cargo/bin/cargo", arguments: ["check", "--workspace", "--message-format=json", "--manifest-path", "/Users/frederik/test-crate/Cargo.toml", "--all-targets"], current_dir: Some("/Users/frederik/test-crate") }, error=Cargo watcher failed, the command produced no valid metadata (exit code: ExitStatus(unix_wait_status(25856))):
stderr: error: failed to parse manifest at `/Users/frederik/test-crate/Cargo.toml`
stderr:
stderr: Caused by:
stderr: failed to parse the `edition` key
stderr:
stderr: Caused by:
stderr: supported edition values are `2015`, `2018`, `2021`, or `2024`, but `20` is unknown
stderr:
stderr: 2024-04-29T08:37:44.568059Z ERROR rust_analyzer::main_loop: FetchWorkspaceError:
stderr: rust-analyzer failed to load workspace: Failed to load the project at /Users/frederik/test-crate/Cargo.toml: Failed to read Cargo metadata from Cargo.toml file /Users/frederik/test-crate/Cargo.toml, Some(Version { major: 1, minor: 77, patch: 2 }): Failed to run `cd "/Users/frederik/test-crate" && RUSTUP_TOOLCHAIN="/Users/frederik/.rustup/toolchains/stable-aarch64-apple-darwin" "/Users/frederik/.cargo/bin/cargo" "metadata" "--format-version" "1" "--manifest-path" "/Users/frederik/test-crate/Cargo.toml" "--filter-platform" "aarch64-apple-darwin"`: `cargo metadata` exited with an error: error: failed to parse manifest at `/Users/frederik/test-crate/Cargo.toml`
stderr:
stderr: Caused by:
stderr: failed to parse the `edition` key
stderr:
stderr: Caused by:
stderr: supported edition values are `2015`, `2018`, `2021`, or `2024`, but `20` is unknown
stderr:
stderr:
stderr: 2024-04-29T08:37:44.716943Z ERROR flycheck: Flycheck failed to run the following command: CommandHandle { program: "/Users/frederik/.cargo/bin/cargo", arguments: ["check", "--workspace", "--message-format=json", "--manifest-path", "/Users/frederik/test-crate/Cargo.toml", "--all-targets"], current_dir: Some("/Users/frederik/test-crate") }, error=Cargo watcher failed, the command produced no valid metadata (exit code: ExitStatus(unix_wait_status(25856))):
stderr: error: failed to parse manifest at `/Users/frederik/test-crate/Cargo.toml`
stderr:
stderr: Caused by:
stderr: failed to parse the `edition` key
stderr:
stderr: Caused by:
stderr: supported edition values are `2015`, `2018`, `2021`, or `2024`, but `20` is unknown
stderr:

Taplo rpc

// Send:
{"jsonrpc":"2.0","method":"textDocument/didClose","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"}}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","languageId":"","version":0,"text":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","version":1},"contentChanges":[{"text":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"2\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}]}}
// Receive:
{"jsonrpc":"2.0","method":"taplo/didChangeSchemaAssociation","params":{"documentUri":"file:///Users/frederik/test-crate/Cargo.toml","schemaUri":"https://json.schemastore.org/cargo.json","meta":{"name":"Cargo Manifest","description":"Manifest for Cargo, the Rust package manager and build tool","source":"catalog","catalog_url":"https://www.schemastore.org/api/json/catalog.json"}}}
// Send:
{"jsonrpc":"2.0","id":2,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"position":{"line":3,"character":12}}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[{"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":7}},"severity":1,"source":"Even Better TOML","message":"\"2\" is not valid under any of the schemas listed in the 'anyOf' keyword"}]}}
// Receive:
{"jsonrpc":"2.0","id":2,"result":[{"label":"\"2015\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"0\"2015\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"\"2015\""}},{"label":"\"2018\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"1\"2018\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"\"2018\""}},{"label":"\"2021\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"2\"2021\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"\"2021\""}},{"label":"\"2024\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"3\"2024\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"\"2024\""}},{"label":"{ }","kind":12,"documentation":{"kind":"markdown","value":"The `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`"},"insertTextFormat":2,"textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"{ $0 }"}},{"label":"true","kind":12,"sortText":"0true","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":13}},"newText":"true"}}]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","version":2},"contentChanges":[{"text":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"20\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}]}}
// Send:
{"jsonrpc":"2.0","id":3,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"position":{"line":3,"character":13}}}
// Send:
{"jsonrpc":"2.0","id":4,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"position":{"line":3,"character":13}}}
// Receive:
{"jsonrpc":"2.0","method":"taplo/didChangeSchemaAssociation","params":{"documentUri":"file:///Users/frederik/test-crate/Cargo.toml","schemaUri":"https://json.schemastore.org/cargo.json","meta":{"name":"Cargo Manifest","description":"Manifest for Cargo, the Rust package manager and build tool","source":"catalog","catalog_url":"https://www.schemastore.org/api/json/catalog.json"}}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[{"range":{"start":{"line":3,"character":0},"end":{"line":3,"character":7}},"severity":1,"source":"Even Better TOML","message":"\"20\" is not valid under any of the schemas listed in the 'anyOf' keyword"}]}}
// Receive:
{"jsonrpc":"2.0","id":3,"result":[{"label":"\"2015\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"0\"2015\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2015\""}},{"label":"\"2018\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"1\"2018\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2018\""}},{"label":"\"2021\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"2\"2021\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2021\""}},{"label":"\"2024\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"3\"2024\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2024\""}},{"label":"{ }","kind":12,"documentation":{"kind":"markdown","value":"The `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`"},"insertTextFormat":2,"textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"{ $0 }"}},{"label":"true","kind":12,"sortText":"0true","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"true"}}]}
// Receive:
{"jsonrpc":"2.0","id":4,"result":[{"label":"\"2015\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"0\"2015\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2015\""}},{"label":"\"2018\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"1\"2018\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2018\""}},{"label":"\"2021\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"2\"2021\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2021\""}},{"label":"\"2024\"","kind":12,"documentation":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc."},"sortText":"3\"2024\"","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"\"2024\""}},{"label":"{ }","kind":12,"documentation":{"kind":"markdown","value":"The `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`"},"insertTextFormat":2,"textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"{ $0 }"}},{"label":"true","kind":12,"sortText":"0true","textEdit":{"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":14}},"newText":"true"}}]}
// Send:
{"jsonrpc":"2.0","id":5,"method":"textDocument/formatting","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"options":{"tabSize":4,"insertSpaces":true,"insertFinalNewline":true}}}
// Receive:
{"jsonrpc":"2.0","id":5,"result":[{"range":{"start":{"line":0,"character":0},"end":{"line":8,"character":0}},"newText":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"20\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"}}}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","version":3},"contentChanges":[{"text":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"2018\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}]}}
// Receive:
{"jsonrpc":"2.0","method":"taplo/didChangeSchemaAssociation","params":{"documentUri":"file:///Users/frederik/test-crate/Cargo.toml","schemaUri":"https://json.schemastore.org/cargo.json","meta":{"name":"Cargo Manifest","description":"Manifest for Cargo, the Rust package manager and build tool","source":"catalog","catalog_url":"https://www.schemastore.org/api/json/catalog.json"}}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Receive:
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/frederik/test-crate/Cargo.toml","diagnostics":[]}}
// Send:
{"jsonrpc":"2.0","id":6,"method":"textDocument/definition","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"position":{"line":3,"character":13}}}
// Receive:
{"jsonrpc":"2.0","id":6,"error":{"code":-32601,"message":"Method not found","data":null}}
// Send:
{"jsonrpc":"2.0","id":7,"method":"textDocument/formatting","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"options":{"tabSize":4,"insertSpaces":true,"insertFinalNewline":true}}}
// Receive:
{"jsonrpc":"2.0","id":7,"result":[{"range":{"start":{"line":0,"character":0},"end":{"line":8,"character":0}},"newText":"[package]\nname = \"test-crate\"\nversion = \"0.1.0\"\nedition = \"2018\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\n"}]}
// Send:
{"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"}}}
// Send:
{"jsonrpc":"2.0","id":8,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/frederik/test-crate/Cargo.toml"},"position":{"line":3,"character":13}}}
// Receive:
{"jsonrpc":"2.0","id":8,"result":{"contents":{"kind":"markdown","value":"The `edition` key affects which edition your package is compiled with. Cargo\nwill always generate packages via [`cargo new`](https://doc.rust-lang.org/cargo/commands/cargo-new.html) with the `edition` key set to the\nlatest edition. Setting the `edition` key in `[package]` will affect all\ntargets/crates in the package, including test suites, benchmarks, binaries,\nexamples, etc.\nThe `workspace` field allow keys to be inherited by defining them in the member package with `{key}.workspace = true`\n"},"range":{"start":{"line":3,"character":10},"end":{"line":3,"character":16}}}}
kzhui125 commented 6 months ago

rust_analyzer seems running @JustFrederik 1.gif.zip

kzhui125 commented 6 months ago
image

I don't see Taplo logs, is it in debug: open language server logs?

JustFrederik commented 6 months ago

yes

Screenshot 2024-04-29 at 11 12 12

it seems like taplo isn't running. I guess you could try to reinstall the extension

kzhui125 commented 6 months ago
image

reinstalled but still don't find the taplo logs

JustFrederik commented 6 months ago

It doesn't seem to be working at all for you.

Screenshot 2024-04-29 at 15 44 02

Does taplo work in vscode(Even Better TOML)? Is there an error in the zed logs?

kzhui125 commented 6 months ago

zed log:

Caused by:
    0: failed to get commit messages
    1: 'git show' failed with error ExitStatus(unix_wait_status(32768))
2024-04-29T22:09:48+08:00 [INFO] reload git repository ".git"
2024-04-29T22:09:48+08:00 [INFO] reload git repository ".git"
2024-04-29T22:09:48+08:00 [ERROR] crates/fs/src/repository.rs:122: Error { code: -9, klass: 4, message: "reference 'refs/heads/master' not found" }
2024-04-29T22:09:48+08:00 [ERROR] crates/fs/src/repository.rs:122: Error { code: -9, klass: 4, message: "reference 'refs/heads/master' not found" }
2024-04-29T22:09:48+08:00 [ERROR] failed to get git blame data: failed to get buffer project path
2024-04-29T22:09:48+08:00 [ERROR] failed to get git blame data: Failed to blame "Test.toml"

Caused by:
    0: failed to get commit messages
    1: 'git show' failed with error ExitStatus(unix_wait_status(32768))

works in vscode:

image
JustFrederik commented 6 months ago

there should be something like that. 2024-04-29T16:17:25+02:00 [INFO] starting language servers for TOML: taplo 2024-04-29T16:17:25+02:00 [INFO] starting language servers for Rust: rust-analyzer

Does is try to startup the language server? The error above is related to git

kzhui125 commented 6 months ago
[ERROR] crates/language/src/language_registry.rs:850: server container removal

[ERROR] failed to start language server "taplo": Malformed Mach-o file (os error 88)

[ERROR] Hit 4 reinstallation attempts for "taplo"

I find that the extension install failed, after manually copy taplo binary to folder /Users/user/Library/Application Support/Zed/extensions/work/toml/taplo-0.8.1

Then is works now.

It seems that if Zed install extension failed(for example download interrupted), there are no error messages, and the extension will be in installed list.