Commit Graph
100 Commits
Author SHA1 Message Date
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
Kirill Bulatov 1612c90052 More lenient file path matchers 2023-11-17 21:40:56 +02:00
Kirill Bulatov b8be720490 Fix the bugs 2023-11-17 21:40:56 +02:00
Kirill Bulatov 126e4cce8f Scan all ignored files by default now 2023-11-17 21:40:56 +02:00
Kirill Bulatov 401f85bed2 Properly ignore elements from configured exceptions 2023-11-17 21:40:56 +02:00
Kirill Bulatov 9072e5a507 Properly set ignore stacks and is_ignored values 2023-11-17 21:40:56 +02:00
Kirill Bulatov 7d97dfa6be Test and filter data draft 2023-11-17 21:40:56 +02:00
Kirill Bulatov a5c615ceb4 Pass a new query parameter into the search 2023-11-17 21:40:56 +02:00
Kirill Bulatov 6680e1e9fe Create new Zed release channel: nightly 2023-11-17 12:13:32 +02:00
Kirill Bulatov 9d8184670a Remove binary target collisions between zed & zed2 (#3352)
Get rid of the following warnings:

```
The example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app
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 example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app.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 `Zed` in package `zed2 v0.109.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed2)` has the same output filename as the bin target `Zed` in package `zed v0.113.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/Zed.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>.
```

as we plant to build *.dmg of both versions for a while.

Release Notes:

- N/A
2023-11-17 10:02:27 +02:00
Kirill Bulatov 89e44d4901 Remove binary target collisions between zed & zed2 2023-11-17 09:56:28 +02:00
Kirill Bulatov 2aa7c6f2b4 Add a simple context menu into terminal2 (#3343)
Release Notes:

- N/A
2023-11-16 16:41:27 +02:00
Kirill BulatovandPiotr ab0a3f19ab Add an actual context menu into terminal-2
(click the text, not the pane!)

Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-16 16:36:44 +02:00
Kirill Bulatov f638d4ce1d Add basic context menu element 2023-11-16 14:35:13 +02:00
Kirill Bulatov 0f0b7090b8 Fix more errors in terminal element 2023-11-16 13:10:43 +02:00
Kirill Bulatov 03b4c7c464 Terminal 2 (#3342)
Release Notes:

- N/A
2023-11-16 10:59:42 +02:00
Kirill Bulatov fd61683c46 WIP 2023-11-16 10:40:02 +02:00
Kirill Bulatov e3465fbcf9 Comment out the terminal view 2023-11-16 10:04:20 +02:00
Kirill Bulatov a238368296 More compilation fixes 2023-11-16 10:04:18 +02:00
Kirill BulatovandMikayla Maki 61d6cb880c Start porting terminal_element to gpui2
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-11-16 10:04:03 +02:00
Kirill BulatovandMikayla Maki d89c51135a Start porting terminal_view to gpui2
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-11-16 10:04:03 +02:00
Kirill Bulatov aa0563c656 More detailed errors when opening files (#3333)
Release Notes:

- N/A
2023-11-15 16:31:48 +02:00
Kirill Bulatov 888098bad2 More detailed errors when opening files 2023-11-15 16:20:00 +02:00
Kirill Bulatov 031d841305 Make inlay hint cache tests pass (#3310)
Release Notes:

- N/A
2023-11-13 18:42:16 +02:00
Kirill BulatovandConrad dbd26ac651 Make inlay hint cache tests pass
Co-Authored-By: Conrad  <conrad.irwin@gmail.com>
2023-11-13 18:25:21 +02:00
Kirill Bulatov 7a454bed22 Uncomment inlay hints logic and tests (#3307)
Tests compile, but do not pass due to todo!s in the platform code, hence
ignored for now.

Release Notes:

- N/A
2023-11-13 15:20:43 +02:00
Kirill Bulatov e257f7d0b1 Ignore tests for now 2023-11-13 15:02:24 +02:00
Kirill Bulatov a9c17e7407 Uncomment all inlay hint cache code and tests 2023-11-13 14:07:48 +02:00
Kirill Bulatov 81cc6e84b7 pane: When opening a buffer, actually scroll to the selected tab. (#3306)
Previously it might've reused a shared state.

Deals with https://github.com/zed-industries/community/issues/2262 also
fixes influencer's feedback.

No gpui2 port, due to 0 scrollable functionality in it yet.

Release Notes:

- Fixed tabs not being scrolled to on buffer (re)open
(https://github.com/zed-industries/community/issues/2262)
2023-11-13 13:21:26 +02:00
Kirill BulatovandPiotr f0f0b47058 pane: When opening a buffer, actually scroll to the selected tab. Previously it might've reused a shared state.
Deals with https://github.com/zed-industries/community/issues/2262 also fixes influencer's feedback.

Co-Authored-By: Piotr <piotr@zed.dev>
2023-11-13 13:09:02 +02:00
Kirill Bulatov 3cd4eeffef Do not add diagnostics for any selection in the diagnostics panel (#3300)
Make the panel less jumpy by deferring diagnostics updates until cmd-s
is pressed, if any caret is placed inside the diagnostics panel.

Release Notes:

- N/A
2023-11-10 13:50:58 +02:00
Kirill Bulatov d38a2b793e Do not add diagnostics for any selection in the diagnostics panel 2023-11-10 13:35:58 +02:00
Kirill Bulatov b157453630 Do not use prettier for formatting node_modules/** files (#3286)
Fixes

> the most annoying thing i'm running into right now is that when i'm
patching something inside node_modules, Zed tries to pretty-format it
according to my prettier config. this messes up the patch because it has
formatting changes now. i need the pretty formatting on save to be off
inside node_modules, that never makes sense

feedback from #influencers 

Do note though, that language servers will still format any file inside
node_modules, but at least it's not prettier now.
VSCode seem to format the node_modules/** files via language servers
too, so that seems ok for now, and the rest could be fixed during

> "project diagnostics" (eslint) seem to be running inside node_modules,
e.g. i'm seeing 3182 "errors" in my project. that doesn't make sense and
probably wastes resources in addition to being annoying

feedback later.

Release Notes:

- Fixed prettier formatting files inside node_modules
2023-11-09 17:42:58 +02:00
Kirill Bulatov f55d89088b Port changes to gpui2 2023-11-09 17:18:41 +02:00
Kirill Bulatov 2e957bc564 Do not propose prettier formatters for documents in node_modules/ 2023-11-09 14:49:37 +02:00
Kirill Bulatov ce40d5e0c5 Adjust the tests 2023-11-09 14:40:32 +02:00
Kirill Bulatov 8be07eddcc Change locate prettier method signature 2023-11-09 14:23:33 +02:00
Kirill Bulatov 254b369624 Properly toggle diagnostics (#3243)
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
2023-11-06 19:35:49 +02:00
Kirill Bulatov bfb860c06c Properly toggle diagnostics 2023-11-06 19:29:31 +02:00
Kirill Bulatov 128d3696ad More heuristics for diagnostics updates (#3236)
Follow-up of https://github.com/zed-industries/zed/pull/3225
That PR enabled every `project::Event::DiskBasedDiagnosticsFinished` to
update the diagnostics, which turned out to be bad, Zed does query for
more diagnostics after every excerpt update, and that seems to be due to
`Event::Edited` emitted by the multibuffers created in the diagnostics
panel.

* now, instead of eagerly updating the diagnostics every time, only do
that if the panel has 0 or 1 caret placed and no changes were made in
the panel yet.
Otherwise, use previous approach and register the updated paths to defer
their update later.

* on every `update_excerpts` in the diagnostics panel, query the entire
diagnostics summary (and store it for the future comparisons), compare
old and new summaries and re-query diagnostics for every path that's not
in both summaries.
Also, query every path that was registered during the
`DiskBasedDiagnosticsFinished` updates that were not eagerly updated
before.

This way we're supposed to get all new diagnostics (for new paths added)
and re-check all old paths that might have stale diagnostics now.

* do diagnostics rechecks concurrently for every path now, speeding the
overall process

Release Notes:

- Fixed diagnostics triggering too eagerly during multicaret edits and
certain stale diagnostics not being removed in time
2023-11-05 16:17:38 +02:00
Kirill Bulatov ad93d9132f Correctly update old diagnostics 2023-11-05 15:37:27 +02:00
Kirill Bulatov fdcb907644 Parallelize diagnostics filling, add more logs 2023-11-05 15:06:39 +02:00
Kirill Bulatov ff1d692e46 Restructure inner path data 2023-11-05 14:53:13 +02:00
Kirill Bulatov 7145fabb6d Eagerly refresh diagnostics that do not intercept with user input 2023-11-05 14:44:22 +02:00