Docs Party 2024 (#15876)
Co-authored-by: Raunak Raj <nkray21111983@gmail.com> Co-authored-by: Thorsten Ball <mrnugget@gmail.com> Co-authored-by: Bennet <bennet@zed.dev> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com> Co-authored-by: Joseph T Lyons <JosephTLyons@gmail.com> Co-authored-by: Mikayla <mikayla@zed.dev> Co-authored-by: Jason <jason@zed.dev> Co-authored-by: Antonio Scandurra <me@as-cii.com> Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com> Co-authored-by: Marshall <marshall@zed.dev> Co-authored-by: Nathan Sobo <nathan@zed.dev> Co-authored-by: Jason Mancuso <7891333+jvmncs@users.noreply.github.com> Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
This commit is contained in:
co-authored by
Raunak Raj
Thorsten Ball
Bennet
Marshall Bowers
Joseph T Lyons
Mikayla
Jason
Antonio Scandurra
Max Brunsfeld
Marshall
Nathan Sobo
Jason Mancuso
Piotr Osiewicz
parent
c633fa5a10
commit
eb3c4b0e46
@@ -0,0 +1,6 @@
|
||||
# AsciiDoc
|
||||
|
||||
AsciiDoc language support in Zed is provided by the community-maintained [AsciiDoc extension](https://github.com/andreicek/zed-asciidoc).
|
||||
Report issues to: [https://github.com/andreicek/zed-asciidoc/issues](https://github.com/andreicek/zed-asciidoc/issues)
|
||||
|
||||
- Tree Sitter: [cathaysia/tree-sitter-asciidoc](https://github.com/cathaysia/tree-sitter-asciidoc)
|
||||
@@ -1,3 +1,10 @@
|
||||
# Astro
|
||||
|
||||
Astro support is available through the [Astro extension](https://github.com/zed-industries/zed/tree/main/extensions/astro).
|
||||
|
||||
- Tree Sitter: [virchau13/tree-sitter-astro](https://github.com/virchau13/tree-sitter-astro)
|
||||
- Language Server: [withastro/language-tools](https://github.com/withastro/language-tools)
|
||||
|
||||
<!--
|
||||
TBD: Documentation Astro usage / configuration
|
||||
-->
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Bash
|
||||
|
||||
Bash language support in Zed is provided by the community-maintained [Basher extension](https://github.com/d1y/bash.zed).
|
||||
Report issues to: [https://github.com/d1y/bash.zed/issues](https://github.com/d1y/bash.zed/issues)
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-bash](https://github.com/tree-sitter/tree-sitter-bash)
|
||||
- Language Server: [bash-lsp/bash-language-server](https://github.com/bash-lsp/bash-language-server)
|
||||
|
||||
## Configuration
|
||||
|
||||
The bash-language-server support shellcheck. But you need to install it manually:
|
||||
|
||||
```sh
|
||||
# MacOS
|
||||
brew install shellcheck
|
||||
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install shellcheck
|
||||
|
||||
# Arch Linux
|
||||
pacman -S shellcheck
|
||||
```
|
||||
|
||||
If you wish to customize the warnings/errors reported you just need to create a `.shellcheckrc` file. You can do this in the root of your project or in your home directory (`~/.shellcheckrc`). See: [shellcheck documentation](https://github.com/koalaman/shellcheck/wiki/Ignore#ignoring-one-or-more-types-of-errors-forever) for more.
|
||||
@@ -0,0 +1,35 @@
|
||||
# Biome
|
||||
|
||||
[Biome](https://biomejs.dev/) support in Zed is provided by the community-maintained [Biome extension](https://github.com/biomejs/biome-zed).
|
||||
Report issues to: [https://github.com/biomejs/biome-zed/issues](https://github.com/biomejs/biome-zed/issues)
|
||||
|
||||
- Language Server: [biomejs/biome](https://github.com/biomejs/biome)
|
||||
|
||||
## Biome Language Support
|
||||
|
||||
The Biome extension includes support for the following languages:
|
||||
|
||||
- JavaScript
|
||||
- TypeScript
|
||||
- JSX
|
||||
- TSX
|
||||
- JSON
|
||||
- JSONC
|
||||
- Vue.js
|
||||
- Astro
|
||||
- Svelte
|
||||
- CSS
|
||||
|
||||
## Configuration
|
||||
|
||||
By default, the `biome.json` file is required to be in the root of the workspace.
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json"
|
||||
}
|
||||
```
|
||||
|
||||
For a full list of `biome.json` options see [Biome Configuration](https://biomejs.dev/reference/configuration/) documentation.
|
||||
|
||||
See the [Biome Zed Extension README](https://github.com/biomejs/biome-zed) for a complete list of features and configuration options.
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
C support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-c](https://github.com/tree-sitter/tree-sitter-c)
|
||||
- Language Server: [clangd](https://github.com/clangd/clangd)
|
||||
<!--
|
||||
TBD: Add instructions/configuration so clangd operates in C-only mode
|
||||
-->
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-c](https://github.com/tree-sitter/tree-sitter-c)
|
||||
- Language Server: [clangd/clangd](https://github.com/clangd/clangd)
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
# Clojure
|
||||
|
||||
Clojure support is available through the [Clojure extension](https://github.com/zed-industries/zed/tree/main/extensions/clojure).
|
||||
|
||||
- Tree Sitter: [prcastro/tree-sitter-clojure](https://github.com/prcastro/tree-sitter-clojure)
|
||||
- Language Server: [clojure-lsp/clojure-lsp](https://github.com/clojure-lsp/clojure-lsp)
|
||||
|
||||
- Tree Sitter: [prcastro/tree-sitter-clojure](https://github.com/prcastro/tree-sitter-clojure)
|
||||
- Language Server: [clojure-lsp/clojure-lsp](https://github.com/clojure-lsp/clojure-lsp)
|
||||
|
||||
<!--
|
||||
TBD: Add some Clojure Docs
|
||||
-->
|
||||
|
||||
@@ -2,5 +2,9 @@
|
||||
|
||||
C++ support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-cpp](https://github.com/tree-sitter/tree-sitter-cpp)
|
||||
- Language Server: [clangd](https://github.com/clangd/clangd)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-cpp](https://github.com/tree-sitter/tree-sitter-cpp)
|
||||
- Language Server: [clangd/clangd](https://github.com/clangd/clangd)
|
||||
|
||||
<--!
|
||||
TBD: Add some C++ Docs
|
||||
-->
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
# C#
|
||||
|
||||
Note language name is "CSharp" for settings not "C#'
|
||||
|
||||
C# support is available through the [C# extension](https://github.com/zed-industries/zed/tree/main/extensions/csharp).
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-c-sharp](https://github.com/tree-sitter/tree-sitter-c-sharp)
|
||||
- Language Server: [OmniSharp/omnisharp-roslyn](https://github.com/OmniSharp/omnisharp-roslyn)
|
||||
|
||||
## Configuration
|
||||
|
||||
The `OmniSharp` binary can be configured in a Zed settings file with:
|
||||
|
||||
@@ -2,5 +2,18 @@
|
||||
|
||||
CSS support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-css](https://github.com/tree-sitter/tree-sitter-css)
|
||||
- Language Server: N/A
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-css](https://github.com/tree-sitter/tree-sitter-css)
|
||||
- Language Servers:
|
||||
- [microsoft/vscode-html-languageservice](https://github.com/microsoft/vscode-html-languageservice)
|
||||
- [tailwindcss-language-server](https://github.com/tailwindlabs/tailwindcss-intellisense)
|
||||
|
||||
<!--
|
||||
TBD: Document CSS
|
||||
TBD: Document [Tailwind CSS](./tailwindcss.md)
|
||||
-->
|
||||
|
||||
## See also:
|
||||
|
||||
- [HTML](./html.md)
|
||||
- [TypeScript](./typescript.md)
|
||||
- [JavaScript](./javascript.md)
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
# Dart
|
||||
|
||||
Dart support is available through the [Dart extension](https://github.com/zed-industries/zed/tree/main/extensions/dart).
|
||||
|
||||
- Tree Sitter: [UserNobody14/tree-sitter-dart](https://github.com/UserNobody14/tree-sitter-dart)
|
||||
- Language Server: [dart language-server](https://github.com/dart-lang/sdk)
|
||||
|
||||
<!--
|
||||
TBD: Document Dart. pubspec.yaml
|
||||
- https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/tool/lsp_spec/README.md
|
||||
-->
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
# Deno
|
||||
|
||||
Deno support is available through the [Deno extension](https://github.com/zed-industries/zed/tree/main/extensions/deno).
|
||||
|
||||
- Language server: [Deno Language Server](https://docs.deno.com/runtime/manual/advanced/language_server/overview/)
|
||||
|
||||
<!--
|
||||
TBD: Document Deno configuration
|
||||
TBD: Deno Typescript REPL instructions [docs/repl#typescript-deno](../repl.md#typescript-deno)
|
||||
-->
|
||||
|
||||
## See also:
|
||||
|
||||
- [TypeScript](./typescript.md)
|
||||
- [JavaScript](./javascript.md)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# Docker
|
||||
|
||||
Support for `Dockerfile` and `docker-compose.yaml` in Zed is provided by community-maintained extensions.
|
||||
|
||||
## Docker Compose
|
||||
|
||||
Docker `compose.yaml` language support in Zed is provided by the [Docker Compose extension](https://github.com/eth0net/zed-docker-compose). Please report issues to: [https://github.com/eth0net/zed-docker-compose/issues](https://github.com/eth0net/zed-docker-compose/issues).
|
||||
|
||||
- Language Server: [microsoft/compose-language-service](https://github.com/microsoft/compose-language-service)
|
||||
|
||||
## Dockerfile
|
||||
|
||||
`Dockerfile` language support in Zed is provided by the [Dockerfile extension](https://github.com/d1y/dockerfile.zed). Please issues to: [https://github.com/d1y/dockerfile.zed/issues](https://github.com/d1y/dockerfile.zed/issues).
|
||||
|
||||
- Tree Sitter: [camdencheek/tree-sitter-dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile)
|
||||
- Language Server: [rcjsuen/dockerfile-language-server](https://github.com/rcjsuen/dockerfile-language-server)
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
Elixir support is available through the [Elixir extension](https://github.com/zed-industries/zed/tree/main/extensions/elixir).
|
||||
|
||||
- Tree Sitter:
|
||||
- [elixir-lang/tree-sitter-elixir](https://github.com/elixir-lang/tree-sitter-elixir)
|
||||
- [phoenixframework/tree-sitter-heex](https://github.com/phoenixframework/tree-sitter-heex)
|
||||
- Language servers:
|
||||
- [elixir-lsp/elixir-ls](https://github.com/elixir-lsp/elixir-ls)
|
||||
- [elixir-tools/next-ls](https://github.com/elixir-tools/next-ls)
|
||||
- [lexical-lsp/lexical](https://github.com/lexical-lsp/lexical)
|
||||
|
||||
## Choosing a language server
|
||||
|
||||
The Elixir extension offers language server support for `elixir-ls`, `next-ls`, and `lexical`.
|
||||
@@ -36,13 +44,13 @@ To switch to `lexical`, add the following to your `settings.json`:
|
||||
|
||||
1. Install `elixir`:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
brew install elixir
|
||||
```
|
||||
|
||||
2. Install `elixir-ls`:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
brew install elixir-ls
|
||||
```
|
||||
|
||||
@@ -69,7 +77,7 @@ If you prefer to format your code with [Mix](https://hexdocs.pm/mix/Mix.html), u
|
||||
}
|
||||
```
|
||||
|
||||
### Additional workspace configuration options (requires Zed `0.128.0`):
|
||||
### Additional workspace configuration options
|
||||
|
||||
You can pass additional elixir-ls workspace configuration options via lsp settings in `settings.json`.
|
||||
|
||||
@@ -86,3 +94,9 @@ The following example disables dialyzer:
|
||||
```
|
||||
|
||||
See [ElixirLS configuration settings](https://github.com/elixir-lsp/elixir-ls#elixirls-configuration-settings) for more options.
|
||||
|
||||
### HEEx
|
||||
|
||||
Zed also supports HEEx templates. HEEx is a mix of [EEx](https://hexdocs.pm/eex/1.12.3/EEx.html) (Embedded Elixir) and HTML, and is used in Phoenix LiveView applications.
|
||||
|
||||
- Tree Sitter: [phoenixframework/tree-sitter-heex](https://github.com/phoenixframework/tree-sitter-heex)
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
|
||||
Elm support is available through the [Elm extension](https://github.com/zed-industries/zed/tree/main/extensions/elm).
|
||||
|
||||
### Setting up `elm-language-server`
|
||||
- Tree Sitter: [elm-tooling/tree-sitter-elm](https://github.com/elm-tooling/tree-sitter-elm)
|
||||
- Language Server: [elm-tooling/elm-language-server](https://github.com/elm-tooling/elm-language-server)
|
||||
|
||||
## Setting up `elm-language-server`
|
||||
|
||||
Elm language server can be configured in your `settings.json`, e.g.:
|
||||
|
||||
@@ -20,4 +23,8 @@ Elm language server can be configured in your `settings.json`, e.g.:
|
||||
}
|
||||
```
|
||||
|
||||
<!--
|
||||
TBD: Add example of how to install `elm-format` and `elm-review`.
|
||||
-->
|
||||
|
||||
`elm-format`, `elm-review` and `elm` need to be installed and made available in the environment or configured in the settings. See the [full list of server settings here](https://github.com/elm-tooling/elm-language-server?tab=readme-ov-file#server-settings).
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# Emmet
|
||||
|
||||
[Emmet](https://emmet.io/) is a web-developer’s toolkit that can greatly improve your HTML & CSS workflow.
|
||||
|
||||
- Language Server: [olrtg/emmet-language-server](https://github.com/olrtg/emmet-language-server)
|
||||
|
||||
<!--
|
||||
TBD: Document Emmet usage in zed with: HTML, PHP, ERB, Javascript, TSX, CSS
|
||||
-->
|
||||
@@ -1,3 +1,11 @@
|
||||
# Erlang
|
||||
|
||||
Erlang support is available through the [Erlang extension](https://github.com/zed-industries/zed/tree/main/extensions/erlang).
|
||||
|
||||
- Tree Sitter: [WhatsApp/tree-sitter-erlang](https://github.com/WhatsApp/tree-sitter-erlang)
|
||||
- Language Server: [erlang-ls/erlang_ls](https://github.com/erlang-ls/erlang_ls)
|
||||
|
||||
## See also:
|
||||
|
||||
- [Elixir](./elixir.md)
|
||||
- [Gleam](./gleam.md)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Fish
|
||||
|
||||
Fish language support in Zed is provided by the community-maintained [Fish extension](https://github.com/hasit/zed-fish).
|
||||
Report issues to: [https://github.com/hasit/zed-fish/issues](https://github.com/hasit/zed-fish/issues)
|
||||
|
||||
- Tree Sitter: [ram02z/tree-sitter-fish](https://github.com/ram02z/tree-sitter-fish)
|
||||
@@ -0,0 +1,29 @@
|
||||
# GDScript
|
||||
|
||||
Godot [GDScript](https://gdscript.com/) language support in Zed is provided by the community-maintained [GDScript extension](https://github.com/grndctrl/zed-gdscript).
|
||||
Report issues to: [https://github.com/grndctrl/zed-gdscript/issues](https://github.com/grndctrl/zed-gdscript/issues)
|
||||
|
||||
- Tree Sitter: [PrestonKnopp/tree-sitter-gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript) and [PrestonKnopp/tree-sitter-godot-resource](https://github.com/PrestonKnopp/tree-sitter-godot-resource)
|
||||
- Language Server: [gdscript-language-server](https://github.com/godotengine/godot)
|
||||
|
||||
## Setup
|
||||
|
||||
1. Download and install [Godot for MacOS](https://godotengine.org/download/macos/).
|
||||
2. Unzip the Godot.app and drag it into your /Applications folder.
|
||||
3. Open Godot.app and open your project (an example project is fine)
|
||||
4. In Godot, Editor Menu -> Editor Settings; scroll down the left sidebar to `Text Editor -> External`
|
||||
1. Use External Editor: "✅ On"
|
||||
2. Exec path: `/Applications/Zed.app/Contents/MacOS/zed`
|
||||
3. Exec flags: `{project} {file}`
|
||||
4. Close settings to save.
|
||||
5. In Godot double click on a \*.gd script and Zed will launch
|
||||
|
||||
<!--
|
||||
TBD: GDScript Linux setup
|
||||
-->
|
||||
|
||||
## Usage
|
||||
|
||||
When Godot is running, the GDScript extension will connect to the language server provided by the Godot runtime and will provide `jump to definition`, hover states when you hold cmd and other language server features.
|
||||
|
||||
> Note: If Zed is already running with an existing workspace, spawning from Godot will fail. Quit Zed and it should work again.
|
||||
@@ -1,3 +1,11 @@
|
||||
# Gleam
|
||||
|
||||
Gleam support is available through the [Gleam extension](https://github.com/zed-industries/zed/tree/main/extensions/gleam).
|
||||
Gleam support is available through the [Gleam extension](https://github.com/zed-industries/zed/tree/main/extensions/gleam). To learn about Gleam, see the [docs](https://gleam.run/documentation/) or check out the [`stdlib` reference](https://hexdocs.pm/gleam_stdlib/). The Gleam language server has a variety of features, including go-to definition, automatic imports, and [more](https://gleam.run/language-server/).
|
||||
|
||||
- Tree Sitter: [gleam-lang/tree-sitter-gleam](https://github.com/gleam-lang/tree-sitter-gleam)
|
||||
- Language Server: [gleam lsp](https://github.com/gleam-lang/gleam/tree/main/compiler-core/src/language_server)
|
||||
|
||||
See also:
|
||||
|
||||
- [Elixir](./elixir.md)
|
||||
- [Erlang](./erlang.md)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# GLSL
|
||||
|
||||
GLSL (OpenGL Shading Language) support is available through the [GLSL Extension](https://github.com/zed-industries/zed/tree/main/extensions/glsl/)
|
||||
|
||||
- Tree Sitter: [theHamsta/tree-sitter-glsl](https://github.com/theHamsta/tree-sitter-glsl)
|
||||
- Language Server: [nolanderc/glsl_analyzer](https://github.com/nolanderc/glsl_analyzer)
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
Go support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go)
|
||||
- Language Server: [gopls](https://github.com/golang/tools/tree/master/gopls)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go)
|
||||
- Language Server: [golang/tools/tree/master/gopls](https://github.com/golang/tools/tree/master/gopls)
|
||||
|
||||
## Inlay Hints
|
||||
|
||||
@@ -27,7 +27,7 @@ Use
|
||||
|
||||
```json
|
||||
"lsp": {
|
||||
"$LANGUAGE_SERVER_NAME": {
|
||||
"gopls": {
|
||||
"initialization_options": {
|
||||
"hints": {
|
||||
....
|
||||
@@ -39,18 +39,19 @@ Use
|
||||
|
||||
to override these settings.
|
||||
|
||||
See https://github.com/golang/tools/blob/master/gopls/doc/inlayHints.md for more information.
|
||||
See [gopls inlayHints documentation](https://github.com/golang/tools/blob/master/gopls/doc/inlayHints.md) for more information.
|
||||
|
||||
# Go Mod
|
||||
## Go Mod
|
||||
|
||||
- Tree Sitter: [tree-sitter-go-mod](https://github.com/camdencheek/tree-sitter-go-mod)
|
||||
- Tree Sitter: [camdencheek/tree-sitter-go-mod](https://github.com/camdencheek/tree-sitter-go-mod)
|
||||
- Language Server: N/A
|
||||
|
||||
# Go Sum
|
||||
## Go Sum
|
||||
|
||||
TODO: https://github.com/zed-industries/zed/pull/7139
|
||||
- Tree Sitter: [amaanq/tree-sitter-go-sum](https://github.com/amaanq/tree-sitter-go-sum)
|
||||
- Language Server: N/A
|
||||
|
||||
# Go Work
|
||||
## Go Work
|
||||
|
||||
- Tree Sitter:
|
||||
[tree-sitter-go-work](https://github.com/d1y/tree-sitter-go-work)
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Groovy
|
||||
|
||||
Groovy language support in Zed is provided by the community-maintained [Groovy extension](https://github.com/valentinegb/zed-groovy).
|
||||
Report issues to: [https://github.com/valentinegb/zed-groovy/issues](https://github.com/valentinegb/zed-groovy/issues)
|
||||
|
||||
- Tree Sitter: [murtaza64/tree-sitter-groovy](https://github.com/murtaza64/tree-sitter-groovy)
|
||||
- Language Server: [GroovyLanguageServer/groovy-language-server](https://github.com/GroovyLanguageServer/groovy-language-server)
|
||||
@@ -1,3 +1,13 @@
|
||||
# Haskell
|
||||
|
||||
Haskell support is available through the [Haskell extension](https://github.com/zed-industries/zed/tree/main/extensions/haskell).
|
||||
|
||||
- Tree Sitter: [tree-sitter-haskell](https://github.com/tree-sitter/tree-sitter-haskell)
|
||||
- Language Server: [haskell-language-server](https://github.com/haskell/haskell-language-server)
|
||||
|
||||
See: official [configuring haskell-language-server](https://haskell-language-server.readthedocs.io/en/latest/configuration.html) docs for more.
|
||||
|
||||
<!--
|
||||
TBD: Add Haskell Docs
|
||||
TBD: Haskell formatting docs: haskell.formattingProvider (floskell, ormolu, fourmolu, stylish-haskell)
|
||||
-->
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
HTML support is available through the [HTML extension](https://github.com/zed-industries/zed/tree/main/extensions/html).
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-html](https://github.com/tree-sitter/tree-sitter-html)
|
||||
- Language Server: [microsoft/vscode-html-languageservice](https://github.com/microsoft/vscode-html-languageservice)
|
||||
|
||||
This extension is automatically installed.
|
||||
|
||||
If you do not want to use the HTML extension, you can add the following to your settings:
|
||||
@@ -13,3 +16,9 @@ If you do not want to use the HTML extension, you can add the following to your
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## See also:
|
||||
|
||||
- [CSS](./css.md)
|
||||
- [JavaScript](./javascript.md)
|
||||
- [TypeScript](./typescript.md)
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
# Java
|
||||
|
||||
Java language support in Zed is provided the [zed Java extension](https://github.com/zed-extensions/java).
|
||||
Report issues to: [https://github.com/zed-extensions/java/issues](https://github.com/zed-extensions/java/issues)
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-java](https://github.com/tree-sitter/tree-sitter-java)
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
JavaScript support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript)
|
||||
- Language Server: [typescript-language-server](https://github.com/typescript-language-server/typescript-language-server)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-javascript](https://github.com/tree-sitter/tree-sitter-javascript)
|
||||
- Language Server: [typescript-language-server/typescript-language-server](https://github.com/typescript-language-server/typescript-language-server)
|
||||
|
||||
### Code formatting
|
||||
## Code formatting
|
||||
|
||||
Formatting on save is enabled by default for JavaScript, using TypeScript's built-in code formatting. But many JavaScript projects use other command-line code-formatting tools, such as [Prettier](https://prettier.io/). You can use one of these tools by specifying an _external_ code formatter for JavaScript in your settings. See the [configuration](../configuring-zed.md) documentation for more information.
|
||||
|
||||
@@ -26,10 +26,20 @@ For example, if you have Prettier installed and on your `PATH`, you can use it t
|
||||
}
|
||||
```
|
||||
|
||||
### ESLint
|
||||
## JSX
|
||||
|
||||
TBD: Mention JSX
|
||||
|
||||
## JSDoc
|
||||
|
||||
TBD: Document JSDoc support in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc)
|
||||
|
||||
## ESLint
|
||||
|
||||
You can configure Zed to format code using `eslint --fix` by running the ESLint
|
||||
code action when formatting (requires Zed `0.125.0`):
|
||||
code action when formatting:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -72,7 +82,7 @@ You can also only execute a single ESLint rule when using `fixAll`:
|
||||
> errors.
|
||||
|
||||
If you **only** want to run ESLint on save, you can configure code actions as
|
||||
the formatter (requires Zed `0.130.x`):
|
||||
the formatter:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -88,9 +98,9 @@ the formatter (requires Zed `0.130.x`):
|
||||
}
|
||||
```
|
||||
|
||||
#### Configure ESLint's `nodePath`:
|
||||
### Configure ESLint's `nodePath`:
|
||||
|
||||
You can configure ESLint's `nodePath` setting (requires Zed `0.127.0`):
|
||||
You can configure ESLint's `nodePath` setting:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -104,9 +114,9 @@ You can configure ESLint's `nodePath` setting (requires Zed `0.127.0`):
|
||||
}
|
||||
```
|
||||
|
||||
#### Configure ESLint's `problems`:
|
||||
### Configure ESLint's `problems`:
|
||||
|
||||
You can configure ESLint's `problems` setting (requires Zed `0.130.x`).
|
||||
You can configure ESLint's `problems` setting.
|
||||
|
||||
For example, here's how to set `problems.shortenToSingleLine`:
|
||||
|
||||
@@ -124,7 +134,7 @@ For example, here's how to set `problems.shortenToSingleLine`:
|
||||
}
|
||||
```
|
||||
|
||||
#### Configure ESLint's `rulesCustomizations`:
|
||||
### Configure ESLint's `rulesCustomizations`:
|
||||
|
||||
You can configure ESLint's `rulesCustomizations` setting:
|
||||
|
||||
@@ -143,6 +153,7 @@ You can configure ESLint's `rulesCustomizations` setting:
|
||||
}
|
||||
```
|
||||
|
||||
## Yarn integration
|
||||
## See also
|
||||
|
||||
See [Yarn documentation](./yarn.md) for a walkthrough of configuring your project to use Yarn.
|
||||
- [Yarn documentation](./yarn.md) for a walkthrough of configuring your project to use Yarn.
|
||||
- [TypeScript documentation](./typescript.md)
|
||||
|
||||
@@ -2,5 +2,16 @@
|
||||
|
||||
JSON support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-json](https://github.com/tree-sitter/tree-sitter-json)
|
||||
- Language Server: [json-language-server](https://github.com/zed-industries/json-language-server)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-json](https://github.com/tree-sitter/tree-sitter-json)
|
||||
- Language Server: [zed-industries/json-language-server](https://github.com/zed-industries/json-language-server)
|
||||
|
||||
## JSONC
|
||||
|
||||
Zed also supports a super-set of JSON called JSONC, which allows single line comments (`//`) in JSON files.
|
||||
While editing these files you can use `cmd-/` (MacOS) or `ctrl-/` (Linux) to toggle comments on the current line or selection.
|
||||
|
||||
<!--
|
||||
TBD: JSONC Example for how to use `file_types`
|
||||
TBD: Add formatter (prettier) settings (autoformat, tab_size, etc)
|
||||
TBD: Document JSON Schema features of Zed
|
||||
-->
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# Julia
|
||||
|
||||
Julia language support in Zed is provided by the community-maintained [Julia extension](https://github.com/JuliaEditorSupport/zed-julia).
|
||||
Report issues to: [https://github.com/JuliaEditorSupport/zed-julia/issues](https://github.com/JuliaEditorSupport/zed-julia/issues)
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-julia](https://github.com/tree-sitter/tree-sitter-julia)
|
||||
- Language Server: [julia-vscode/LanguageServer.jl](https://github.com/julia-vscode/LanguageServer.jl)
|
||||
|
||||
<!--
|
||||
TBD: Document Julia Installation
|
||||
TBD: Julia REPL Setup instructions
|
||||
-->
|
||||
@@ -0,0 +1,34 @@
|
||||
# Kotlin
|
||||
|
||||
Kotlin language support in Zed is provided by the community-maintained [Kotlin extension](https://github.com/zed-extensions/kotlin).
|
||||
Report issues to: [https://github.com/zed-extensions/kotlin/issues](https://github.com/zed-extensions/kotlin/issues)
|
||||
|
||||
- Tree Sitter: [fwcd/tree-sitter-kotlin](https://github.com/fwcd/tree-sitter-kotlin)
|
||||
- Language Server: [fwcd/kotlin-language-server](https://github.com/fwcd/kotlin-language-server)
|
||||
|
||||
## Configuration
|
||||
|
||||
Workspace configuration options can be passed to the language server via lsp
|
||||
settings in `settings.json`.
|
||||
|
||||
The following example changes the JVM target from `default` (which is 1.8) to
|
||||
`17`:
|
||||
|
||||
```json
|
||||
{
|
||||
"lsp": {
|
||||
"kotlin-language-server": {
|
||||
"settings": {
|
||||
"compiler": {
|
||||
"jvm": {
|
||||
"target": "17"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The full list of workspace configuration options can be found
|
||||
[here](https://github.com/fwcd/kotlin-language-server/blob/main/server/src/main/kotlin/org/javacs/kt/Configuration.kt).
|
||||
@@ -1,3 +1,30 @@
|
||||
# Lua
|
||||
|
||||
Lua support is available through the [Lua extension](https://github.com/zed-industries/zed/tree/main/extensions/lua).
|
||||
|
||||
- Tree Sitter: [tree-sitter-grammars/tree-sitter-lua](https://github.com/tree-sitter-grammars/tree-sitter-lua)
|
||||
- Language server: [LuaLS/lua-language-server](https://github.com/LuaLS/lua-language-server)
|
||||
|
||||
## luarc.json
|
||||
|
||||
To configure LuaLS you can create a `.luarc.json` file in the root of your workspace.
|
||||
|
||||
See [LuaLS Settings Documentation](https://luals.github.io/wiki/settings/) for all available configuration options.
|
||||
|
||||
```json
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json",
|
||||
"runtime.version": "Lua 5.4",
|
||||
"diagnostics.severity": {
|
||||
// "duplicate-set-field": "Hint"
|
||||
},
|
||||
"format.defaultConfig": {
|
||||
"indent_style": "space",
|
||||
"indent_size": "4"
|
||||
},
|
||||
// Location(s) of any LuaCATS / EmmyLua annotation stubs
|
||||
"workspace.library": [
|
||||
// "path/to/library/directory"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Luau
|
||||
|
||||
[Luau](https://luau-lang.org/) is a fast, small, safe, gradually typed embeddable scripting language derived from Lua. Luau was developed by Roblox and available under the MIT license.
|
||||
|
||||
Luau language support in Zed is provided by the community-maintained [Luau extension](https://github.com/4teapo/zed-luau).
|
||||
Report issues to: [https://github.com/4teapo/zed-luau/issues](https://github.com/4teapo/zed-luau/issues)
|
||||
|
||||
- Tree Sitter: [tree-sitter-grammars/tree-sitter-luau](https://github.com/tree-sitter-grammars/tree-sitter-luau)
|
||||
- Language Server: [JohnnyMorganz/luau-lsp](https://github.com/JohnnyMorganz/luau-lsp)
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration instructions are available in the [Luau Zed Extension README](https://github.com/4teapo/zed-luau).
|
||||
|
||||
## Formatting
|
||||
|
||||
To support automatically formatting your code, you can use [JohnnyMorganz/StyLua](https://github.com/JohnnyMorganz/StyLua), a Lua code formatter.
|
||||
|
||||
Install with:
|
||||
|
||||
```sh
|
||||
# MacOS via HomeBrew
|
||||
brew install stylua
|
||||
# Or via Cargo
|
||||
cargo install stylua --features lua52,lua53,lua54,luau
|
||||
```
|
||||
|
||||
Then add the following to your Zed `settings.json`:
|
||||
|
||||
```json
|
||||
"languages": {
|
||||
"Luau": {
|
||||
"formatter": {
|
||||
"external": {
|
||||
"command": "stylua",
|
||||
"arguments": ["-"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
# Makefile
|
||||
|
||||
Makefile language support in Zed is provided by the community-maintained [Make extension](https://github.com/caius/zed-make).
|
||||
Report issues to: [https://github.com/caius/zed-make/issues](https://github.com/caius/zed-make/issues).
|
||||
|
||||
- Tree Sitter: [caius/tree-sitter-make](https://github.com/caius/tree-sitter-make)
|
||||
@@ -2,5 +2,32 @@
|
||||
|
||||
Markdown support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-md](https://github.com/tree-sitter-grammars/tree-sitter-markdown)
|
||||
- Tree Sitter: [tree-sitter-markdown](https://github.com/tree-sitter-grammars/tree-sitter-markdown)
|
||||
- Language Server: N/A
|
||||
|
||||
## Syntax Highlighting Code Blocks
|
||||
|
||||
Zed supports language-specific syntax highlighting of markdown code blocks by leveraging [tree-sitter language grammars](../extensions/languages.md#grammar). All [Zed supported languages](../languages.md), including those provided by official or community extensions, are available for use in markdown code blocks. All you need to do is provide a language name after the opening <kbd>```</kbd> code fence like so:
|
||||
|
||||
````python
|
||||
```python
|
||||
import functools as ft
|
||||
|
||||
@ft.lru_cache(maxsize=500)
|
||||
def fib(n):
|
||||
return n if n < 2 else fib(n - 1) + fib(n - 2)
|
||||
```
|
||||
````
|
||||
|
||||
## Configuration
|
||||
|
||||
If you wish change the default language settings for Markdown files, perhaps to disable auto format on save or if your markdown relies upon trailing whitespace ` ` being converted to `<br />` you can add change these values in your `settings.json`:
|
||||
|
||||
```json
|
||||
"languages": {
|
||||
"Markdown": {
|
||||
"remove_trailing_whitespace_on_save": true,
|
||||
"format_on_save": "on"
|
||||
}
|
||||
},
|
||||
```
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# Nim
|
||||
|
||||
Nim language support in Zed is provided by the community-maintained [Nim extension](https://github.com/foxoman/zed-nim).
|
||||
Report issues to: [https://github.com/foxoman/zed-nim/issues](https://github.com/foxoman/zed-nim/issues)
|
||||
|
||||
- Tree Sitter: [alaviss/tree-sitter-nim](https://github.com/alaviss/tree-sitter-nim)
|
||||
- Language Server: [nim-lang/langserver](https://github.com/nim-lang/langserver)
|
||||
|
||||
## Formatting
|
||||
|
||||
To use [arnetheduck/nph](https://github.com/arnetheduck/nph) as a formatter, follow the [nph installation instructions](https://github.com/arnetheduck/nph?tab=readme-ov-file#installation) and add this to your Zed `settings.json`:
|
||||
|
||||
```json
|
||||
"languages": {
|
||||
"Nim": {
|
||||
"formatter": {
|
||||
"external": {
|
||||
"command": "nph",
|
||||
"arguments": ["-"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
OCaml support is available through the [OCaml extension](https://github.com/zed-industries/zed/tree/main/extensions/ocaml).
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-ocaml](https://github.com/tree-sitter/tree-sitter-ocaml)
|
||||
- Language Server: [ocaml/ocaml-lsp](https://github.com/ocaml/ocaml-lsp)
|
||||
|
||||
## Setup Instructions
|
||||
|
||||
If you have the development environment already setup, you can skip to [Launching Zed](#launching-zed)
|
||||
|
||||
@@ -2,12 +2,21 @@
|
||||
|
||||
PHP support is available through the [PHP extension](https://github.com/zed-industries/zed/tree/main/extensions/php).
|
||||
|
||||
- Tree Sitter: https://github.com/tree-sitter/tree-sitter-php
|
||||
- Language Servers:
|
||||
- [phpactor](https://github.com/phpactor/phpactor)
|
||||
- [intelephense](https://github.com/bmewburn/vscode-intelephense/)
|
||||
|
||||
## Choosing a language server
|
||||
|
||||
The PHP extension offers both `phpactor` and `intelephense` language server support.
|
||||
|
||||
`phpactor` is enabled by default.
|
||||
|
||||
## Intelephense
|
||||
|
||||
[Intelephense](https://intelephense.com/) is a [proprietary](https://github.com/bmewburn/vscode-intelephense/blob/master/LICENSE.txt#L29) language server for PHP operating under a freemium model. Certain features require purchase of a [premium license](https://intelephense.com/). To use these features you must place your [license.txt file](https://intelephense.com/faq.html) at `~/intelephense/licence.txt` inside your home directory.
|
||||
|
||||
To switch to `intelephense`, add the following to your `settings.json`:
|
||||
|
||||
```json
|
||||
@@ -19,3 +28,9 @@ To switch to `intelephense`, add the following to your `settings.json`:
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## PHPDoc
|
||||
|
||||
Zed supports syntax highlighting for PHPDoc comments.
|
||||
|
||||
- Tree Sitter: [claytonrcarter/tree-sitter-phpdoc](https://github.com/claytonrcarter/tree-sitter-phpdoc)
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
# Prisma
|
||||
|
||||
Prisma support is available through the [Prisma extension](https://github.com/zed-industries/zed/tree/main/extensions/prisma).
|
||||
|
||||
- Tree Sitter: [victorhqc/tree-sitter-prisma](https://github.com/victorhqc/tree-sitter-prisma)
|
||||
- Language-Server: [prisma/language-tools](https://github.com/prisma/language-tools)
|
||||
|
||||
<!--
|
||||
TBD: Prisma usage and configuration documentation
|
||||
-->
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Proto
|
||||
|
||||
Proto support is available natively in Zed.
|
||||
Proto/proto3 (Protocol Buffers definition language) support is available natively in Zed.
|
||||
|
||||
- Tree-Sitter: [protols-tree-sitter-proto](https://github.com/coder3101/tree-sitter-proto)
|
||||
- Language-Server: N/A
|
||||
- Tree Sitter: [coder3101/tree-sitter-proto](https://github.com/coder3101/tree-sitter-proto)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# PureScript
|
||||
|
||||
PureScript support is available through the [PureScript extension](https://github.com/zed-industries/zed/tree/main/extensions/purescript).
|
||||
|
||||
- Tree Sitter: [postsolar/tree-sitter-purescript](https://github.com/postsolar/tree-sitter-purescript)
|
||||
- Language-Server: [nwolverson/purescript-language-server](https://github.com/nwolverson/purescript-language-server)
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
Python support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-python](https://github.com/tree-sitter/tree-sitter-python)
|
||||
- Language Server: [pyright](https://github.com/microsoft/pyright)
|
||||
- Language Server: [microsoft/pyright](https://github.com/microsoft/pyright)
|
||||
|
||||
### Configuration
|
||||
## Configuration
|
||||
|
||||
The [pyright](https://github.com/microsoft/pyright) language server offers flexible configuration options specified in a JSON-formatted text configuration. By default, the file is called `pyrightconfig.json` and is located within the root directory of your project. Pyright settings can also be specified in a `[tool.pyright]` section of a `pyproject.toml` file. A `pyrightconfig.json` file always takes precedent over `pyproject.toml` if both are present.
|
||||
The [pyright](https://github.com/microsoft/pyright) language server offers flexible configuration options specified in a JSON-formatted text configuration. By default, the file is called `pyrightconfig.json` and is located within the root directory of your project. Pyright settings can also be specified in a `[tool.pyright]` section of a `pyproject.toml` file. A `pyrightconfig.json` file always takes precedence over `pyproject.toml` if both are present.
|
||||
|
||||
For more information, see the Pyright [configuration documentation](https://microsoft.github.io/pyright/#/configuration).
|
||||
|
||||
### Settings
|
||||
## Settings
|
||||
|
||||
The [pyright](https://github.com/microsoft/pyright) language server also accepts specific LSP related settings, not necessarily connected to a project. These can be changed in the `lsp` section of your `settings.json`.
|
||||
The [pyright](https://github.com/microsoft/pyright) language server also accepts specific LSP-related settings, not necessarily connected to a project. These can be changed in the `lsp` section of your `settings.json`.
|
||||
|
||||
For example, in order to:
|
||||
|
||||
- use strict type-checking level
|
||||
- diagnose all files in the workspace instead of the only open files default
|
||||
- provide the path to a specific python interpreter
|
||||
- provide the path to a specific Python interpreter
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -41,9 +41,9 @@ For example, in order to:
|
||||
|
||||
For more information, see the Pyright [settings documentation](https://microsoft.github.io/pyright/#/settings).
|
||||
|
||||
### Virtual environments
|
||||
## Virtual environments
|
||||
|
||||
A python [virtual environment](https://docs.python.org/3/tutorial/venv.html) allows you to store all of a project's dependencies, including the Python interpreter and package manager, in a single directory that's isolated from any other Python projects on your computer.
|
||||
A Python [virtual environment](https://docs.python.org/3/tutorial/venv.html) allows you to store all of a project's dependencies, including the Python interpreter and package manager, in a single directory that's isolated from any other Python projects on your computer.
|
||||
|
||||
By default, the Pyright language server will look for Python packages in the default global locations. But you can also configure Pyright to use the packages installed in a given virtual environment.
|
||||
|
||||
@@ -54,7 +54,7 @@ To do this, create a JSON file called `pyrightconfig.json` at the root of your p
|
||||
|
||||
For example, a common approach is to create a virtual environment directory called `.venv` at the root of your project directory with the following commands:
|
||||
|
||||
```bash
|
||||
```sh
|
||||
# create a virtual environment in the .venv directory
|
||||
python3 -m venv .venv
|
||||
# set up the current shell to use that virtual environment
|
||||
@@ -78,7 +78,7 @@ venvPath = "."
|
||||
venv = ".venv"
|
||||
```
|
||||
|
||||
You can also configure this option directly in your `settings.json` file ([pyrights settings](#settings)), as recommended in [Configuring Your Python Environment](https://microsoft.github.io/pyright/#/import-resolution?id=configuring-your-python-environment).
|
||||
You can also configure this option directly in your `settings.json` file ([pyright settings](#settings)), as recommended in [Configuring Your Python Environment](https://microsoft.github.io/pyright/#/import-resolution?id=configuring-your-python-environment).
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -94,31 +94,13 @@ You can also configure this option directly in your `settings.json` file ([pyrig
|
||||
}
|
||||
```
|
||||
|
||||
### Code formatting & Linting
|
||||
## Code formatting & Linting
|
||||
|
||||
The Pyright language server does not provide code formatting or linting. If you want to detect lint errors and reformat your Python code upon saving, you'll need to set up.
|
||||
|
||||
A common tool for formatting Python code is [Ruff](https://docs.astral.sh/ruff/). It is another tool written in Rust, an extremely fast Python linter and code formatter.
|
||||
A common tool for formatting Python code is [Ruff](https://docs.astral.sh/ruff/). It is another tool written in Rust, an extremely fast Python linter and code formatter. It is available through the [Ruff extension](https://github.com/zed-industries/zed/tree/main/extensions/ruff/). To configure the Ruff extension to work within Zed, see the setup documentation [here](https://docs.astral.sh/ruff/editors/setup/#zed).
|
||||
|
||||
It is available through the [Ruff extension](https://github.com/zed-industries/zed/tree/main/extensions/ruff/). However, the code formatting through the extension is not yet available. You can set up the formatter to run on save by adding the following configuration to your `settings.json`, assuming that [`Ruff`](https://docs.astral.sh/ruff/) is installed in your Python environment.
|
||||
|
||||
```json
|
||||
{
|
||||
"languages": {
|
||||
..., // other languages
|
||||
"Python": {
|
||||
"format_on_save": {
|
||||
"external": {
|
||||
"command": "python",
|
||||
"arguments": [
|
||||
"-m",
|
||||
"ruff",
|
||||
"format",
|
||||
"-"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
<!--
|
||||
TBD: Expand Python Ruff docs.
|
||||
TBD: Ruff pyproject.toml, ruff.toml docs. `ruff.configuration`.
|
||||
-->
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
R support is available through the [R extension](https://github.com/ocsmit/zed-r).
|
||||
|
||||
- Tree Sitter: [r-lib/tree-sitter-r](https://github.com/r-lib/tree-sitter-r)
|
||||
- Language-Server: [REditorSupport/languageserver](https://github.com/REditorSupport/languageserver)
|
||||
|
||||
## Installation
|
||||
|
||||
- [Install R](https://cloud.r-project.org/)
|
||||
@@ -13,3 +16,7 @@ install.packages("lintr")
|
||||
```
|
||||
|
||||
- Install the [R extension](https://github.com/ocsmit/zed-r) through Zed's extensions
|
||||
|
||||
<!--
|
||||
TBD: R REPL Docs
|
||||
-->
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# Racket
|
||||
|
||||
Racket support is available through the [Racket extension](https://github.com/zed-industries/zed/tree/main/extensions/racket).
|
||||
|
||||
- Tree Sitter: [zed-industries/tree-sitter-racket](https://github.com/zed-industries/tree-sitter-racket)
|
||||
|
||||
The [racket-language-server](https://docs.racket-lang.org/racket-language-server/index.html) is not yet supported in Zed, please see [Issue #15789](https://github.com/zed-industries/zed/issues/15789) for more information.
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Roc
|
||||
|
||||
[Roc](https://www.roc-lang.org/) is a fast, friendly, functional language.
|
||||
|
||||
Roc language support in Zed is provided by the community-maintained [Roc extension](https://github.com/h2000/zed-roc).
|
||||
Report issues to: [https://github.com/h2000/zed-roc/issues](https://github.com/h2000/zed-roc/issues)
|
||||
|
||||
- Tree Sitter: [faldor20/tree-sitter-roc](https://github.com/faldor20/tree-sitter-roc)
|
||||
- Language Server: [roc-lang/roc/tree/main/crates/language_server](https://github.com/roc-lang/roc/tree/main/crates/language_server)
|
||||
|
||||
## Setup
|
||||
|
||||
1. Follow instructions to [Install Roc](https://www.roc-lang.org/install) from the Roc-Lang website.
|
||||
2. Ensure `roc` and `roc_language_server` are in your PATH.
|
||||
@@ -0,0 +1,7 @@
|
||||
# ReStructuredText (rst)
|
||||
|
||||
ReStructuredText language support in Zed is provided by the community-maintained [reST extension](https://github.com/elmarco/zed-rst).
|
||||
Report issues to: [https://github.com/elmarco/zed-rst/issues](https://github.com/elmarco/zed-rst/issues)
|
||||
|
||||
- Tree Sitter: [stsewd/tree-sitter-rst.git](https://github.com/stsewd/tree-sitter-rst.git)
|
||||
- Language Server: [swyddfa/esbonio](https://github.com/swyddfa/esbonio)
|
||||
+52
-12
@@ -2,13 +2,36 @@
|
||||
|
||||
Ruby support is available through the [Ruby extension](https://github.com/zed-industries/zed/tree/main/extensions/ruby).
|
||||
|
||||
- Tree-sitters:
|
||||
- [tree-sitter-ruby](https://github.com/tree-sitter/tree-sitter-ruby)
|
||||
- [tree-sitter-embedded-template](https://github.com/tree-sitter/tree-sitter-embedded-template)
|
||||
- Language Servers:
|
||||
- [ruby-lsp](https://github.com/Shopify/ruby-lsp)
|
||||
- [solargraph](https://github.com/castwide/solargraph)
|
||||
- [rubocop](https://github.com/rubocop/rubocop)
|
||||
|
||||
The Ruby extension also provides support for ERB files.
|
||||
|
||||
## Choosing a language server
|
||||
## Language Servers
|
||||
|
||||
The Ruby extension offers both `solargraph` and `ruby-lsp` language server support.
|
||||
There are multiple language servers available for Ruby. Zed supports the two following:
|
||||
|
||||
`solargraph` is enabled by default.
|
||||
- [solargraph](https://github.com/castwide/solargraph)
|
||||
- [ruby-lsp](https://github.com/Shopify/ruby-lsp)
|
||||
|
||||
They both have an overlapping feature set of autocomplete, diagnostics, code actions, etc. and it's up to you to decide which one you want to use. Note that you can't use both at the same time.
|
||||
|
||||
In addition to these two language servers, Zed also supports [rubocop](https://github.com/rubocop/rubocop) which is a static code analyzer and linter for Ruby. Under the hood, it's also used by Zed as a language server, but its functionality is complimentary to that of solargraph and ruby-lsp.
|
||||
|
||||
## Configuring a language server
|
||||
|
||||
The [Ruby extension](https://github.com/zed-industries/zed/tree/main/extensions/ruby) offers both `solargraph` and `ruby-lsp` language server support.
|
||||
|
||||
### Using `solargraph`
|
||||
|
||||
`solargraph` is enabled by default in the Ruby extension.
|
||||
|
||||
### Using `ruby-lsp`
|
||||
|
||||
To switch to `ruby-lsp`, add the following to your `settings.json`:
|
||||
|
||||
@@ -22,8 +45,13 @@ To switch to `ruby-lsp`, add the following to your `settings.json`:
|
||||
}
|
||||
```
|
||||
|
||||
The Ruby extension also provides support for `rubocop` language server for offense detection and autocorrection. To enable it, add the following to your
|
||||
`settings.json`:
|
||||
That disables `solargraph` and `rubocop` and enables `ruby-lsp`.
|
||||
|
||||
### Using `rubocop`
|
||||
|
||||
The Ruby extension also provides support for `rubocop` language server for offense detection and autocorrection.
|
||||
|
||||
To enable it, add the following to your `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -35,19 +63,31 @@ The Ruby extension also provides support for `rubocop` language server for offen
|
||||
}
|
||||
```
|
||||
|
||||
Or, conversely, you can disable `ruby-lsp` and enable `solargraph` and `rubocop` by adding the following to your `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"languages": {
|
||||
"Ruby": {
|
||||
"language_servers": ["solargraph", "rubocop", "!ruby-lsp", "..."]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Setting up `solargraph`
|
||||
|
||||
Zed currently doesn't install Solargraph automatically. To use Solargraph, you need to install the gem. Zed just looks for an executable called `solargraph` on your `PATH`.
|
||||
|
||||
You can install the gem manually with the following command:
|
||||
|
||||
```shell
|
||||
```sh
|
||||
gem install solargraph
|
||||
```
|
||||
|
||||
Alternatively, if your project uses Bundler, you can add the Solargraph gem to your `Gemfile`:
|
||||
|
||||
```ruby
|
||||
```rb
|
||||
gem 'solargraph', group: :development
|
||||
```
|
||||
|
||||
@@ -66,7 +106,7 @@ Solargraph has formatting and diagnostics disabled by default. We can tell Zed t
|
||||
}
|
||||
```
|
||||
|
||||
To use Solargraph in the context of the bundle, you can use [folder-specific settings](../configuring-zed#settings-files) and specify the absolute path to the [`binstub`](https://bundler.io/v2.5/man/bundle-binstubs.1.html) of Solargraph:
|
||||
To use Solargraph in the context of the bundle, you can use [folder-specific settings](../configuring-zed.md#settings-files) and specify the absolute path to the [`binstub`](https://bundler.io/v2.5/man/bundle-binstubs.1.html) of Solargraph:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -90,7 +130,7 @@ Zed currently doesn't install Ruby LSP automatically. To use Ruby LSP, you need
|
||||
|
||||
You can install the gem manually with the following command:
|
||||
|
||||
```shell
|
||||
```sh
|
||||
gem install ruby-lsp
|
||||
```
|
||||
|
||||
@@ -116,7 +156,7 @@ Zed currently doesn't install `rubocop` automatically. To use `rubocop`, you nee
|
||||
|
||||
You can install the gem manually with the following command:
|
||||
|
||||
```shell
|
||||
```sh
|
||||
gem install rubocop
|
||||
```
|
||||
|
||||
@@ -134,7 +174,7 @@ Rubocop has unsafe autocorrection disabled by default. We can tell Zed to enable
|
||||
}
|
||||
```
|
||||
|
||||
To use Rubocop in the context of the bundle, you can use [folder-specific settings](../configuring-zed#settings-files) and specify the absolute path to the [`binstub`](https://bundler.io/v2.5/man/bundle-binstubs.1.html) of Rubocop:
|
||||
To use Rubocop in the context of the bundle, you can use [folder-specific settings](../configuring-zed.md#settings-files) and specify the absolute path to the [`binstub`](https://bundler.io/v2.5/man/bundle-binstubs.1.html) of Rubocop:
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -179,7 +219,7 @@ In order to do that, you need to configure the language server so that it knows
|
||||
|
||||
With these settings you will get completions for Tailwind CSS classes in HTML attributes inside ERB files and inside Ruby/ERB strings that are coming after a `class:` key. Examples:
|
||||
|
||||
```ruby
|
||||
```rb
|
||||
# Ruby file:
|
||||
def method
|
||||
div(class: "pl-2 <completion here>") do
|
||||
|
||||
@@ -2,8 +2,14 @@
|
||||
|
||||
Rust support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust)
|
||||
- Language Server: [rust-analyzer](https://github.com/rust-lang/rust-analyzer)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust)
|
||||
- Language Server: [rust-lang/rust-analyzer](https://github.com/rust-lang/rust-analyzer)
|
||||
|
||||
<!--
|
||||
TBD: Polish Rust Docs. Zed is a good rust editor, good Rust docs make it look like we care about Rust (we do!)
|
||||
TBD: Users may not know what inlayHints, don't start there.
|
||||
TBD: Provide explicit examples not just `....`
|
||||
-->
|
||||
|
||||
## Inlay Hints
|
||||
|
||||
@@ -28,7 +34,7 @@ Use
|
||||
|
||||
```json
|
||||
"lsp": {
|
||||
"$LANGUAGE_SERVER_NAME": {
|
||||
"rust-analyzer": {
|
||||
"initialization_options": {
|
||||
....
|
||||
}
|
||||
@@ -38,7 +44,7 @@ Use
|
||||
|
||||
to override these settings.
|
||||
|
||||
See https://rust-analyzer.github.io/manual.html#inlay-hints for more information.
|
||||
See [Inlay Hints](https://rust-analyzer.github.io/manual.html#inlay-hints) in the Rust Analyzer Manual for more information.
|
||||
|
||||
## Target directory
|
||||
|
||||
@@ -60,8 +66,45 @@ The `rust-analyzer` target directory can be set in `initialization_options`:
|
||||
|
||||
A `true` setting will set the target directory to `target/rust-analyzer`. You can set a custom directory with a string like `"target/analyzer"` instead of `true`.
|
||||
|
||||
## Binary
|
||||
|
||||
You can configure which `rust-analyzer` binary Zed should use.
|
||||
|
||||
To use a binary in a custom location, add the following to your `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"lsp": {
|
||||
"rust-analyzer": {
|
||||
"binary": {
|
||||
"path": "/Users/example/bin/rust-analyzer",
|
||||
"args": []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
To use a binary that is on your `$PATH`, add the following to your `settings.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"lsp": {
|
||||
"rust-analyzer": {
|
||||
"binary": {
|
||||
"path_lookup": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## More server configuration
|
||||
|
||||
<!--
|
||||
TBD: Is it possible to specify RUSTFLAGS? https://github.com/zed-industries/zed/issues/14334
|
||||
-->
|
||||
|
||||
Rust-analyzer [manual](https://rust-analyzer.github.io/manual.html) describes various features and configuration options for rust-analyzer language server.
|
||||
Rust-analyzer in Zed runs with the default parameters.
|
||||
|
||||
@@ -84,7 +127,7 @@ rust-analyzer.cargo.allTargets (default: true)
|
||||
Pass --all-targets to cargo invocation
|
||||
```
|
||||
|
||||
Which would mean that every time Zed [auto]saves, a `cargo check --workspace --all-targets` command is run, checking the entire project (workspace), lib, doc, test, bin, bench and [other targets](https://doc.rust-lang.org/cargo/reference/cargo-targets.html).
|
||||
Which would mean that every time Zed saves, a `cargo check --workspace --all-targets` command is run, checking the entire project (workspace), lib, doc, test, bin, bench and [other targets](https://doc.rust-lang.org/cargo/reference/cargo-targets.html).
|
||||
|
||||
While that works fine on small projects, it does not scale well.
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# Scala
|
||||
|
||||
Scala language support in Zed is provided by the community-maintained [Scala extension](https://github.com/scalameta/metals-zed).
|
||||
Report issues to: [https://github.com/scalameta/metals-zed/issues](https://github.com/scalameta/metals-zed/issues)
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-scala](https://github.com/tree-sitter/tree-sitter-scala)
|
||||
- Language Server: [scalameta/metals](https://github.com/scalameta/metals)
|
||||
|
||||
## Setup
|
||||
|
||||
- Install Scala with `cs setup` (Coursier): https://www.scala-lang.org/download/
|
||||
- `brew install coursier/formulas/coursier && cs setup`
|
||||
- REPL (Almond) Setup Instructions https://almond.sh/docs/quick-start-install
|
||||
- `brew install --cask temurin` (Eclipse foundation official OpenJDK binaries)
|
||||
- `brew install coursier/formulas/coursier && cs setup`
|
||||
- `coursier launch --use-bootstrap almond -- --install`
|
||||
|
||||
## Configuration
|
||||
|
||||
Behavior of the Metals language server can be controlled with:
|
||||
|
||||
- `.scalafix.conf` file - See [Scalafix Configuration](https://scalacenter.github.io/scalafix/docs/users/configuration.html)
|
||||
- `.scalafmt.conf` file - See [Scalafmt Configuration](https://scalameta.org/scalafmt/docs/configuration.html)
|
||||
|
||||
You can place these files in the root of your project or specifying their location in the Metals configuration. See [Metals User Configuration](https://scalameta.org/metals/docs/editors/user-configuration) for more.
|
||||
|
||||
<!--
|
||||
TBD: Provide LSP configuration example for metals in Zed settings.json. metals.{javaHome,excludedPackages,customProjectRoot} etc.
|
||||
-->
|
||||
@@ -1,3 +1,5 @@
|
||||
# Scheme
|
||||
|
||||
Scheme support is available through the [Scheme extension](https://github.com/zed-industries/zed/tree/main/extensions/scheme).
|
||||
|
||||
- Tree Sitter: [6cdh/tree-sitter-scheme](https://github.com/6cdh/tree-sitter-scheme)
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
|
||||
Svelte support is available through the [Svelte extension](https://github.com/zed-industries/zed/tree/main/extensions/svelte).
|
||||
|
||||
- Tree Sitter: [Himujjal/tree-sitter-svelte](https://github.com/Himujjal/tree-sitter-svelte)
|
||||
- Language Server: [sveltejs/language-tools](https://github.com/sveltejs/language-tools)
|
||||
|
||||
<!--
|
||||
TBD: Rewrite Svelte docs so it doesn't begin with a json block assuming you know what inlayHints are.
|
||||
-->
|
||||
|
||||
## Inlay Hints
|
||||
|
||||
Zed sets the following initialization options for inlay Hints:
|
||||
@@ -37,7 +44,7 @@ Use
|
||||
|
||||
```json
|
||||
"lsp": {
|
||||
"$LANGUAGE_SERVER_NAME": {
|
||||
"svelte-language-server": {
|
||||
"initialization_options": {
|
||||
"configuration": {
|
||||
"typescript": {
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# Swift
|
||||
|
||||
Swift language support in Zed is provided by the community-maintained [Swift extension](https://github.com/zed-extensions/swift).
|
||||
Report issues to: [https://github.com/zed-extensions/swift/issues](https://github.com/zed-extensions/swift/issues)
|
||||
|
||||
- Tree Sitter: [alex-pinkus/tree-sitter-swift](https://github.com/alex-pinkus/tree-sitter-swift)
|
||||
- Language Server: [swiftlang/sourcekit-lsp](https://github.com/swiftlang/sourcekit-lsp)
|
||||
|
||||
## Configuration
|
||||
|
||||
You can modify the behavior of SourceKit LSP by creating a `.sourcekit-lsp/config.json` under your home directory or in your project root. See [SourceKit-LSP configuration file](https://github.com/swiftlang/sourcekit-lsp/blob/main/Documentation/Configuration%20File.md) for complete documentation.
|
||||
@@ -0,0 +1,25 @@
|
||||
# TailWind CSS
|
||||
|
||||
Tailwind CSS support is built into Zed.
|
||||
|
||||
- Tree Sitter: []
|
||||
- Language Server: [tailwindlabs/tailwindcss-intellisense](https://github.com/tailwindlabs/tailwindcss-intellisense)
|
||||
|
||||
## Configuration
|
||||
|
||||
<!--
|
||||
TBD: Document Tailwind CSS Configuration
|
||||
-->
|
||||
|
||||
Languages which can be used with Tailwind CSS in Zed
|
||||
|
||||
- [Astro](./astro.md)
|
||||
- [CSS](./css.md)
|
||||
- [ERB](./ruby.md)
|
||||
- [HEEx](./elixir.md#heex)
|
||||
- [HTML](./html.md)
|
||||
- [TypeScript](./typescript.md)
|
||||
- [JavaScript](./javascript.md)
|
||||
- [PHP](./php.md)
|
||||
- [Svelte](./svelte.md)
|
||||
- [Vue](./vue.md)
|
||||
@@ -2,7 +2,14 @@
|
||||
|
||||
Terraform support is available through the [Terraform extension](https://github.com/zed-industries/zed/tree/main/extensions/terraform).
|
||||
|
||||
### Configuration
|
||||
- Tree sitter: [MichaHoffmann/tree-sitter-hcl](https://github.com/MichaHoffmann/tree-sitter-hcl)
|
||||
- Language Server: [hashicorp/terraform-ls](https://github.com/hashicorp/terraform-ls)
|
||||
|
||||
## Configuration
|
||||
|
||||
<!--
|
||||
TBD: Add example using `rootModulePaths` to match upstream example https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md#vs-code
|
||||
-->
|
||||
|
||||
The Terraform language server can be configured in your `settings.json`, e.g.:
|
||||
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
# TOML
|
||||
|
||||
TOML support is available through the [TOML extension](https://github.com/zed-industries/zed/tree/main/extensions/toml).
|
||||
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-toml](https://github.com/tree-sitter/tree-sitter-toml)
|
||||
- Language Server: [tamasfe/taplo](https://github.com/tamasfe/taplo)
|
||||
|
||||
## Configuration
|
||||
|
||||
You can control the behavior of the Taplo TOML language server by adding a `.taplo.toml` file to the root of your project. See the [Taplo Configuration File](https://taplo.tamasfe.dev/configuration/file.html#configuration-file) and [Taplo Formatter Options](https://taplo.tamasfe.dev/configuration/formatter-options.html) documentation for more.
|
||||
|
||||
```toml
|
||||
# .taplo.toml
|
||||
include = ["Cargo.toml", "some_directory/**/*.toml"]
|
||||
# exclude = ["Cargo.toml"]
|
||||
|
||||
[formatting]
|
||||
align_entries = true
|
||||
reorder_keys = true
|
||||
```
|
||||
|
||||
@@ -2,9 +2,16 @@
|
||||
|
||||
TypeScript and TSX support are available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript)
|
||||
- Language Server: [vtsls](https://github.com/yioneko/vtsls)
|
||||
- Alternate Language Server: [typescript-language-server](https://github.com/typescript-language-server/typescript-language-server)
|
||||
- Tree Sitter: [tree-sitter/tree-sitter-typescript](https://github.com/tree-sitter/tree-sitter-typescript)
|
||||
- Language Server: [yioneko/vtsls](https://github.com/yioneko/vtsls)
|
||||
- Alternate Language Server: [typescript-language-server/typescript-language-server](https://github.com/typescript-language-server/typescript-language-server)
|
||||
|
||||
<!--
|
||||
TBD: Add some english prose Typescript documentation instead of starting with JSON inlayHints
|
||||
TBD: Document the difference between Language servers
|
||||
TBD: Add vtsls configuration instructions.
|
||||
TBD: Document TSX support / configuration
|
||||
-->
|
||||
|
||||
## Inlay Hints
|
||||
|
||||
@@ -41,8 +48,9 @@ Use
|
||||
|
||||
to override these settings.
|
||||
|
||||
See https://github.com/typescript-language-server/typescript-language-server?tab=readme-ov-file#inlay-hints-textdocumentinlayhint for more information.
|
||||
See [typescript-language-server inlayhints documentation](https://github.com/typescript-language-server/typescript-language-server?tab=readme-ov-file#inlay-hints-textdocumentinlayhint) for more information.
|
||||
|
||||
## Yarn integration
|
||||
## See also
|
||||
|
||||
See [Yarn documentation](./yarn.md) for a walkthrough of configuring your project to use Yarn.
|
||||
- [Zed Yarn documentation](./yarn.md) for a walkthrough of configuring your project to use Yarn.
|
||||
- [Zed Deno documentation](./deno.md)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# Uiua
|
||||
|
||||
[Uiua](https://www.uiua.org/) is a general purpose, stack-based, array-oriented programming language with a focus on simplicity, beauty, and tacit code.
|
||||
|
||||
Uiua support is available through the [Uiua extension](https://github.com/zed-industries/zed/tree/main/extensions/uiua).
|
||||
|
||||
- Tree Sitter: [shnarazk/tree-sitter-uiua](https://github.com/shnarazk/tree-sitter-uiua)
|
||||
- Language Server: [uiua-lang/uiua](https://github.com/uiua-lang/uiua/)
|
||||
|
||||
@@ -2,4 +2,7 @@
|
||||
|
||||
Vue support is available through the [Vue extension](https://github.com/zed-industries/zed/tree/main/extensions/vue).
|
||||
|
||||
- Tree Sitter: [tree-sitter-grammars/tree-sitter-vue](https://github.com/tree-sitter-grammars/tree-sitter-vue)
|
||||
- Language Server: [vuejs/language-tools/](https://github.com/vuejs/language-tools/)
|
||||
|
||||
> `@vue/language-server` is pinned to v1.8 due to some issues in v2.x [#9846](https://github.com/zed-industries/zed/pull/9846)
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
YAML support is available natively in Zed.
|
||||
|
||||
- Tree Sitter: [tree-sitter-yaml](https://github.com/zed-industries/tree-sitter-yaml)
|
||||
- Language Server: [yaml-language-server](https://github.com/redhat-developer/yaml-language-server)
|
||||
- Tree Sitter: [zed-industries/tree-sitter-yaml](https://github.com/zed-industries/tree-sitter-yaml)
|
||||
- Language Server: [redhat-developer/yaml-language-server](https://github.com/redhat-developer/yaml-language-server)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# Zig
|
||||
|
||||
Zig support is available through the [Zig extension](https://github.com/zed-industries/zed/tree/main/extensions/zig).
|
||||
|
||||
- Tree-Sitter: [tree-sitter-zig](https://github.com/maxxnino/tree-sitter-zig)
|
||||
- Language Server: [zls](https://github.com/zigtools/zls)
|
||||
|
||||
Reference in New Issue
Block a user