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:
Peter Tripp
2024-08-09 13:37:54 -04:00
committed by GitHub
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
100 changed files with 2564 additions and 457 deletions
+6
View File
@@ -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)
+7
View File
@@ -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
-->
+24
View File
@@ -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.
+35
View File
@@ -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.
+6 -2
View File
@@ -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)
+10
View File
@@ -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
-->
+6 -2
View File
@@ -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
-->
+5
View File
@@ -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:
+15 -2
View File
@@ -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)
+8
View File
@@ -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
-->
+12
View File
@@ -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)
+16
View File
@@ -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)
+17 -3
View File
@@ -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)
+8 -1
View File
@@ -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).
+9
View File
@@ -0,0 +1,9 @@
# Emmet
[Emmet](https://emmet.io/) is a web-developers 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
-->
+8
View File
@@ -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)
+6
View File
@@ -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)
+29
View File
@@ -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.
+9 -1
View File
@@ -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)
+6
View File
@@ -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)
+10 -9
View File
@@ -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)
+7
View File
@@ -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)
+10
View File
@@ -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)
-->
+9
View File
@@ -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)
+6
View File
@@ -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)
+24 -13
View File
@@ -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)
+13 -2
View File
@@ -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
-->
+12
View File
@@ -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
-->
+34
View File
@@ -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).
+27
View File
@@ -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"
]
}
```
+41
View File
@@ -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": ["-"]
}
}
}
}
```
+6
View File
@@ -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)
+28 -1
View File
@@ -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"
}
},
```
+24
View File
@@ -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": ["-"]
}
}
}
}
```
+3
View File
@@ -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)
+15
View File
@@ -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)
+7
View File
@@ -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
-->
+2 -3
View File
@@ -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)
+3
View File
@@ -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)
+16 -34
View File
@@ -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`.
-->
+7
View File
@@ -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
-->
+4
View File
@@ -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.
+14
View File
@@ -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.
+7
View File
@@ -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
View File
@@ -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
+48 -5
View File
@@ -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.
+29
View File
@@ -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.
-->
+2
View File
@@ -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)
+8 -1
View File
@@ -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": {
+11
View File
@@ -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.
+25
View File
@@ -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)
+8 -1
View File
@@ -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.:
+17
View File
@@ -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
```
+14 -6
View File
@@ -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)
+5
View File
@@ -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/)
+3
View File
@@ -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 -2
View File
@@ -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)
+3
View File
@@ -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)