Selection hint that is displayed immediately upon entering visual mode
([<leader>aa: ask, <leader>ae: edit]) gets old pretty quickly. Add a
config option to control when the hint is displayed:
selection = {
enabled = true,
hint_display = "delayed",
},
The "hint_display" option recognizes the following values:
- "immediate" results in the hint being shown immediately after entering
visual mode. This is the old behavior.
- "delayed" causes the hint be displayed only if the cursor has not been
moved for vim.o.updatetime milliseconds. This is the new default.
- "none" suppresses showing the hint completely.
Unfortunately "CursorHold" event is not emitted in visual mode so we
have to emulate it using Utils.debounce().
This is a breaking change because selection behavior was controller by
"hints" config entry which makes little sense, so the config section and
associated commands were renamed to "selection".
Additionally the "hints"/"selection" was mapped to "<leader>ah", but the
very same key combination was used to select from old Avante chat
histories, which overrode the toggle. New selection toggle keymap is
"<leader>aC".
* feat(sidebar): supports select files
chore (context) update add type annotations to context functions
chore (sidebar) remove unused notify function call
refactor (sidebar) remove setting search file to file path
chore (sidebar) remove nvim_notify debugging api call
* feat (files) allow selecting a file by string via cmp suggestion menu
* chore (context) refactor to allow context using @file with a context view
* refactor (context) refactor seletected file types as an array of path and content
* refactor (config) remove unused configuration options
* refactor (sidebar) remove unused unbild key
* refactor (context) remove unused imports
* refactor (mentions) update mentions to support items with callback functions and removal of the underlying selection.
* fix (sidebar) add file context as a window that is visitable via the tab key
* refactor (file_content) remove file content as an input to llm
* feat (sidebar) support suggesting and applying code in all languages that are in the context
* feat (sidebar) configurable mapping for removing a file from the context.
* feat (context_view) configure hints for the context view for adding and deleting a file.
* feat (context) add hints for the context view.
* fix (sidebar) type when scrolling the results buffer.
* refactor (selected files) refactor llm stream to accept an array of selected file metadata
* refactor: context => selected_files
---------
Co-authored-by: yetone <yetoneful@gmail.com>
* feat: add floating input to ask method
Open a floating input similar to the "edit" input for the "ask" input.
Enabled in config via `Config.windows.ask.floating` or by passing
`{ floating = true }` to the `api.ask` method.
Includes logic to ensure the sidebar uses the correct buffer and selection
if an existing sidebar is open for another code buffer.
Also refactored the `selection` module to extract the floating input
logic into a new `PromptInput` class.
* docs: update config options
* feat: more accurate annotations to prevent user misunderstandings
---------
Co-authored-by: yetone <yetoneful@gmail.com>