Skip to content

Conversation

@deathbeam
Copy link
Collaborator

This refactors the management of source and sticky prompt logic by moving it from the main module to the chat window implementation. The CopilotChat.source and sticky state are now encapsulated within the CopilotChat.ui.chat.Chat class, providing a cleaner separation of concerns and reducing global state. All related methods and type annotations have been updated accordingly. The sticky prompt insertion and retrieval logic is now handled via get_sticky and set_sticky methods on the chat window, and the source window/buffer is managed through get_source and set_source methods. This change also removes the sticky toggle mapping and updates documentation and function signatures for consistency.

BREAKING CHANGE: get_source, and set_source methods moved to require('CopilotChat').chat

This refactors the management of source and sticky prompt logic by moving
it from the main module to the chat window implementation. The
`CopilotChat.source` and sticky state are now encapsulated within the
`CopilotChat.ui.chat.Chat` class, providing a cleaner separation of
concerns and reducing global state. All related methods and type
annotations have been updated accordingly. The sticky prompt insertion
and retrieval logic is now handled via `get_sticky` and `set_sticky`
methods on the chat window, and the source window/buffer is managed
through `get_source` and `set_source` methods. This change also removes
the sticky toggle mapping and updates documentation and function
signatures for consistency.

BREAKING CHANGE: get_source, and set_source methods moved to require('CopilotChat').chat
@deathbeam deathbeam merged commit 1ff0bb3 into CopilotC-Nvim:main Oct 23, 2025
4 checks passed
@deathbeam deathbeam mentioned this pull request Oct 23, 2025
7 tasks
@Hlanden
Copy link

Hlanden commented Oct 27, 2025

Hi @deathbeam,

I tend to use the toggle_sticky quite a lot. How do I implement this behavior after this refactor?

@deathbeam
Copy link
Collaborator Author

Hi @deathbeam,

I tend to use the toggle_sticky quite a lot. How do I implement this behavior after this refactor?

It was mostly overcomplicated implementation, basically you just get current line at cursor and either prepend > to it if it doesnt start with > or if it does delete the line, its probs like 5 lines of code. The reason why it was so overcomplicated here because I had to add bunch of checks for misuse but it wasnt worth maintaining so dropped it

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.

2 participants