Commit graph

9881 commits

Author SHA1 Message Date
Nate Butler
a75e9faa83
Add foundation for exporting tokens from our color schemes (#2588)
We removed our Figma Tokens/Tokens Studio export a while back when we
moved to the theme to ColorSchemes. I'd like to get back to exporting
these so we can be working from up to date themes in Figma, especially
with the large amount of UI design work we'll be doing in the next few
weeks on channels.

This PR adds some basic plumbing to start working through the
theme/colorScheme and export the parts as tokens.

I also discovered that Tokens Studio now publishes their types, so we
can use them directly rather than writing our own:
https://github.com/tokens-studio/types

Pulled those in and started connecting them as well.

Running `npm run build-tokens` will export the tokens for each theme to
`styles/target/tokens`.

Currently only a few element's tokens are exported, will expand this
further as time permits.

Release Notes:

- N/A (No public facing changes)
2023-06-08 00:53:16 -04:00
Nate Butler
c8a9d73ea6 Add foundation for exporting tokens 2023-06-08 00:37:00 -04:00
Nate Butler
d4192fc3e9
Organize misc files into theme, themes and styleTrees (#2587)
We've accumulated a number of miscellaneous folders in the styles
folder. Simplifying these down to `theme`, `themes` and `styleTrees`.

Release Notes:

- N/A (No public facing changes)
2023-06-07 22:47:48 -04:00
Mikayla Maki
8216d26a7a
Switch to attaching git statuses to their associated entries (#2571)
This rewrites and simplifies the git status system by attaching the git
status to each individual entry. This also improves the git testing
infrastructure to cover more cases and be more accurate to how file
events actually occur. This also fixes several other bugs in the worktree and the buffer, and stops any randomly generated actions from happening inside a `.git` folder. Hopefully, we can undo this change soon once our randomized testing is more robust.

Release Notes:

- Will require a DB migration

TODO:
- [x] Pass randomized tests
- [x] Get ready for merging
2023-06-07 17:11:43 -07:00
Mikayla Maki
fc1f8c5657
Fixed ci 2023-06-07 16:58:55 -07:00
Mikayla Maki
8ca1a7d43d
add scan_complete await 2023-06-07 16:51:54 -07:00
Max Brunsfeld
66f215cd13 Restructure LSP log view to show log messages in addition to RPC trace 2023-06-07 16:51:09 -07:00
Mikayla Maki
9e9d8e3a7b
add mroe dbg 2023-06-07 16:50:15 -07:00
Mikayla Maki
9d58c4526d
Fix warning 2023-06-07 16:45:36 -07:00
Mikayla Maki
5f143f689f
Attempting to debug on ci... 2023-06-07 16:44:13 -07:00
Mikayla Maki
572d40381a
Add track caller 2023-06-07 16:39:10 -07:00
Mikayla Maki
2c5e83bf72
Fixed a bug where buffer saved clocks would desynchronize in rare execution paths
co-authored-by: Max <max@zed.dev>
2023-06-07 16:10:45 -07:00
Max Brunsfeld
78f9642ac2 Emit project event when a language server sends a logMessage notification 2023-06-07 14:46:08 -07:00
Mikayla Maki
cd63ec2c7f
fmt 2023-06-07 14:20:01 -07:00
Mikayla Maki
03a96d2793
Feature gate import 2023-06-07 14:15:20 -07:00
Mikayla Maki
0ac7a3bc21
fmt 2023-06-07 14:13:57 -07:00
Mikayla Maki
28ba27c9c5
Merge branch 'main' into stream-git-statuses 2023-06-07 14:12:58 -07:00
Mikayla Maki
34e134fafb
Fix several randomized test failures with the new git status implementation 2023-06-07 14:10:17 -07:00
Max Brunsfeld
351e4863cd
Fix some issues found when testing Elixir-LS (#2583)
Closes
https://linear.app/zed-industries/issue/Z-2209/popovers-dont-always-have-syntax-highlighted-code
Closes
https://linear.app/zed-industries/issue/Z-2206/highlight-syntax-in-hover-docs

* Fix a ton of errors in our logs due to us not recognizing that
`elixir-ls` does not support code actions.
* Syntax-highlight elixir code blocks in hover popovers
2023-06-07 12:21:48 -07:00
Max Brunsfeld
11ab1a8cc6 collab 0.13.1 2023-06-07 10:54:27 -07:00
Max Brunsfeld
be8d268eb9 Bump tree-sitter-yaml submodule to avoid broken child submodule 2023-06-07 10:50:03 -07:00
Max Brunsfeld
72372ddf0e Highlight hover code blocks as LSP's own language by default
The elixir LSP does not include a language name on its elixir code blocks.
2023-06-07 10:01:19 -07:00
Nate Butler
86ec43c908
Update createColorScheme to accept ThemeConfig (#2557)
- Added ThemeConfig
- Updated themes use ThemeConfig
- Refactoring
- Fixed TypeScript errors

Release Notes:
- N/A (No public facing changes)
2023-06-07 12:57:34 -04:00
Nate Butler
29de420b59 Organize misc files into theme, themes and styleTrees 2023-06-07 12:50:37 -04:00
Nate Butler
6269cec4f1 Minor updates 2023-06-07 12:40:49 -04:00
Max Brunsfeld
6067575e38 collab 0.13.0 2023-06-07 09:29:58 -07:00
Max Brunsfeld
f56d642b88 Disable scheduled randomized test workflow for now 2023-06-07 09:20:25 -07:00
Joseph Lyons
8882b22c9c v0.91.x dev 2023-06-07 11:57:41 -04:00
Piotr Osiewicz
e94129446d
Z 1618/extend comments (#2585)
Fixes Z-1618. In the current state, this only works for line comments
such as `//` (and whatever's set in `{language}.toml` as a
line_comment).

Release Notes:

- Comments are now extended on new line.
2023-06-07 17:37:02 +02:00
Sergii Onufriienko
b1f009cdce
Merge branch 'main' into sergey/z-1768-update-createcolorscheme-to-accept-a-theme-in-the 2023-06-07 16:12:13 +01:00
Sergey Onufrienko
4c405e65a3
feat: use theme index to build licenses 2023-06-07 16:10:16 +01:00
Sergey Onufrienko
0ad76ac92c
feat: use theme index to build themes 2023-06-07 16:10:02 +01:00
Sergey Onufrienko
02c1efc60d
feat: re-export chroma 2023-06-07 16:09:24 +01:00
Sergey Onufrienko
f5d1f314e0
feat: add themes index 2023-06-07 16:08:58 +01:00
Sergey Onufrienko
d2b8501347
feat: change themes to return ThemeConfig 2023-06-07 16:08:48 +01:00
Antonio Scandurra
d5441ba386
Introduce an Assistant Panel (#2584)
This pull request introduces a new assistant panel to Zed that lets
users interact with OpenAI using their API key:

![CleanShot 2023-06-07 at 09 39
10@2x](https://github.com/zed-industries/zed/assets/482957/ba2a5830-9aeb-4c45-a182-a44d6a72675f)

After setting the key up, it will be saved to the keychain and
automatically loaded the next time the assistant panel is opened. The
key can be reset using `assistant: reset key`.

![CleanShot 2023-06-07 at 09 39
23@2x](https://github.com/zed-industries/zed/assets/482957/a6808bb0-0098-45ae-a2e3-f4d88472e626)

From there, users can type messages in a multi-buffer and hit
`cmd-enter` (`assistant: assist`) to stream assistant responses using
the OpenAI API. Responses can be canceled by hitting `escape`.

![CleanShot 2023-06-07 at 09 40
16@2x](https://github.com/zed-industries/zed/assets/482957/749779da-850e-4ad5-af04-74a3ca39f7ad)

Users can quote a selection from the active editor by hitting `cmd->`
(`assistant: quote selection`), which will embed the selected piece of
text in a Markdown fenced code block. Conversations with the assistant
are ephemeral at the moment, but can be easily copy/pasted:

![CleanShot 2023-06-07 at 09 50
33@2x](https://github.com/zed-industries/zed/assets/482957/b3386c10-4c51-4419-a0e0-517112ef6521)

Release Notes:

- Added a new assistant panel feature that enables interacting with
OpenAI using an API key. This replaces the previous experimental `ai:
assist` command that would work on any buffer. The experience is similar
to the one offered by ChatGPT with the added ability to edit, delete or
enhance previous messages. When hitting `cmd-enter`, the assistant will
start streaming responses from OpenAI. A response stream can be canceled
using `escape`. Moreover, the active editor's selection can be quoted in
the assistant panel using `cmd->`, which will automatically embed the
selected piece of text in a Markdown fenced code block.
2023-06-07 16:05:57 +02:00
Antonio Scandurra
d3e0d38bef Fix assistant panel tests 2023-06-07 15:24:08 +02:00
Antonio Scandurra
d26cc2c897 Maintain scroll bottom when streaming assistant responses 2023-06-07 15:01:50 +02:00
Antonio Scandurra
43500dbf60 Fix zed tests 2023-06-07 10:02:35 +02:00
Antonio Scandurra
0dae8f2dd8 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-07 09:34:16 +02:00
Antonio Scandurra
a6feaf1300 Allow search assistant editors 2023-06-07 09:24:18 +02:00
Joseph Lyons
c93b6cc599 Tweak comment wording 2023-06-07 00:23:58 -04:00
Max Brunsfeld
e8479f23f9 Improve log message on invalid LSP message from server's stdout 2023-06-06 17:13:59 -07:00
Max Brunsfeld
6f2726524e Remove stray println 2023-06-06 17:13:59 -07:00
Max Brunsfeld
fccbac4887 Handle LSP codeActions capability set to false 2023-06-06 17:13:59 -07:00
Max Brunsfeld
0d90c6d02e
Improve syntax highlighting and outline view for Elixir (#2582)
Fixes
https://linear.app/zed-industries/issue/Z-2208/outline-view-doesnt-differentiate-between-overloaded-functions
Fixes
https://linear.app/zed-industries/issue/Z-2205/elixir-syntax-highlighting-not-working-properly-for-doc-attributes-and

This PR improves syntax highlighting and outline view in Elixir. It's
common to overload elixir functions, with many different versions of the
function for different patterns of parameters, so I updated the outline
view to show functions' parameters in Elixir. But if we showed functions
the same way in the *breadcrumbs*, it would take up too much space.

So I added a new capture in languages' `outline` queries called
`@context.extra`, which is included in the outline view, but not in
breadcrumbs.

Release Notes:

- Improved syntax highlighting of doc attributes and special macros in
Elixir
- Updated the outline view in Elixir to display function parameters, to
allow differentiating between function overloads.
2023-06-06 16:34:33 -07:00
Max Brunsfeld
4b9a3c66e6 Show function parameters in elixir outline view
Introduce a new capture in the outline query called 'context.extra', which
causes text to appear in the outline, but not in the breadcrumbs.
2023-06-06 16:27:05 -07:00
Max Brunsfeld
7aeaa84657 Fix the order of some patterns in elixir highlight query 2023-06-06 16:06:16 -07:00
Max Brunsfeld
8dc679e74e Upgrade tree-sitter-elixir 2023-06-06 16:06:16 -07:00
Max Brunsfeld
6737ee1495 Avoid panic when failing to load a language's queries 2023-06-06 16:06:16 -07:00