Commit log

3a72f21 Implement Editor::single_line

Conrad Irwin created

4bf3a4e Implement movement in `editor2` (#3256)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

c89d6eb modals2 (#3247)

Click to expand commit body
New Modal implementation for gpui2

Release Notes:

N/A

Conrad Irwin created

aa17ada Merge remote-tracking branch 'origin/main' into editor-movement

Antonio Scandurra created

d7e86eb Merge remote-tracking branch 'origin/main' into editor-movement

Antonio Scandurra created

2587616 theme_importer: Format generated themes (#3255)

Click to expand commit body
This PR makes the `theme_importer` format the themes that it generates
automatically.

Release Notes:

- N/A

Marshall Bowers created

2697862 Merge remote-tracking branch 'origin/main' into editor-movement

Antonio Scandurra created

82a0189 WIP

Antonio Scandurra created

64b899c Implement scrolling for `editor2` (#3251)

Click to expand commit body
Release Notes:

- N/A

Antonio Scandurra created

5336c5d Re-introduce a macro for defining actions for ease of use (#3253)

Click to expand commit body
Release Notes:

- N/A

Julia created

0d95410 Rework third-party themes (#3254)

Click to expand commit body
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

Marshall Bowers created

643146d Re-introduce a macro for defining actions for ease of use

Click to expand commit body
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
Co-Authored-By: Conrad Irwin <conrad@zed.dev>

Julia , Piotr Osiewicz , and Conrad Irwin created

a2a28af Add Modals

Click to expand commit body
P.S. this is all completely different now

Co-Authored-By: Marshall <marshall@zed.dev>
Co-Authored-By: Julia <julia@zed.dev>

Conrad Irwin , Marshall , and Julia created

9582a6f chore: Run multitarget build in script/bundle (#3241)

Click to expand commit body
Ignore this PR for now.

This has a chance to speed up a build in case where e.g. we're
single-threaded in aarch64 build; at that point the x86_64 codegen can
take place. Also, MIR can probably be shared between the two
architectures, further reducing build time.

Release Notes:
- N/A

Piotr Osiewicz created

2e43015 gpui event test (#3249)

Click to expand commit body
- Flesh out gpui2 test support
- Smoke test for event handling

Conrad Irwin created

74853ea Rename `ThemeVariant` to `Theme` (#3252)

Click to expand commit body
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

Marshall Bowers created

6f74854 Fix event ordering issues

Conrad Irwin created

b065051 Clip text when scrolling horizontally

Click to expand commit body
Co-Authored-By: Julia <julia@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>

Antonio Scandurra , Julia , and Piotr created

b9e98c1 Re-enable scrolling for `EditorElement`

Click to expand commit body
Co-Authored-By: Julia <julia@zed.dev>
Co-Authored-By: Piotr <piotr@zed.dev>

Antonio Scandurra , Julia , and Piotr created

9cb8512 Start on laying out and painting `editor2` (#3250)

Click to expand commit body
![CleanShot 2023-11-07 at 13 16
28@2x](https://github.com/zed-industries/zed/assets/482957/a136a3d9-b518-4591-8307-e63cfe0e4310)


Release Notes:

- N/A

Antonio Scandurra created

7078c5f Regenerate all themes

Marshall Bowers created

01eac50 Add new `ThemeColors` values to the theme printer

Marshall Bowers created

9f2e6be Fix warning

Antonio Scandurra created

268be71 Add colors for document highlights

Antonio Scandurra created

bdf6e8b Merge remote-tracking branch 'origin/main' into editor2-paint

Antonio Scandurra created

6ae0963 Remove `focused` field and use `FocusHandle` instead in `Editor`

Antonio Scandurra created

a866370 Paint lines

Antonio Scandurra created

a7d52ee Smoke test for event handling

Conrad Irwin created

8e799b6 Flesh out gpui2 test support

Conrad Irwin created

2afeb50 Try notarytool (#3239)

Click to expand commit body
Try to use notarytool to fix build problems

Conrad Irwin created

99a57d9 Add theme importer (#3246)

Click to expand commit body
[[PR Description]]

Thanks @maxdeviant for all the help with this one πŸ«‚ 

- Adds the `theme_importer` crate
- Adds the ability to import themes in VSCode Format.
- Adds the `assets/themes/src` folder with source files for imported
themes
- Adds an initial set of themes: `andromeda`, `ayu`, `dracula`,
`gruvbox`, `night-owl`, `noctis`, `palenight`, `rose-pine`, `solarized`,
`synthwave-84`.

From the README:

## Usage

- `cargo run -p theme_importer` - Import the context of
`assets/themes/src`

---

## Troubleshooting

As the importer generates rust files, you may need to manually do some
cleanup in `registry.rs` and `themes/mod.rs` if you remove themes or
delete the `themes` folder in the theme crate.

---

## Required Structure

To import a theme or series of themes 3 things are required:

- `family.json`: A JSON file containing the theme family metadata and
list of theme variants
- `{theme_name}.json`: One theme json for each theme variant
- `LICENSE`: A license file for the theme family

### `family.json`

#### `name`

The name of the theme family. Avoid special characters.

This will be used for the theme family directory name (lowercased) and
the theme family name in the Zed UI.

Good:

- `Rose Pine`
- `Synthwave 84`
- `Monokai Solarized`

Bad:

- `RosΓ© Pine`
- `Synthwave '84`
- `Monokai (Solarized)`

#### `author`

The author of the theme family. This can be a name or a username.

This will be used for the theme family author in the Zed UI.

#### `themes`

A list of theme variants.

`appearance` can be either `light` or `dark`. This will impact which
default fallback colors are used, and where the theme shows up in the
Zed UI.

### `{theme_name}.json`

Each theme added to the family must have a corresponding JSON file. This
JSON file can be obtained from the VSCode extensions folder (once you
have installed it.) This is usually located at `~/.vscode/extensions`
(on macOS).

You can use `open ~/.vscode/extensions` to open the folder in Finder
directly.

Copy that json file into the theme family directory and tidy up the
filenames as needed.

### `LICENSE`

A LICENSE file is required to import a theme family. Failing to provide
a complete text license will cause it to be skipped when the import is
run.

If the theme only provices a license code (e.g. MIT, Apache 2.0, etc.)
then put that code into the LICENSE file.

If no license is provided, either contact the theme creator or don't add
the theme.

---

### Complete Example:

An example family with multiple variants:

```json
{
  "name": "Ayu",
  // When both name and username are available
  // prefer the `username (name)` format
  "author": "dempfi (Ike Ku)",
  "themes": [
    {
      "name": "Ayu Light",
      "file_name": "ayu-light.json",
      "appearance": "light"
    },
    {
      "name": "Ayu Mirage",
      "file_name": "ayu-mirage.json",
      "appearance": "dark"
    },
    {
      "name": "Ayu Dark",
      "file_name": "ayu-dark.json",
      "appearance": "dark"
    }
  ]
}
```

An example single variant family:

```json
{
  "name": "Andromeda",
  "author": "Eliver Lara (EliverLara)",
  "themes": [
    {
      "name": "Andromeda",
      "file_name": "andromeda.json",
      "appearance": "dark"
    },
    {
      "name": "Andromeda Bordered",
      "file_name": "andromeda-bordered.json",
      "appearance": "dark"
    }
  ]
}
```


Release Notes:

- N/A

Nate Butler created

eac7c3c Update Cargo.toml

Nate Butler created

2931d32 Add a README for `theme_importer`

Nate Butler created

3cb7261 Finish up initial themes

Nate Butler created

62981fc Format themes

Nate Butler created

c47c641 Add additional themes, update theme importer

Nate Butler created

050d727 Use gpui instead of gpui2 consistently (#3245)

Click to expand commit body
Release Notes:

N/A

Conrad Irwin created

496518f Use gpui instead of gpui2 consistenytly

Conrad Irwin created

eb325fb editor2 rendering (#3244)

Click to expand commit body
- Make tab bar visible
- Fix tab text colors
- Ensure panes cover the available space
- Make the close button close
- Fix bug when unsubscribe called after remove
- WIP: start on editor element
- Add hover behaviour to tabs
- Add PointingHand on tabs
- gpui2: Add on_hover events
- Tooltip on tabs
- MOAR TOOLTIPS
- Use an `IconButton` for the tab close button
- Remove unneeded type qualification
- Tooltips in mouse event handler & fix executor timer
- Move more tooltip logic into gpui2 & fix tooltip moving on paint
- Update tooltip code a bit
- Allow multiple subscriptions from one entity handle

Release Notes:

- N/A

Conrad Irwin created

3940e02 Add Nord Theme

Nate Butler created

d224f51 Add interactivity to `Checkbox` component (#3240)

Click to expand commit body
This PR adds interactivity to the `Checkbox` component.

They can now be checked and unchecked by clicking them.

Release Notes:

- N/A

Marshall Bowers created

c59817c Merge branch 'main' into editor2-rendering

Conrad Irwin created

d88dccf Allow multiple subscriptions from one entity handle

Conrad Irwin created

e460f6a WIP

Antonio Scandurra created

3afdeea tooltip2 (#3237)

Click to expand commit body
- Fix executor.timer() in gpui2
- Add support for tooltips 

[[PR Description]]

Release Notes:

- N/A

Conrad Irwin created

80f80df Add Noctis Theme

Nate Butler created

4d88a32 Tidy up a bit better

Conrad Irwin created

254b369 Properly toggle diagnostics (#3243)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/3236 that fixes
a bug introduced in that PR: diagnostics warning toggle stopped working.

Release Notes:

- N/A

Kirill Bulatov created

bfb860c Properly toggle diagnostics

Kirill Bulatov created

f8504c3 Merge branch 'main' into import-theme

Marshall Bowers created