Polish prompt library UX (#12647)

This could still use some improvement UI-wise but the user experience
should be a lot better.

- [x] Show in "Window" application menu
- [x] Load prompt as it's selected in the picker
- [x] Refocus picker on `esc`
- [x] When creating a new prompt, if a new prompt already exists and is
unedited, activate it instead
- [x] Add `/default` command
- [x] Evaluate /commands on prompt insertion
- [x] Autocomplete /commands (but don't evaluate) during prompt editing
- [x] Show token count using the settings model, right-aligned in the
editor
- [x] Picker 
- [x] Sorted alpha
- [x] 2 sublists
    - Default
        - Empty state: Star a prompt to add it to your default prompt
        - Otherwise show prompts with star on hover
    - All
        - Move prompts with star on hover

Release Notes:

- N/A
This commit is contained in:
Antonio Scandurra 2024-06-04 18:36:54 +02:00 committed by GitHub
parent e4bb666eab
commit c5b22eee2d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 716 additions and 358 deletions

View file

@ -17,6 +17,7 @@ use std::{
use workspace::Workspace;
pub mod active_command;
pub mod default_command;
pub mod fetch_command;
pub mod file_command;
pub mod project_command;
@ -117,6 +118,7 @@ impl SlashCommandCompletionProvider {
command_range.clone(),
&command_name,
None,
true,
workspace.clone(),
cx,
);
@ -178,6 +180,7 @@ impl SlashCommandCompletionProvider {
command_range.clone(),
&command_name,
Some(&arg),
true,
workspace.clone(),
cx,
);