zed/crates
Thorsten Ball 1afcd12747
snippets: Fix <tab> not working when at end of snippet (#11740)
This fixes #10185 by not keeping snippet state around when already at
the end of the snippet and the tabstop is empty (i.e. it's not a
selection) and we're already on it.

The reason for the fix is outlined in the comments of #10185 but to
repeat:

1. `gopls` sends completions with type "snippet" even when suggesting
single word completions that don't contain tabstops
2. We use a default behavior and add an "end tabstop" by default so that
the cursor jumps to the end of the snippet when accepting it.
3. We'd then push the state of the snippet on the stack which is where
it would stay, with the cursor already at the end and the user unable to
get rid of the tabstop state.

This fixes the issue by not pushing snippet state when the tabstop we
accepted is the "end tabstop".

Release Notes:

- Fixed completions inside snippets breaking the jump-to-next-tabstop
behaviour when using Go/`gopls`
([#10185](https://github.com/zed-industries/zed/issues/10185)).

Demo:



https://github.com/zed-industries/zed/assets/1185253/35384e5e-45c6-46ab-870d-b48e56d8786b
2024-05-13 11:39:00 +02:00
..
activity_indicator linux: Store binary path before restart to handle deleted binary file (#11568) 2024-05-08 19:13:28 +02:00
anthropic Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
assets New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
assistant Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
assistant2 Change ToolOutput to ToolView (#11682) 2024-05-10 15:22:09 -07:00
assistant_tooling Bring the Tool Calling README up to date (#11683) 2024-05-12 04:47:19 -07:00
audio Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
auto_update Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
channel Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
cli linux cli (#11585) 2024-05-09 21:08:49 -06:00
client Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
collab_ui Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
color Fix hex_to_hsla inside the color crate (#9412) 2024-03-15 16:58:46 -04:00
command_palette preview tabs: Allow replacing preview tab when using code navigation (#10730) 2024-04-29 20:47:01 +02:00
command_palette_hooks Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
copilot Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
dev_server_projects remoting: Edit dev server (#11344) 2024-05-06 12:58:11 +02:00
diagnostics Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
editor snippets: Fix <tab> not working when at end of snippet (#11740) 2024-05-13 11:39:00 +02:00
extension Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
extension_api Improve extension API documentation (#10322) 2024-04-09 10:38:29 -04:00
extension_cli Add git blame (#8889) 2024-03-28 18:32:11 +01:00
extensions_ui Extract Ruby extension (#11360) 2024-05-10 11:53:11 -04:00
feature_flags WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
feedback Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
file_finder Remove 'Destructive' prompts (#11631) 2024-05-09 18:52:09 -06:00
file_icons gpui: Fix Global trait (#11187) 2024-04-29 16:37:37 -04:00
fs linux cli (#11585) 2024-05-09 21:08:49 -06:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
git_hosting_providers Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
go_to_line Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
google_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
gpui_macros Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
headless linux cli (#11585) 2024-05-09 21:08:49 -06:00
http Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
image_viewer Merge ElementContext into WindowContext (#10979) 2024-04-25 12:54:39 +02:00
inline_completion_button Supermaven (#10788) 2024-05-03 12:50:42 -07:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal Add the ability for extensions to provide language settings (#10296) 2024-04-08 19:17:12 -04:00
language editor: Support walking through overlapping diagnostics (#11139) 2024-05-11 00:32:49 +02:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Return prettier entry back to LSP logs (#11563) 2024-05-08 18:21:43 +03:00
languages chore: Improve dev build startup time (#11692) 2024-05-11 10:10:13 +02:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Vendor LiveKit protocol (#11672) 2024-05-10 14:18:40 -04:00
lsp lsp: More information in error if server fails to start (#11343) 2024-05-03 13:23:52 +02:00
markdown Replace rich_text with markdown in assistant2 (#11650) 2024-05-10 10:22:14 +02:00
markdown_preview markdown preview: Break up list items into individual blocks (#10852) 2024-04-26 21:34:45 +02:00
media Revert "Revert "Revert dependency updates in #9836 (#10089)"" 2024-04-02 13:12:38 -06:00
menu Fix the linux keymap (#9829) 2024-03-26 16:10:09 -07:00
multi_buffer Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
node_runtime Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
notifications Fix mention notifications are not updated after message change and not removed after a message is deleted (#9847) 2024-04-02 20:40:00 -06:00
open_ai Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
outline Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
picker new path picker (#11015) 2024-04-26 13:25:25 -06:00
prettier Fix prettier-plugin-organize-imports plugin removes used imports (#9598) 2024-03-21 08:23:15 +01:00
project Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
project_panel project panel: Allow confirming prompt with keyboard (#11346) 2024-05-03 15:15:39 +02:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Do not show tooltip for editor controls if clicked (#10679) 2024-04-17 13:20:47 +02:00
recent_projects Make border methods always require an explicit width (#11450) 2024-05-06 13:22:47 -04:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel linux cli (#11585) 2024-05-09 21:08:49 -06:00
rich_text New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
rope Revert "Revert "language: Remove buffer fingerprinting (#9007)"" (#9671) 2024-04-12 18:40:35 +02:00
rpc remoting: Edit dev server (#11344) 2024-05-06 12:58:11 +02:00
search Introduce DisplayRow, MultiBufferRow newtypes and BufferRow type alias (#11656) 2024-05-11 00:06:51 +03:00
semantic_index Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings Don't log JSON parse errors with no settings (#11459) 2024-05-06 14:55:44 -06:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez Rename RemoteProject -> DevServerProject (#11301) 2024-05-02 11:00:08 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Introduce a new markdown crate (#11556) 2024-05-09 11:03:33 +02:00
storybook Remember window restore size (#10429) 2024-05-07 23:29:03 -06:00
sum_tree Update docstring for SumTree (#10927) 2024-04-24 14:01:10 +02:00
supermaven Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
supermaven_api Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
tab_switcher Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
task tasks: Prefer worktree tasks to global tasks in tag selection (#11427) 2024-05-06 16:53:48 +02:00
tasks_ui Add support for detecting tests in source files, and implement it for Rust (#11195) 2024-05-05 16:32:48 +02:00
telemetry_events Hang diagnostics (#11190) 2024-04-29 17:13:28 -07:00
terminal linux cli (#11585) 2024-05-09 21:08:49 -06:00
terminal_view gpui: Pass Style by value to request_layout (#11597) 2024-05-09 11:38:53 +02:00
text Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
theme Adjust names of negated style methods (#11453) 2024-05-06 13:56:25 -04:00
theme_importer Rust 1.78 (#11314) 2024-05-05 15:02:50 +02:00
theme_selector Add support for applying theme after extension is installed (#9529) 2024-03-20 11:13:58 -04:00
time_format Inline git blame (#10398) 2024-04-15 14:21:52 +02:00
ui gpui: Pass Style by value to request_layout (#11597) 2024-05-09 11:38:53 +02:00
ui_text_field Make border methods always require an explicit width (#11450) 2024-05-06 13:22:47 -04:00
util Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
vcs_menu vcs menu: Use project's repositories, do not open directly (#11652) 2024-05-10 11:06:32 +02:00
vim vim test redux (#11709) 2024-05-11 14:04:05 -04:00
welcome Supermaven (#10788) 2024-05-03 12:50:42 -07:00
workspace Add autosave with delay (#11325) 2024-05-12 17:18:30 -04:00
worktree Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
zed Extract http from util (#11680) 2024-05-10 15:50:20 -06:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00