Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(copilotchat-nvim): improve picker selection logic and error handling #1337

Merged
merged 2 commits into from
Feb 4, 2025

Conversation

tku137
Copy link
Contributor

@tku137 tku137 commented Jan 26, 2025

This is an attempt to further improve on #1333.

First, a separate function to check for the currently active pickers name or nil if it has no CopilotChat.integrations module. Since I did not find a better solution to check if snacks.nvim picker is actually used as the picker (solely checking for snacks.nvim availability does not mean that it's picker is actually configured and used, contrary to telescope or fzf-lua), I tried finding something to find out, which is up for debate. Second, the create_mapping() function now checks for availability and compatibility of the active picker with CopilotChat integrations and gracefully warn users if it's not.

…handling

The change improves how CopilotChat selects and validates UI pickers by:
- Adding a dedicated function to determine the active picker
- Attempt at checking if snacks.nvim is configured as the UI selector
- Adding more robust error handling with descriptive messages
Copy link

github-actions bot commented Jan 26, 2025

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

  • README is 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 opts table rather than setting things up with the config function.

  • Proper usage of specs table for all specs that are not dependencies of a given plugin (not applicable for recipes or packs).

@azdanov
Copy link
Contributor

azdanov commented Feb 2, 2025

Looks good, but I don't understand most of it (low vim skills on my side) 😄

Copy link
Member

@mehalter mehalter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Thanks so much! :shipit:

@mehalter mehalter merged commit 10dce6c into AstroNvim:main Feb 4, 2025
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants