zed/assets/settings
Marc-Andre Lureau 58fec75396
Add vim/emacs modeline support (#49267)
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>
2026-03-25 03:15:51 +00:00
..
default.json Add vim/emacs modeline support (#49267) 2026-03-25 03:15:51 +00:00
default_semantic_token_rules.json languages: Improve semantic token highlighting for parameters and Python (#52130) 2026-03-23 16:10:55 +00:00
initial_debug_tasks.json Add trailing commas to all asset jsonc files following #43854 (#44891) 2025-12-15 15:09:52 +00:00
initial_local_debug_tasks.json Simplify debug launcher UI (#31928) 2025-06-02 21:24:08 +00:00
initial_local_settings.json Fix broken link in initial settings (#15119) 2024-07-25 08:25:27 -04:00
initial_server_settings.json Add trailing commas to all asset jsonc files following #43854 (#44891) 2025-12-15 15:09:52 +00:00
initial_tasks.json Save edited buffers before running a task (#48861) 2026-03-19 08:42:28 +00:00
initial_user_settings.json Add trailing commas to all asset jsonc files following #43854 (#44891) 2025-12-15 15:09:52 +00:00