zed/crates
Thorsten Ball c81230405f
typescript: Complete function calls with snippets (#11157)
This allows function call (i.e. snippet) completion with
`typescript-language-server`. So far that didn't work, because
`typescript-language-server` doesn't respond with `insertText` when
getting the completions, but only when then sending
`completionItem/resolve` requests. See:
https://github.com/hrsh7th/nvim-cmp/issues/646#issuecomment-992765479

What this PR does is to support text edits in the response to
`completionItem/resolve`, which means updating the completion item.

It then enables this feature by default for
`typescript-language-server`.


TODOs:

- [x] Make this work over collab
- [x] Test that this doesn't break existing language server support
- [x] Refactor duplicated code

Release Notes:

- Added support for function call completion when using
`typescript-language-server`. This will result in parameters being
added, which can then be changed and navigated with `<tab>`. For this to
work with `typescript-language-server`, the documentation for a given
completion item needs to be resolved, meaning that if one types very
quickly and accepts completion before `typescript-language-server` could
respond with the documentation, no full function completion is used.

Demo:


https://github.com/zed-industries/zed/assets/1185253/c23ebe12-5902-4b50-888c-d9b8cd32965d
2024-05-02 10:50:01 +02:00
..
activity_indicator open new buffer (#11203) 2024-04-30 16:09:43 -06:00
anthropic Move lints section to the top of Cargo.toml, to match the others 2024-04-18 15:53:48 -04:00
assets New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
assistant windows: Support all OpenType font features (#10756) 2024-04-26 13:58:12 -07:00
assistant2 assistant2: Use new icon in status bar (#11268) 2024-05-01 16:52:09 -04:00
assistant_tooling assistant2: Add create buffer tool (#11219) 2024-04-30 13:43:25 -04:00
audio Introduce InlineCompletionProvider (#9777) 2024-03-26 13:28:06 +01:00
auto_update open new buffer (#11203) 2024-04-30 16:09:43 -06:00
breadcrumbs Break typography styles out of StyledExt (#11013) 2024-04-25 17:42:53 -04:00
call remote projects per user (#10594) 2024-04-23 15:33:09 -06:00
channel remote projects per user (#10594) 2024-04-23 15:33:09 -06:00
cli Allow cli to accept --dev-server-token (#10944) 2024-04-24 13:15:19 -06:00
client Don't iterate over all system processes (#11281) 2024-05-01 20:08:56 -06:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02:00
collab_ui typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02: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 Revert "Revert "language: Remove buffer fingerprinting (#9007)"" (#9671) 2024-04-12 18:40:35 +02:00
copilot_ui Refactor workspace notifications to use explicit NotificationId type (#10342) 2024-04-10 17:21:23 -04:00
db Clean up whitespace (#10755) 2024-04-23 13:31:21 -04:00
diagnostics preview tabs: Allow replacing preview tab when using code navigation (#10730) 2024-04-29 20:47:01 +02:00
editor typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02:00
extension Compile and instantiate wasm modules on a background thread (#11270) 2024-05-01 14:34:54 -07: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 Suggest the SCSS extension for .scss files (#11249) 2024-05-01 09:26:22 -04:00
feature_flags WIP: remoting (#10085) 2024-04-11 15:36:35 -06:00
feedback open new buffer (#11203) 2024-04-30 16:09:43 -06:00
file_finder new path picker (#11015) 2024-04-26 13:25:25 -06:00
file_icons gpui: Fix Global trait (#11187) 2024-04-29 16:37:37 -04:00
fs Switch from delete file by default to trash file by default (#10875) 2024-04-26 17:43:50 -07: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 Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +03:00
go_to_line Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +03:00
google_ai Fix licensing errors 2024-03-20 15:52:02 +01:00
gpui Use HIGH priority to wake blocked timers (#11269) 2024-05-01 16:03:27 -06:00
gpui_macros gpui-macros: Hide autogenerated action types/functions (#10417) 2024-04-11 15:38:47 +02:00
headless Allow cli to accept --dev-server-token (#10944) 2024-04-24 13:15:19 -06:00
image_viewer Merge ElementContext into WindowContext (#10979) 2024-04-25 12:54:39 +02: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 Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +03:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools preview tabs: Allow replacing preview tab when using code navigation (#10730) 2024-04-29 20:47:01 +02:00
languages typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02:00
live_kit_client Hoist nanoid to workspace-level (#11029) 2024-04-25 22:37:40 -04:00
live_kit_server Merge prost dependecies (#9522) 2024-03-18 20:33:20 -06:00
lsp lsp: Do not set error/result fields if they're missing. (#10610) 2024-04-16 14:27:12 +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 Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +03:00
node_runtime Allow extensions to define more of the methods in the LspAdapter trait (#9554) 2024-03-20 12:47:04 -07: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 New revision of the Assistant Panel (#10870) 2024-04-23 16:23:26 -07:00
outline Allow to toggle git hunk diffs (#11080) 2024-05-01 22:47:36 +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 typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02:00
project_panel Disallow adding folders to projects and opening the terminal in remote projects (#11261) 2024-05-01 16:04:59 -06: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 Show dev server in the titlebar for remote projects (#11276) 2024-05-01 16:24:58 -06:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel cli: Treat first argument as name of release channel to use for the cli (#10856) 2024-04-22 18:01:06 +02:00
remote_projects Show dev server in the titlebar for remote projects (#11276) 2024-05-01 16:24:58 -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 typescript: Complete function calls with snippets (#11157) 2024-05-02 10:50:01 +02:00
search preview tabs: Allow replacing preview tab when using code navigation (#10730) 2024-04-29 20:47:01 +02:00
semantic_index Return an error from project index tool when embedding query fails (#11264) 2024-05-01 12:15:44 -07:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
settings gpui: Fix Global trait (#11187) 2024-04-29 16:37:37 -04:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez remote projects per user (#10594) 2024-04-23 15:33:09 -06:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Enable clippy::eq_op (#9369) 2024-03-14 17:05:07 -04:00
storybook assistant2: Add ChatNotice component (#11262) 2024-05-01 14:51:28 -04:00
sum_tree Update docstring for SumTree (#10927) 2024-04-24 14:01:10 +02:00
tab_switcher Add preview tabs (#9125) 2024-04-11 23:09:12 +02:00
task Properly pass nested script arguments for tasks (#10776) 2024-04-19 16:24:35 +03:00
tasks_ui gpui: Fix Global trait (#11187) 2024-04-29 16:37:37 -04:00
telemetry_events Hang diagnostics (#11190) 2024-04-29 17:13:28 -07:00
terminal Don't iterate over all system processes (#11281) 2024-05-01 20:08:56 -06:00
terminal_view Disallow adding folders to projects and opening the terminal in remote projects (#11261) 2024-05-01 16:04:59 -06:00
text Validate buffer_id of anchors in is_valid (#11170) 2024-04-29 10:24:04 -06:00
theme Add wiring for UI density (#11260) 2024-05-01 14:28:52 -04:00
theme_importer themes: Add pane_group.border color (#9986) 2024-04-01 12:07:26 -04: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 Clean up Indicator (#11275) 2024-05-01 18:10:35 -04:00
ui_text_field windows: Support all OpenType font features (#10756) 2024-04-26 13:58:12 -07:00
util Add avatar support for codeberg in git blame (#10991) 2024-04-30 12:57:10 +02:00
vcs_menu fs: Move Repository trait into git crate (#10768) 2024-04-19 11:57:17 +02:00
vim Adjust the yss surrounds operator (#11212) 2024-04-30 21:50:04 -06:00
welcome Add an explore extensions button to welcome screen (#11265) 2024-05-01 16:07:24 -04:00
workspace Disallow adding folders to projects and opening the terminal in remote projects (#11261) 2024-05-01 16:04:59 -06:00
worktree Switch from delete file by default to trash file by default (#10875) 2024-04-26 17:43:50 -07:00
zed Disallow adding folders to projects and opening the terminal in remote projects (#11261) 2024-05-01 16:04:59 -06:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00