LSP-AI makes writing these plugins easier. Check out "The Case for LSP-AI" https://github.com/SilasMarvin/lsp-ai?tab=readme-ov-file#the... for more info on why I think that is true
CopilotChat.nvim solves this somewhat elegantly for neovim, providing a streamlined UI to interact with an LLM in a way that allows accepting suggested diffs to your currently open buffer. The problem however is that it only works with GitHub's Copilot chat, as the name suggests. Not sure how well Copilot stacks up against gpt-4o for example but I'd imagine not that well.
edit: Quick demo of CopilotChat.nvim: https://github.com/raine/ghtool/assets/11027/e8d5820b-eafb-4...
This is pretty much the kind of UI I'd want for interacting with LLMs, aside from the typical Copilot style ghost autocomplete.
Do you think the LSP abstraction can support interactions beyond copilot style autocomplete? While that's a super helpful UX, it's also pretty narrow and limited.
My project aider [1] provides a pair-programming UX, which allows complex interactions like asking for a change that will modify multiple files. Could LSP servers support more general AI coding like this?
[0] https://github.com/morph-labs/rift
[1] https://github.com/paul-gauthier/aider