feat(ai): add `folke/sidekick.nvim`
Closes #1655
📑 Description
Add sidekick.nvim
📖 Additional Information
This is still WIP and I still need to test a lot of this
Review Checklist
Does this PR follow the [Contribution Guidelines](development guidelines)? Following is a partial checklist:
Proper conventional commit scoping:
-
If you are adding a new plugin, the scope would be the name of the category it is being added into. ex.
feat(utility): added noice.nvim plugin -
If you are modifying a pre-existing plugin or pack, the scope would be the name of the plugin folder. ex.
fix(noice-nvim): fix LSP handler error -
[ ] Pull request title has the appropriate conventional commit type and scope where the scope is the name of the pre-existing directory in the project as described above
-
[ ]
READMEis properly formatted and uses fenced in links with<url>unless they are inside a[title](url) -
[ ] Entry returns a single plugin spec with the new plugin as the only top level spec (not applicable for recipes or packs).
-
[ ] Proper usage of
optstable rather than setting things up with theconfigfunction. -
[ ] Proper usage of
specstable for all specs that are not dependencies of a given plugin (not applicable for recipes or packs).
if you use copilot.vim the lsp stuff is also handled for you
maybe we could use autoCmds, or make the nes features fullly dependent on the copilot.vim or copilot.lua
the plugin does have a way to enable/disable this via the vim.g.sidekick_nes so we could let the use decide if it should be enabled or not https://github.com/folke/sidekick.nvim/blob/main/lua/sidekick/config.lua#L18
Or if we want a better out of the box experience, we can probably check if the copilot lsp is installed and then enabled it instead of force installing the lsp since not everyone might want this and might just want to use the cli side
Can I use this without NES, just for CLI tools?
Absolutely! Just disable NES:
opts = {
nes = { enabled = false },
}
Maybe we can just disable it by default and enable it with the copilt.lua and copilot.vim marked as optional
I was hoping to see "available LSP" and if there was one for copilot even if it wasn't started we could toggle it but I'll need to keep looking into it
the tmux/zellij issue has also been fixed https://github.com/folke/sidekick.nvim/commit/2110966b5a2b76cb187b9bf80e23dd0b5327c8c7
it'll automatically toggle
We can just set nes to enabled, if the copilot LSP isn't started this automatically is false.
When I try and use astrocore for the key mapping I get an error about using nes_jump_or_apply() on nil that I'll need to debug and testing some of the NES stuff is a pain since I keep getting auth issues
2.0 released with breaking changes https://github.com/folke/sidekick.nvim/releases/tag/v2.0.0
Whats blocking this @ALameLlama
@Uzaaft sorry, I was originally waiting to see if there was gonna be anymore breaking changes and then ended up traveling for now. I've updated it and had a little bit of a play around and it seems to work.
let me know if you want me to make any changes :)