Commit Graph
100 Commits
Author SHA1 Message Date
Kirill Bulatov 4684440202 Fix focus issues with gpui2 docks (#3606)
* Fixed dock toggling not focusing the terminal element
* Fixed loosing focus on dock close (e.g. cmd-d on the last terminal in
the dock)
* Removed element stateless focus API since it would not work when the
element is not rendered, update all API usages to the stateful one via
`gpui::Subscription`

Release Notes:

- N/A
2023-12-12 17:26:39 +02:00
Kirill BulatovandAntonio 0140bb862e Fix the tests
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 17:19:12 +02:00
Kirill Bulatov ca8e8d1065 Finish removing all dangerous focus APIs 2023-12-12 16:11:14 +02:00
Kirill BulatovandAntonio 2cde1a2e15 Re-focus window on workspace on corresponding window blur
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:36:20 +02:00
Kirill Bulatov 717b2885f8 Attempt to remove the dangeous element focus API 2023-12-12 15:07:27 +02:00
Kirill BulatovandAntonio 137104e00e Fix dock panels not focusing their contents on toggle
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:07:27 +02:00
Kirill Bulatov 706dd8246e Improve project panel autoreveal ergonomics (#3604)
Part of
https://linear.app/zed-industries/issue/Z-1386/add-equivalent-setting-to-vscodes-auto-reveal-exclude
Deals with https://github.com/zed-industries/community/issues/800

* add a `project_panel::auto_reveal_entries` config entry to allow
disabling auto reveal in project panel (auto reveal is enabled by
default)
* add a `pane::RevealInProjectPanel` action (and a pane tab context menu
entry) to manually reveal any file entry
* stop auto revealing gitignored directories at all

We can add the auto reveal exclude globs later, if needed, but let's try
to keep the config simpler and start with a more minimalist approach.

Release Notes:

- Improved project panel auto reveal mechanics: gitignored files are not
auto revealed anymore; a `auto_reveal_entries = true` config option for
`project_panel` is added; a `pane::RevealInProjectPanel` action and a
corresponding buffer tab context menu were added
2023-12-12 14:37:30 +02:00
Kirill Bulatov d9b0828beb Port to gpui2 2023-12-12 13:50:23 +02:00
Kirill Bulatov 721d7615c3 Add tests 2023-12-12 13:34:46 +02:00
Kirill Bulatov 27d6432c84 Rework the way project panel auto reveals entries
* gitignored entries are never auto revealed
* `project_panel::auto_reveal_entries = true` settings entry was added,
setting it to `false` will disable the auto reveal
* `pane::RevealInProjectPanel` action was added that activates the project panel and reveals the entry it got triggered on (including the gitignored ones)
2023-12-12 11:38:51 +02:00
Kirill Bulatov cdf7c10b57 Add an action to expand Rust macros with rust-analyzer (#3580)
Deals with https://github.com/zed-industries/community/issues/1282

If rust-analyzer responds with non-empty message, opens a new singleton
multibuffer with the expansion result:

![image](https://github.com/zed-industries/zed/assets/2690773/5f790ffd-1ad8-4f02-a60d-49ee0756362d)

In gpui2, only editors with excerpts containing Rust languages get the
action, in gpui1 every editor (even the *.ts one) has this action
enabled but it does nothing.

Release Notes:

- Added an `editor::ExpandMacroRecursively` command to expand Rust
macros with rust-analyzer.
2023-12-11 13:11:59 +02:00
Kirill Bulatov da44b51a53 Always open new project search view workspace::NewSearch action 2023-12-11 13:11:07 +02:00
Kirill Bulatov 55374e8ac0 Port to gpui1 2023-12-11 12:28:22 +02:00
Kirill Bulatov 3694265b6b Finalize the command 2023-12-11 12:28:22 +02:00
Kirill Bulatov e3fc810b3d Draft an expand macro recusively command 2023-12-11 12:28:22 +02:00
Kirill Bulatov f67d4cea31 Add more harness around nightly builds (#3562)
Part of
https://zed-industries.slack.com/archives/C05SJGT0M33/p1702039430077589
The nightly job managed to pass successfully (build & upload nightly),
logged a proper commit sha that got into latest_sha on the nightly
bucket — but Zed version in about was wrong.

* Log Zed build sha in release builds to ensure CI uses the right one
* make curl to return non-zero code for non-200 nightly file uploads

Release Notes:

- N/A
2023-12-08 21:47:02 +02:00
Kirill Bulatov 0dc02b8354 Log Zed build sha in release builds.
Also ensure that curl commands for nightly uploads return 200 (fail otherwise).
2023-12-08 21:38:28 +02:00
Kirill Bulatov b9a904e552 Add initial OS file drag and drop support 2023-12-07 16:08:48 +02:00
Kirill Bulatov 6c653b9c05 Activate Zed window on external file drop 2023-12-07 16:08:47 +02:00
Kirill Bulatov b692b4c9c2 Do not expand terminal selections on active drag 2023-12-07 16:08:47 +02:00
Kirill Bulatov f829120f51 Convert OS file drag and drop enter event into a mouse move, not mouse click 2023-12-07 16:08:47 +02:00
Kirill Bulatov 2a82dff2fe Suppress unused variable r-a warning from action derive procmacro 2023-12-07 16:08:47 +02:00
Kirill Bulatov 646b74e0a7 Move actions to namespaces used in zed1 keybinding settings 2023-12-07 16:08:47 +02:00
Kirill Bulatov 75324abbb5 Do not panic when focusing empty dock 2023-12-07 16:08:47 +02:00
Kirill Bulatov ebddb612c8 Do not run the same workflow concurrently on non-main branches (#3518)
<img width="1376" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/681cca85-e1b9-4a99-8363-60c931ba1393">

For any push (or force-push) into a branch, a separate CI workflow is
run.
This is rather worker-consuming, esp. given the fact that GitHub will
wait for the last job to update PR's status.
So cancel every old job for the same branch if it's not `main`.
CI run on `main` might catch a regression brought in by specific PR
merged, so run CI on every commit due to that.


Release Notes:

- N/A
2023-12-06 22:35:02 +02:00
Kirill Bulatov 62c41e226b Use distinct version for zed2, append git hash to its nightly version (#3507)
Current panic reports are now harder to tell apart by the following
criteria:
* nightly or preview or stable
* zed2 or zed1
 

![image](https://github.com/zed-industries/zed/assets/2690773/d12c8272-9f78-403c-ba49-e5f05982c0f5)

Current PR adds uses a different version for zed2 (2.0.0, selected
relatively arbitrary as zed2 is nothing officially released now) and
adds a `-nightly` suffix to the version number of the nightly bundle.

Release Notes:

- N/A
2023-12-06 22:23:12 +02:00
Kirill Bulatov b94c335605 Do not run the same workflow concurrently on non-main branches 2023-12-06 22:19:48 +02:00
Kirill Bulatov 5644815c4c Use a better name for zed2 inlay style field 2023-12-06 22:06:30 +02:00
Kirill Bulatov 9e1d797445 Use distinct version for zed2, append git hash to its nightly version 2023-12-06 22:04:45 +02:00
Kirill Bulatov ec798e6574 Pass proper theme colors for inlays and suggestions (#3517)
<img width="1728" alt="image"
src="https://github.com/zed-industries/zed/assets/2690773/f6f1e24f-71fe-4a2e-9bcf-9e98861c0da4">


![image](https://github.com/zed-industries/zed/assets/2690773/8434d8a1-ee7e-49c1-9e88-362363225d96)

Now inlays are visible in all zed2 themes, but 
* always have a blue color which is the same as some theme colors
* not other hint-related style changes like font width, background, etc.
seem to exist in the theme, ergo not propagated.

In general though, people want those style changes applied to their
hints, so we might want to do something about it later.
I've left a `// todo!("what about the rest of the highlight style parts
for inlays and suggestions?")` in the corresponding places for that.

Release Notes:

- N/A
2023-12-06 21:54:41 +02:00
Kirill Bulatov f76e1cfd91 Pass proper theme colors for inlays and suggestions 2023-12-06 21:48:39 +02:00
Kirill Bulatov 3c1bf0260c Disable bundling for main commits (#3508)
(in the first commit, this PR autoformats both yaml files with Zed's
default prettier, to be able to edit those in prettier from now on)

Bundling is a relatively long procedure, and now we have nightly builds
for zed2 (with their own lifecycle, CI file and tag for triggering it
from non-main branch).

Hence, bundling zed1 and/or zed2 by default looks wasteful and
unnecessary, disable them by default.
There's still a `run-build-dmg` label that enables bundling for any PR
needed, and a `startsWith(github.ref, 'refs/tags/v')` check in the CI
run to keep the releases working.

Release Notes:

- N/A
2023-12-06 17:08:48 +02:00
Kirill Bulatov a58f393458 Do not bundle Zed on main branch commits 2023-12-06 16:58:49 +02:00
Kirill Bulatov 0ef97edd6e Format the CI file with Zed's default prettier 2023-12-06 16:58:18 +02:00
Kirill Bulatov c2d3e74ffb Allow opening files without project entries (#3497)
Addresses
https://zed-industries.slack.com/archives/C04S5TU0RSN/p1701428432093989
by allowing to open a buffer without a corresponding project `Entry`.
This means that now, we can remove the "fake worktree" requirement and
open files without creating any (the PR does not do this step yet, but
prepares the code for it).

In addition, the PR fixes glob matching code and adds more tests on
excluded files queries.

Release Notes:

- Fixed search query inclusions/exclusions working incorrectly
- Fixed excluded files being opened via CLI and failing or spoiling
project tree view
2023-12-05 16:33:30 +02:00
Kirill Bulatov 16b5d4b35c Port to gpui2 2023-12-05 16:13:39 +02:00
Kirill Bulatov e5616bce98 Fix the test 2023-12-05 12:45:44 +02:00
Kirill Bulatov 92fbdb429c Add project search in gitignored test 2023-12-05 12:45:44 +02:00
Kirill Bulatov b43dc480a9 Integration tests for excluded files 2023-12-05 12:45:44 +02:00
Kirill Bulatov 2c2c14a360 Fix the regex matcher 2023-12-05 12:45:36 +02:00
Kirill Bulatov f0ca7141b8 Ignore excluded files on worktree entry refresh 2023-12-05 12:30:29 +02:00
Kirill Bulatov 1f6c69c7dc Allow opening buffers without a project entry 2023-12-05 12:30:29 +02:00
Kirill Bulatov 45230dcaf3 Log project path that was no open due to no project entry found 2023-12-04 12:45:57 +02:00
Kirill Bulatov b64fe04803 Trim file_finder input queries (#3459)
Addresses a small bit of influencer's feedback

Release Notes:

- Fixed file finder query's whitespaces not being trimmed
2023-11-30 16:22:14 +02:00
Kirill Bulatov cdae8ebd06 Exclude gitignored files' diagnostics from project panel and its indicator. (#3458)
Based on influencer's feedback.

The diagnostics are collected and available still, since that might
become a settings/UI toggle later.
Also, buffer diagnostics are still updated for gitignored files.

Release Notes:

- Excluded gitignored files' diagnostics from project panel and its
indicator.
2023-11-30 16:06:16 +02:00
Kirill Bulatov 1b39916438 Trim file_finder input queries 2023-11-30 16:05:45 +02:00
Kirill Bulatov 091d93533d Port to gpui2 2023-11-30 15:46:35 +02:00
Kirill Bulatov 69bfd47cf9 Exclude gitignored files' diagnostics from project panel and its indicator.
The diagnostics are collected and available still, since that might become a settings/UI toggle later.
Also, buffer diagnostics are still updated for gitignored files.
2023-11-30 15:46:30 +02:00
Kirill Bulatov 7b76db4b50 Fix TypeScript diagnostics (#3457)
Deals with https://github.com/zed-industries/community/issues/2124

* sends more ClientCapabilities LSP data, diagnostics capabilities in
particular: those are now required by typescript-language-server LSP to
start publishing diagnostics
* sends more parameters during eslint workspace initialization, so it is
able to correctly look up project's typescript config
Presumably, it's not enough and some convoluted project set ups may
break still, but let's wait for examples and feedback.

Release Notes:

- Fixed typescript-language-server diagnostics not appearing for newer
server versions; fixed eslint diagnostics using wrong directory for
typescript config lookup
2023-11-30 13:25:25 +02:00
Kirill Bulatov f052329a6b Port to gpui2 2023-11-30 13:07:47 +02:00
Kirill Bulatov 14993e0876 Declare more supported client capabilities 2023-11-30 12:22:23 +02:00
Kirill Bulatov f9cd45269a Fix eslint diagnostics by passing worktree root during workspace init 2023-11-30 11:38:16 +02:00
Kirill Bulatov a62c4845a9 Make prettier more robust to offline work and errors (#3434)
Refactors prettier support:

* moves away prettier-related code into a separate module, makes
prettier installation & start phases more type-restricted
* ensures prettier installation and start attempts are capped with a
fixed attempts amount: after it's exceeded, no further attempts to
install and/or start prettier area made
* improves default prettier management, by correctly preserving its
plugin set between (re) installations and always installing the prettier
server part
* slightly improves prettier logging 

Release Notes:

- N/A
2023-11-29 14:02:31 +02:00
Kirill Bulatov d92153218c Log prettier installation start & success 2023-11-29 13:44:19 +02:00
Kirill Bulatov 3e3b64bb1c Fix the tests 2023-11-29 12:10:41 +02:00
Kirill Bulatov 3796e7eecb Port to gpui2 2023-11-29 11:52:26 +02:00
Kirill Bulatov 6e44f53ea1 Style fixes 2023-11-29 11:33:29 +02:00
Kirill Bulatov f1314afe35 Simplify default prettier installation function 2023-11-29 10:58:22 +02:00
Kirill Bulatov 96f6b89508 Clear failed installation task when error threshold gets exceeded 2023-11-29 10:58:22 +02:00
Kirill Bulatov acd1aec862 Properly determine default prettier plugins to install 2023-11-29 10:58:22 +02:00
Kirill Bulatov 64259e4a0b Properly increment installation attempts 2023-11-29 10:58:22 +02:00
Kirill Bulatov 43d28cc0c1 Ignore initialized LSP request in prettier wrapper 2023-11-29 10:58:22 +02:00
Kirill Bulatov 465e53ef41 Always install default prettier 2023-11-29 10:58:22 +02:00
Kirill Bulatov 46ac82f498 Do not attempt to run default prettier if it's not installed yet 2023-11-29 10:58:22 +02:00
Kirill Bulatov 938f2531c4 Always write prettier server file 2023-11-29 10:58:22 +02:00
Kirill Bulatov eab3476304 Split prettier code off to a separate module 2023-11-29 10:58:22 +02:00
Kirill Bulatov e7e56757dc Limit prettier installation and start attempts 2023-11-29 10:58:22 +02:00
Kirill Bulatov c288c6eaf9 Use enum variants for prettier installation and startup phases 2023-11-29 10:58:22 +02:00
Kirill Bulatov d010f5f98d Exctract the common code 2023-11-29 10:58:22 +02:00
Kirill Bulatov 4a01726e5e Use proper npm arguments and clean its inherited env vars (#3419)
Previously, `npm i` command could take too much time to download
dependencies, which was caused by wrong flags used.

Since we run `node` and `npm` processes ourselves and try to isolate
them from potentially "bad" user configs, it seems safer to remove any
ways to re-configure the tools via env vars, so strip off those too.

Release Notes:

- N/A
2023-11-28 19:14:10 +02:00
Kirill Bulatov 5451db9c96 Use proper npm arguments and clean its inherited env vars 2023-11-28 18:39:03 +02:00
Kirill Bulatov cd4ea344a6 Slightly less errors in terminal_element2 2023-11-27 16:55:48 +02:00
Kirill Bulatov 700168467e Avoid binary target name conflicts (#3401)
Fixes binary build warnings such as 

https://github.com/zed-industries/zed/actions/runs/6980107733/job/18994693722#step:5:9

```
warning: output filename collision.
The bin target `dotenv` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `dotenv` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/dotenv
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `dotenv` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `dotenv` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/dotenv.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `seed` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `seed` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/seed
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The bin target `seed` in package `collab2 v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab2)` has the same output filename as the bin target `seed` in package `collab v0.28.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/collab)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/seed.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
```

by suffixing the collab2 binaries with `2`.

Release Notes:

- N/A
2023-11-24 13:44:23 +02:00
Kirill Bulatov e19860d3b0 Avoid binary target name conflicts 2023-11-24 13:29:01 +02:00
Kirill Bulatov bc2dfcfa8e Ignore excluded entries' children FS events (#3400)
Deals with https://github.com/zed-industries/community/issues/2295 and
https://github.com/zed-industries/community/issues/2296

Release Notes:

- Fixed excluded .git files appearing in worktree after FS events
2023-11-24 13:12:44 +02:00
Kirill Bulatov 879a069b35 Port to gpui2 2023-11-24 13:05:53 +02:00
Kirill Bulatov 31a4acf98a Fix collab tests 2023-11-24 12:56:58 +02:00
Kirill Bulatov 95a413847a Properly ignore FS events of excluded files 2023-11-24 11:59:13 +02:00
Kirill Bulatov 4a060db801 Add a test 2023-11-24 11:59:13 +02:00
Kirill Bulatov cee6fd8dd3 Port to gpui2 2023-11-23 10:44:05 +02:00
Kirill Bulatov eee63835fb Exclude more ignored/worktree-less/project-less buffers from inlay hint requests 2023-11-23 10:30:52 +02:00
Kirill Bulatov c2751c717e Parallelize ignored entries for search lookup 2023-11-23 09:53:00 +02:00
Kirill Bulatov 71e9bd8fa3 Use a git file icon for toggle gitignored search option 2023-11-22 19:09:10 +02:00
Kirill Bulatov 566857b0b7 Output non-ignored files first 2023-11-22 19:03:27 +02:00
Kirill Bulatov 92953fb53d If enabled, search in ignored files during project search 2023-11-22 16:41:02 +02:00
Kirill Bulatov 12b59daa1e Allow to exclude files from worktrees (#3356)
* Part of https://github.com/zed-industries/community/issues/70

Allows to fully remove from Zed certain files or file groups: no items
will be scanned or added into worktrees, so nothing will be shown in
project tree, project search and go to file would not see those,
corresponding FS events will be ignored.

One exclusion is .git files: those are still not shown or accessible by
default, yet tracked in the worktrees.

By default, is configured to 
```json
  "file_scan_exclusions": [
    "**/.git",
    "**/.svn",
    "**/.hg",
    "**/CVS",
    "**/.DS_Store",
    "**/Thumbs.db",
    "**/.classpath",
    "**/.settings"
  ],
```

* In addition, contains code preparations for "search in included files"
feature: new SearchOptions variant, search crate and RPC adjustments

Release Notes:

- Added `file_scan_exclusions` section to project settings to completely
ignore certain files in Zed
2023-11-17 23:06:47 +02:00
Kirill Bulatov d352a63d9d Port new workspace logic to gpui2, uncomment most of the workspace2 tests 2023-11-17 22:54:19 +02:00
Kirill Bulatov 616bda85e9 Fix the tests 2023-11-17 21:40:57 +02:00
Kirill Bulatov 2759ed4d00 An attempt to ignore git regularly 2023-11-17 21:40:57 +02:00
Kirill Bulatov 8180938401 Fix most of the TODOs 2023-11-17 21:40:57 +02:00
Kirill Bulatov 6028cd90d4 Retract back to original scanning strategy
Do not descend into ignored directories, to avoid tracking their state.
2023-11-17 21:40:57 +02:00
Kirill Bulatov 906db58188 Defer ignored dirs scanning 2023-11-17 21:40:57 +02:00
Kirill Bulatov 30fefa0ef8 Use a better name 2023-11-17 21:40:57 +02:00
Kirill Bulatov 5f468970f0 Fix some of the old tests 2023-11-17 21:40:57 +02:00
Kirill Bulatov d3ce82e82c Fix the new test 2023-11-17 21:40:57 +02:00
Kirill Bulatov cafeba103b Exclude ignored opened buffers from search 2023-11-17 21:40:57 +02:00
Kirill Bulatov ce2cfc6035 Fix the ! bug, better test draft 2023-11-17 21:40:57 +02:00
Kirill Bulatov 26f7e66b49 Add default scan excluded files settings 2023-11-17 21:40:56 +02:00
Kirill Bulatov c52fe2f536 Move toggle ignored button into include directories editor 2023-11-17 21:40:56 +02:00
Kirill Bulatov 9373d38434 Rescan worktree on scan exclusions settings change 2023-11-17 21:40:56 +02:00