Neovim allows quickfix list to be populated in a variety of ways: grep,
lsp symbol references etc. Being able to add files in the quickfix
window to the LLM chat context allows for interesting workflows. For
example, one could search for a symbol using the LSP integration,
populate the quickfix with that list and then pass those along as
context in Avante using @quickfix mention in the sidebar.
If there are no files in the quickfix list or the items do not have a
file, nothing is added to the context.
* 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>