ZIm/extensions
Finn Evers efaf358876
lua: Update keyword operator highlighting (#26091)
Resolves #26032 

This PR changes the highlighting for `and`, `not` and `or` in Lua from
`operator` to `keyword.operator`. [VS Code also highlights these as
keyword
operators](1483add845/Syntaxes/Lua.plist (L277-L279))
and Zed does this for other languages as well, like
[Python](813e207514/crates/languages/src/python/highlights.scm (L221-L229))
or
[Zig](813e207514/extensions/zig/languages/zig/highlights.scm (L145-L149)).

Additionally, in 813e207514 I removed
duplicate matches for existing keywords to improve readability and align
them to how keywords are generally matched across languages (see
[Rust](813e207514/crates/languages/src/rust/highlights.scm (L79-L119))
and
[Typescript](813e207514/crates/languages/src/typescript/highlights.scm (L210-L269))
for example).
Whilst contributing to the majority of the diff, this does not change
any existing highlights.

| Before | After | 
| --- | --- |
| <img width="309" alt="old"
src="https://github.com/user-attachments/assets/7790817e-4a0d-442b-b176-9a84bcc6f3c4"
/> | <img width="309" alt="PR"
src="https://github.com/user-attachments/assets/34a57962-938a-4465-9406-288f5c456aa3"
/> |


Release Notes:

- N/A

---------

Co-authored-by: Peter Tripp <peter@zed.dev>
2025-03-06 18:01:13 -05:00
..
emmet Sort and dedupe .gitignore files (#24491) 2025-02-08 02:17:17 +00:00
glsl chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
haskell haskell: Bump to v0.1.3 (#23541) 2025-01-23 10:30:47 -05:00
html html: Add injections for style attributes and event handler attributes (#23659) 2025-03-04 09:12:25 +02:00
lua lua: Update keyword operator highlighting (#26091) 2025-03-06 18:01:13 -05:00
perplexity chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
proto chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
purescript purescript: Bump to v0.1.0 (#23544) 2025-01-23 10:44:22 -05:00
ruff chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
slash-commands-example slash_commands_example: Improve setup instructions in README (#26217) 2025-03-06 10:56:17 -05:00
snippets chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
terraform terraform: Bump to v0.1.2 (#23546) 2025-01-23 11:34:40 -05:00
test-extension extension: Add capabilities for the process API (#26224) 2025-03-06 11:55:00 -05:00
toml toml: Bump to v0.1.3 (#25278) 2025-02-20 20:02:56 +00:00
uiua chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
zig zig: Bump to v0.3.3 (#23547) 2025-01-23 10:54:50 -05:00
.gitignore Provide wasm extensions with APIs needed for using pre-installed LSP binaries (#9085) 2024-03-08 17:18:06 -05:00
EXTRACTION.md Improve extension extraction documentation (#24590) 2025-02-10 22:11:23 -05:00
README.md Document extension bump process (#18872) 2024-10-08 16:13:56 -04:00

Zed Extensions

This directory contains extensions for Zed that are largely maintained by the Zed team. They currently live in the Zed repository for ease of maintenance.

If you are looking for the Zed extension registry, see the zed-industries/extensions repo.

Structure

Currently, Zed includes support for a number of languages without requiring installing an extension. Those languages can be found under crates/languages/src.

Support for all other languages is done via extensions. This directory (extensions/) contains a number of officially maintained extensions. These extensions use the same zed_extension_api available to all Zed Extensions for providing language servers, tree-sitter grammars and tree-sitter queries.

Dev Extensions

See the docs for Developing an Extension Locally for how to work with one of these extensions.

Updating

Note

This update process is usually handled by Zed staff. Community contributors should just submit a PR (step 1) and we'll take it from there.

The process for updating an extension in this directory has three parts.

  1. Create a PR with your changes. (Merge it)

  2. Bump the extension version in:

    • extensions/{language_name}/extension.toml
    • extensions/{language_name}/Cargo.toml
    • Cargo.lock

    You can do this manually, or with a script:

    # Output the current version for a given language
    ./script/language-extension-version <langname>
    
    # Update the version in `extension.toml` and `Cargo.toml` and trigger a `cargo check`
    ./script/language-extension-version <langname> <new_version>
    

    Commit your changes to a branch, push a PR and merge it.

  3. Open a PR to zed-industries/extensions repo that updates the extension in question

Edit extensions.toml in the extensions repo to reflect the new version you set above and update the submodule latest Zed commit.

# Go into your clone of the extensions repo
cd ../extensions

# Update
git checkout main
git pull
just init-submodule extensions/zed

# Update the Zed submodule
cd extensions/zed
git checkout main
git pull
cd -
git add extensions.toml extensions/zed