Commit Graph
54 Commits
Author SHA1 Message Date
Marshall Bowers 63ce7cd407 Improve matching for preprocessor tokens 2023-12-08 11:17:05 -05:00
Marshall Bowers 40a95221ea Improve matching for string tokens 2023-12-08 11:13:28 -05:00
Marshall Bowers a8a5b9524d Improve matching for punctuation tokens 2023-12-08 11:07:52 -05:00
Marshall Bowers 53d77b192a Don't match support.function for function 2023-12-08 10:48:27 -05:00
Marshall Bowers 7a9f764aa0 Add support for theme family-specific syntax mapping overrides (#3551)
This PR adds support for adding a specific set of mappings from Zed
syntax tokens to VS Code scopes for a particular theme family.

We can use this as a fallback when we aren't otherwise able to rely on
the mappings in the theme importer, as sometimes it isn't possible to
make a specific enough matcher that works across all of the themes.

Release Notes:

- N/A
2023-12-07 23:37:49 -05:00
Marshall Bowers efb4ff816a Set tab bar and toolbar backgrounds 2023-12-07 22:32:41 -05:00
Marshall Bowers a88372dc99 Set background colors for title and status bars 2023-12-07 22:24:10 -05:00
Marshall Bowers f272881a6b theme_importer: Improve syntax token matching (#3549)
This PR improves the approach we use to match syntax tokens between Zed
and VS Code in the `theme_importer`.

We now use the list of scopes assigned to each Zed syntax token to rank
the possible candidates in the VS Code and then pick the candidate with
the highest rank.

So far this has proved to provide better colors across the board, but
we'll continue to refine the matching over time.

Release Notes:

- N/A
2023-12-07 22:11:31 -05:00
Marshall Bowers c7e19c0bcd Emit accurate hex colors in generated themes (#3547)
This PR fixes an issues where the hex colors in the generated themes
were not correct.

We're using the [`palette`](https://crates.io/crates/palette) crate to
perform the conversions, as this gives us accurate hex codes that match
the VS Code source themes.

Release Notes:

- N/A
2023-12-07 18:34:03 -05:00
Marshall Bowers fa223e0c6f Pull editor inlay hints from VS Code themes 2023-12-07 15:36:13 -05:00
Marshall Bowers 6a164db700 Rename members in ZedSyntaxToken 2023-12-07 14:35:58 -05:00
Marshall Bowers 8ed04fe798 Remove commented-out code in theme importer 2023-12-07 14:33:37 -05:00
Marshall Bowers cb8c534dac theme_importer: Support importing themes containing comments (#3298)
This PR updates the `theme_importer` with support for parsing theme
files containing comments.

Up until now we've been manually removing comments from the VS Code
theme files.

Release Notes:

- N/A
2023-11-09 19:22:15 -05:00
Nate Butler 024fb4f818 Remove unused import 2023-11-09 16:41:58 -05:00
Nate Butler 4cd37e6e62 Extend theme converter to allow multimatching against vscode colors 2023-11-09 16:38:48 -05:00
Nate ButlerandMarshall Bowers 1c6a960bbf Deal with special case where a VSCode theme doesn't have a foreground color
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 14:53:04 -05:00
Nate ButlerandMarshall Bowers 54157eb99a Finish passing Syntax from VSCode themes to Zed Themes
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 14:41:26 -05:00
Nate ButlerandMarshall Bowers ff053890cf Extend UserSyntax to allow font_style and font_weight to be specified
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 13:46:08 -05:00
Marshall Bowers 978cff8095 Use IndexMap for a deterministic order when importing syntax colors 2023-11-09 13:12:36 -05:00
Marshall Bowers 1f0fccc353 Reorganize theme_importer 2023-11-09 13:07:32 -05:00
Marshall Bowers 34e31fd489 Properly emit UserHighlightStyles 2023-11-09 12:59:20 -05:00
Marshall Bowers ff19a0ca18 Add importing-themes feature flag to theme2 crate
When this feature is set the `themes` module won't be compiled.
This allows us to run the `theme_importer` even when the `themes` module
has compile errors in it.
2023-11-09 12:49:16 -05:00
Marshall Bowers 60eae3e50a Emit unique highlights for each syntax token 2023-11-09 12:46:37 -05:00
Nate ButlerandMarshall Bowers efd1db1b09 WIP – Add Syntax themes to importer
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 12:30:53 -05:00
Nate ButlerandMarshall Bowers 4b5ca3e420 Allow imported themes to refine StatusColors
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>
2023-11-09 11:30:59 -05:00
Nate Butler 7253160b04 Add more vscode colors 2023-11-09 11:01:18 -05:00
Nate Butler bdeb32c34b Extend VSCode theme importer 2023-11-09 01:39:31 -05:00
Marshall Bowers b6766ba39a Replace GitStatusColors with StatusColors (#3268)
This PR removes `GitStatusColors` in favor of just using `StatusColors`
instead.

Release Notes:

- N/A
2023-11-08 11:32:32 -05:00
Nate Butler df84ba4222 Continue documenting theme colors 2023-11-07 14:04:09 -05:00
Nate Butler eb5fe3a3b9 Merge branch 'main' into document-theme 2023-11-07 13:36:08 -05:00
Nate Butler 91f356a2f1 Begin documenting theme colors 2023-11-07 13:36:01 -05:00
Marshall Bowers 25876161f8 theme_importer: Format generated themes (#3255)
This PR makes the `theme_importer` format the themes that it generates
automatically.

Release Notes:

- N/A
2023-11-07 12:45:09 -05:00
Marshall Bowers 0d95410634 Rework third-party themes (#3254)
This PR reworks the way we define our third-party themes to make them
work as overlays on top of a base theme.

We introduce the concept of a `UserThemeFamily` that contains
`UserTheme`s. Rather than being an entire theme definition on their own,
a `UserTheme` just contains optional overrides for the values in a
`Theme`.

When resolving a `UserTheme`, we apply it on top of the base theme. Any
values not overridden in the `UserTheme` will fall back to the `Theme`
defaults.

Right now we are just using `UserTheme` to model third-party themes that
we distribute with the Zed binary. However, this same structure can also
be used to import arbitrary user themes (such as from a theme registry,
or even a theme blob from the settings file).

Release Notes:

- N/A
2023-11-07 11:40:07 -05:00
Marshall Bowers 74853ea55f Rename ThemeVariant to Theme (#3252)
This PR renames the `ThemeVariant` type to `Theme`.

This better reflects its purpose, as well as matches the same name as we
had before, which should make porting crates slightly easier.

Release Notes:

- N/A
2023-11-07 10:41:36 -05:00
Marshall Bowers 01eac50fc8 Add new ThemeColors values to the theme printer 2023-11-07 08:59:37 -05:00
Antonio Scandurra bdf6e8bcc7 Merge remote-tracking branch 'origin/main' into editor2-paint 2023-11-07 13:09:48 +01:00
Nate Butler eac7c3cea9 Update Cargo.toml 2023-11-06 16:02:21 -05:00
Nate Butler 2931d32499 Add a README for theme_importer 2023-11-06 16:00:57 -05:00
Nate Butler 3cb72610b3 Finish up initial themes 2023-11-06 15:24:36 -05:00
Nate Butler c47c64184c Add additional themes, update theme importer 2023-11-06 14:54:21 -05:00
Nate Butler 80f80df5cf Add Noctis Theme 2023-11-06 12:43:10 -05:00
Nate Butler 8192a52bd0 Skip .DS_Store files when scanning themes folder 2023-11-06 11:03:17 -05:00
Nate Butler 5c24c931c5 Remove unused file 2023-11-06 10:57:25 -05:00
Marshall Bowers acc36e6dab Update emitted module import 2023-11-03 10:58:06 -04:00
Marshall Bowers 293fbe4c75 Account for colors in VS Code theme being optional 2023-11-03 10:54:12 -04:00
Nate Butler 383d9129f4 [Not compiling] Continue working on VSCode import 2023-11-02 21:49:26 -04:00
Nate Butler 0d0b6db24f Update theme importer 2023-11-02 20:15:51 -04:00
Nate Butler 2b0c959137 Add terminal colors to ThemeColors, add _background to some color names. 2023-11-02 19:53:52 -04:00
Marshall Bowers 95a0827517 Clean up unused code 2023-11-02 19:20:21 -04:00
Marshall Bowers d1636bf16b Finish up theme printer 2023-11-02 19:14:51 -04:00