Feature Request: Theme Customizations

I’d like to humbly request a way for users to customize a theme with additional scopes or by overriding theme styles. The current scheme where themes are locked to their extension definitions isn’t ideal for users or extension developers.

As a user, I’d like to make a tiny modification to the theme I use so scopes like keyword.modifier use the italic font. This requires forking the theme I use and either distributing a copycat or managing a sideloaded extension.

As an extension developer defining syntax scopes, I’ve had to degrade the semantics of a few scopes so that their syntax highlighting reflects that they are different entities. For example, I make doc comments appear different than regular comments by scoping them under string.docstring instead of comment. I give macros a markup scope so they appear different from functions. It’d be nice if I could instead have a section in my extension preferences where some recommended scopes could have their syntax highlighting customized.

I don’t love the Sublime/VS Code approach of editing a JSON document for customizations, but it’s preferable to not being able to make minor adjustments to my theme. Anyone else have ideas on how to resolve these issues? Yes, I did see this thread.

4 Likes

We currently have open feature requests for these types of behaviors, and I will count your votes and feedback!

2 Likes

In regards to the syntax scopes aspect I described above, one of my extension users pointed out the behavior of the current LSP spec (3.16) in providing extra syntax highlighting, specifically the Semantic Tokens feature. You may very well be aware of this LSP feature, but it is something to consider as you make plans to improve theming and/or language server support.

I was just trying to figure out if this was possible and stumbled onto this thread, so I guess not. I would also really like to be able to tweak/override themes to make some fit a little better!

I’ve been using Nova a bit more, and this was starting to really annoy me – so I made an extension for it. If anyone is still interested, I call it Theme Mangler.

It’s an extremely inelegant solution, to be sure – Panic could do far better. If anyone has ideas for improvements, please open an issue!

1 Like