Skip to content

Conversation

@elmarco
Copy link

@elmarco elmarco commented Dec 5, 2025

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
  • made "Local Variables:" handling a separate commit, so we can drop it easily
  • various code style improvements

This will allow to configure vim/emacs modeline support.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Dec 5, 2025
@elmarco elmarco force-pushed the modeline branch 2 times, most recently from 1f32d6f to 6e99a43 Compare December 5, 2025 14:54
elmarco and others added 4 commits December 6, 2025 10:18
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
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.

Release Notes:

- Add basic emacs/vim modeline support.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support modeline comments for per-file settings

1 participant