Many editors such as vim and emacs support "modelines", a comment at the beginning of the file that allows the file type to be explicitly specified along with per-file specific settings - The amount of configurations, style and settings mapping cannot be handled in one go, so this opens up a lot of potential improvements. - I left out the possiblity to have "zed" specific modelines for now, but this could be potentially interesting. - Mapping the mode or filetype to zed language names isn't obvious either. We may want to make it configurable. This is my first contribution to zed, be kind. I struggled a bit to find the right place to add those settings. I use a similar approach as done with editorconfig (merge_with_editorconfig). There might be better ways. Closes #4762 Release Notes: - Add basic emacs/vim modeline support. Supersedes #41899, changes: - limit reading to the first and last 1kb - add documentation - more variables handled - add Arc around ModelineSettings to avoid extra cloning - changed the way mode -> language mapping is done, thanks to `modeline_aliases` language config - drop vim ex: support - made "Local Variables:" handling a separate commit, so we can drop it easily - various code style improvements --------- Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
6.1 KiB
6.1 KiB
Summary
Welcome
AI
- Overview
- Agent Panel
- Inline Assistant
- Edit Prediction
- Text Threads
- Rules
- Model Context Protocol
- Configuration
- Subscription
Working with Code
Collaboration
Remote Development
Platform Support
Customization
Language Support
- All Languages
- Configuring Languages
- Ansible
- AsciiDoc
- Astro
- Bash
- Biome
- C
- C++
- C#
- Clojure
- CSS
- Dart
- Deno
- Diff
- Docker
- Elixir
- Elm
- Emmet
- Erlang
- Fish
- GDScript
- Gleam
- GLSL
- Go
- Groovy
- Haskell
- Helm
- HTML
- Java
- JavaScript
- Julia
- JSON
- Jsonnet
- Kotlin
- Lua
- Luau
- Makefile
- Markdown
- Nim
- OCaml
- OpenTofu
- PHP
- PowerShell
- Prisma
- Proto
- PureScript
- Python
- R
- Rego
- ReStructuredText
- Racket
- Roc
- Ruby
- Rust
- Scala
- Scheme
- Shell Script
- SQL
- Svelte
- Swift
- Tailwind CSS
- Terraform
- TOML
- TypeScript
- Uiua
- Vue
- XML
- YAML
- Yara
- Yarn
- Zig
Extensions
- Overview
- Installing Extensions
- Developing Extensions
- Extension Capabilities
- Language Extensions
- Debugger Extensions
- Theme Extensions
- Icon Theme Extensions
- Snippets Extensions
- Slash Command Extensions
- Agent Server Extensions
- MCP Server Extensions