-
Notifications
You must be signed in to change notification settings - Fork 20
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
feat!: rewrite grapple #89
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Diffing assumes that all tags are removed and then re-added. This makes it easier to resolve at the cost of a larger performance impact. This should be negligible since container should not have many tags at any given point in time. Implement window quickfix method. Allow users to send tags to a quickfix list.
Window must know as little as possible about Content. The same goes for keymaps. However, there are actions available (i.e. tag selection) that must know about both the vim buffer and vim window. The revised models are as follows: The Window can render at most one Content at a time The Window can #attach or #detach from Content The Window can #update and #render Content The Content does not hold state for any vim constructs and must receive them from Window The Content uses #update to update internal state The Content uses #render to publish its state to a vim buffer The Content uses #attach to call hooks The Content uses #detach to reconcile modified entries A Content hook will receive a window for access to ui information A Content hook will receive a window to create keymaps or autocommands A Content hook will receive the content itself to perform actions
4 tasks
This was referenced Mar 1, 2024
Closed
Open
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
This is a ground-up rewrite of Grapple. There was a lot of issues with the previous design that made maintenance/modification very difficult. This new version cleans up the design model and brings several new features to the table.
BREAKING Changes
.json
Grapple
user command instead of manyGrappleTag
is nowGrapple tag
file_path
is renamed topath
name
are now treated like other tags, which means they are cycled through and are reorderablegrapple.scope_definition
)Grapple.define_scope
grapple.scope
module have been removedGrapple.invalidate
has been renamed toGrapple.clear_cache
Changes
oil://
)GrappleUpdate
user event when an tag update occursnofile
) exclusionsOngoing
Closes #70 #71 #73 #87
Incorporates #77 #78 #80 #81 #84
Not included #66 #82