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.
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
[Spec] Settings Model - Actions #9428
[Spec] Settings Model - Actions #9428
Changes from 4 commits
3905c49
40f817b
f1efe1a
75f486b
de7cba9
71060b9
71ee4ca
02dd1b8
0485a87
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we mention layering here too? Because the layering more applies to the container of objects than it does the individual
Action
s. Like, when you havethen we'll need to first set the
KeyChordText
of the copy action to "ctrl+a", but then when we go to replacecopy
in the keymap withpaste
, we'll need to clear thatcopy
'sKeyChordText
when we replace it withpaste
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a layering section for the defaults.json and settings.json layering.
In an event like you described above where both occur in the same layer, my plan is to keep "copy" in the action list, but actually have "paste" be bound to ctrl+a. Serialization-wise, we'll only output:
I think this is what our current actions model does, because we just iterate over all of our actions and add them to the command palette independently of their key chord.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So to be clear - "update the conflicting one" means something like "If a subsequent command has the same
Keys
as an existing one, we'll remove theKeys
from the existing one, then update the_KeyMap
to point at the subsequent command (instead of the original)"For
Name
s, we don't really need to remove theName
from the old command in the_NameMap
, right?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed
_NameMap
from the spec so resolving.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NameMap is still in the spec in the public interface for ActionMap..?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we still need a
NameMap
exposed to the projected type for the Command Palette. There's no (easy) way around that because the command palette needs to expand the iterable commands over in TermApp. So the process looks something like this:Internally (to ActionMap), we won't be updating a
_NameMap
as we add more actions. It's just not worth it because we only want each action to appear once (and the_ActionMap
already keeps track of that).