Joseph T. Lyons
bed0d1d529
Fix language detection when file name begins with a . ( #2833 )
...
I went to add in `zprofile` to the bash language config to get syntax
highlighting for it. After adding it in, Zed was still not highlighting
the file. I checked and saw that we are using `Path::extension()` in
`language_for_file()`, which [returns `None` when a file's name begins
with a
`.`](https://doc.rust-lang.org/std/path/struct.PathBuf.html#method.extension ),
such as in the case of `.zprofile`. This PR adds a custom method, with
some tests, that just tries to grab the last component in the file name
if `Path::extension` returns `None`. Not sure if `ext` is the best name,
but I can't use `extension`.
Maybe this method should be called `extension_or_hidden_file_name()`?
Release Notes:
- Fixed a bug where language detection would fail for files starting
with `.` in their names.
- Added syntax highlighting for `.zprofile` files
2023-08-08 21:48:56 -04:00
Joseph T. Lyons
c523ccc4c7
Fix code that identifies language via extension
2023-08-08 21:35:11 -04:00
Max Brunsfeld and Mikayla
0b93a30821
Terminate synthetic drag state on mouse up w/ ctrl held
...
Co-authored-by: Mikayla <mikayla@zed.dev >
2023-08-08 17:39:45 -07:00
Max Brunsfeld and Mikayla
e3bb5e5103
Fix failure to remove hovered region_ids on element removal
...
Co-authored-by: Mikayla <mikayla@zed.dev >
2023-08-08 17:39:05 -07:00
Nathan Sobo
db96fb1307
Merge remote-tracking branch 'origin/main' into paint-context
2023-08-08 18:27:16 -06:00
Nathan Sobo
54ca5f1d44
Replace context methods that take a window id with methods on window handles ( #2832 )
...
With this PR, I've eliminated almost all references to window ids
outside of the internals of GPUI. All public methods taking these ids
are now defined on `AnyWindowHandle`, which provides a more coherent
narrative around windows as a concept.
2023-08-08 17:51:37 -06:00
Nathan Sobo
0dc70e6cbf
Rename mac platform Window to MacWindow for clarity
2023-08-08 17:21:06 -06:00
Nathan Sobo
fc96676662
Use AppContext::update when updating windows so we handle effects
2023-08-08 17:20:46 -06:00
Nathan Sobo
8e49d1419a
Minimize window id usage
2023-08-08 16:38:46 -06:00
Nathan Sobo
afd89b256a
Store AnyWindowHandles instead of usizes
2023-08-08 16:06:53 -06:00
Piotr Osiewicz
c96b03ae55
Piotr/optimize search selections with a limit ( #2831 )
...
/cc @nathansobo @maxbrunsfeld
Release Notes:
- Fixed scrollbar selections causing noticeable slowdowns with large
quantities of selections.
2023-08-08 21:29:24 +02:00
Nathan Sobo
1e8a9ccdb5
Merge remote-tracking branch 'origin/main' into window-handles
2023-08-08 11:42:55 -06:00
Nathan Sobo
b77c336a3d
Return window handles from WeakItemHandle
2023-08-08 11:39:56 -06:00
Nathan Sobo
b2d9ccc0a2
Move more window methods off AsyncAppContext
2023-08-08 11:38:07 -06:00
Nathan Sobo
95cd96e4be
Move debug_elements to AnyWindowHandle
2023-08-08 11:27:19 -06:00
Nathan Sobo
4f10f0ee86
Remove window methods from AsyncAppContext
2023-08-08 11:23:49 -06:00
Nathan Sobo
1fd80ba8bd
Remove AsyncAppContext::remove_window
2023-08-08 11:22:43 -06:00
Nathan Sobo
fe6a1886c1
Remove unused dock code
2023-08-08 11:20:42 -06:00
Nathan Sobo
0a4633f88f
Remove more window id usage
2023-08-08 11:20:09 -06:00
Nathan Sobo
da7dc9c880
Work with window handles instead of ids in drag code
2023-08-08 11:14:02 -06:00
Nathan Sobo
d896d89842
Store an AnyWindowHandle in WindowContext
2023-08-08 11:08:37 -06:00
Nate Butler
662e196267
Calculate the range for each color family in a theme ( #2738 )
...
Release Notes:
- N/A (Internal theme stuff)
2023-08-08 11:49:52 -04:00
Nathan Sobo
49f1f1c6c2
Remove window when closing workspace in test
2023-08-08 09:13:17 -06:00
Piotr Osiewicz
1aff642981
Do not highlgiht selections at all over the threshold
2023-08-08 13:09:27 +02:00
Nathan Sobo
dba2facd23
Remove window via handles
2023-08-07 22:58:01 -06:00
Nathan Sobo
f0da6b05fd
Remove TestAppContext::add_view
...
Instead, we now call this on window handles.
2023-08-07 22:46:48 -06:00
Nathan Sobo
0f332238b3
Remove unused method
2023-08-07 22:08:44 -06:00
Nathan Sobo
d687c3d81f
Merge remote-tracking branch 'origin/main' into window-handles
2023-08-07 22:07:20 -06:00
Nathan Sobo
f2be3181a9
Move window-related methods from TestAppContext to AnyWindowHandle
2023-08-07 20:23:04 -06:00
Nathan Sobo
0197d49230
Move activation simulation to AnyWindowHandle
2023-08-07 19:45:43 -06:00
Nathan Sobo
486f5bc6ca
Get compiling
2023-08-07 19:08:58 -06:00
Piotr Osiewicz
371c669e00
Address review feedback.
...
Rename selected_rows to background_highlight_row_ranges.
Do not return any ranges if there are more than 50k results
2023-08-08 02:47:49 +02:00
Piotr Osiewicz
b0fc6da55b
Use display maps
2023-08-08 02:37:27 +02:00
Piotr Osiewicz
241d3951b8
Remove redundant argument
2023-08-08 02:25:30 +02:00
Piotr Osiewicz
42e1221357
Add upper bound limit. Remove dbg! statements
2023-08-08 02:17:11 +02:00
Piotr Osiewicz
fa16895976
Do not query start of range if it's end is the same as the previous hunk's
2023-08-08 00:27:38 +02:00
Piotr Osiewicz
ca21626064
Baseline: Improve selection rendering for large quantities from 270ms to 90ms
2023-08-07 23:32:27 +02:00
Max Brunsfeld
7288be4251
Make LspAdapter::process_diagnostics synchronous ( #2829 )
...
When editing rust code, the project diagnostics view sometimes fails to
update, so that you have to close the view and re-open it to see the
correct state.
This PR fixes one possible cause of that problem. There was an async
step in between *receiving* diagnostics from the language server and
updating the diagnostics, due to an async call to
`LspAdapter::process_diagnostics`. This could cause the following
sequence of events to happen:
1. Rust-analyzer sends us new diagnostics for a file `a.rs`
2. We call `process_diagnostics` with those diagnostics
3. Rust-analyzer sends us a `WorkDoneProgress` message, indicating that
the "flycheck" (aka `cargo check`) process has completed
4. We update the project diagnostics view due to this message.
5. The `process_diagnostics` call for `a.rs` completes
6. 💥 We have the new diagnostics for `a.rs`, but do not update the
project diagnostics view again.
This PR fixes this bug by simply making `process_diagnostics`
synchronous. There is no I/O or expensive computation happening in that
method. If we need to make it asynchronous in the future, we need to
introduce a queue that ensures that `publishDiagnostics` and
`workDoneProgress` messages are processed serially.
Release Notes:
- Fixed a bug where the project diagnostics view would sometimes fail to
update properly when using Rust-analyzer.
2023-08-07 14:31:49 -07:00
Joseph T. Lyons
d417993c9d
Add syntax highlighting for Cargo.toml files ( #2830 )
...
Release Notes:
- Added syntax highlighting for `Cargo.toml` files
2023-08-07 17:28:21 -04:00
Joseph T. Lyons
dbf25ea2ff
Add syntax highlighting for Cargo.toml files
2023-08-07 17:24:22 -04:00
Joseph T. Lyons
580c2ea8eb
Fix test name
2023-08-07 17:07:01 -04:00
Max Brunsfeld and Nathan
4e33654aba
Make LspAdapter::process_diagnostics synchronous
...
Co-authored-by: Nathan <nathan@zed.dev >
2023-08-07 13:53:41 -07:00
Nathan Sobo
3e0d0e5c01
WIP
2023-08-07 13:54:47 -06:00
Conrad Irwin
19eb280351
Fix selection background too
...
Refactor code to centralize the logic too
2023-08-07 19:01:04 +01:00
Nathan Sobo
d4d32611fe
WIP
2023-08-06 18:57:02 -06:00
Nathan Sobo
adc50469ff
WIP
2023-08-06 12:45:31 -06:00
Joseph T. Lyons
e3a4d174de
Fix bash path_suffixes and add cmd-/ line comment support ( #2827 )
...
<img width="1608" alt="SCR-20230806-cyrg"
src="https://github.com/zed-industries/zed/assets/19867440/2491c4bc-5797-4417-9633-08c136b4e8fe ">
I noticed we weren't highlghting bash files if the shebang line didn't
exist. After checking, it looks like the `.` were accidentally added to
the `path_suffixes` list. This PR fixes that and adds in support for
`cmd-/` to trigger line comments.
<img width="1608" alt="SCR-20230806-czxh"
src="https://github.com/zed-industries/zed/assets/19867440/37dd0c8e-c4e7-49e2-9997-9dd8145f460e ">
Release Notes:
- Fixed a bug where shell files weren't syntax highlighted if a shebang
didn't exist.
- Added support for `cmd-/` to add line comments to shell files.
2023-08-06 02:35:00 -04:00
Joseph T. Lyons
ef5b982ea5
Fix bash path_suffixes and add line_comment
2023-08-06 02:20:31 -04:00
Nathan Sobo
dcf8b00656
WIP
2023-08-05 18:00:44 -06:00
Joseph T. Lyons
7777d973cd
Expand empty selections to cover full word when doing case conversions and fix bugs ( #2826 )
...
When doing case conversions, specifically in the case of an empty
selection, in both VS Code and Sublime, the cursor winds up being in a
different place relative to where it started.
In VS Code, the cursor maintains it position in the text, no matter if
the text expands or shrinks
https://github.com/zed-industries/zed/assets/19867440/b24f5d86-c315-4a72-9ed4-3732b490ea9a
In Sublime, I have no idea what is going on:
https://github.com/zed-industries/zed/assets/19867440/05f21303-6e42-47b2-b844-7accd0bf05d7
I thought it would be a better experience if, when doing an empty
selection transformation, we simply expand the selection and park the
cursor at the end of the newly-transformed text.
https://github.com/zed-industries/zed/assets/19867440/833619ef-04e2-47b6-ad4e-e2b43d54fb2b
This feels similar to us expanding the selection when doing line
manipulations:
https://github.com/zed-industries/zed/assets/19867440/c30c5332-787d-4cf0-a9ee-e66c3c159956
Selections are adjusted to match however each word expands and shrinks,
even when there are multiple:
https://github.com/zed-industries/zed/assets/19867440/d7073aac-8a59-4f2c-b0e5-1df37be1694c
Release Notes:
- Improved behavior of empty-selection case transformations by selecting
resulting word.
- Fixed some bugs with overflow
2023-08-05 12:16:46 -04:00