Skip to content

Adopt new command query annotations in Debugger, class & package browsers#1202

Merged
blairmcg merged 1 commit intomasterfrom
blairmcg/querycommand2
Dec 16, 2023
Merged

Adopt new command query annotations in Debugger, class & package browsers#1202
blairmcg merged 1 commit intomasterfrom
blairmcg/querycommand2

Conversation

@blairmcg
Copy link
Copy Markdown
Contributor

Method history extension was using the deprecated mechanism for adding extension queryCommand: style methods, which can be replaced with the cleaner declarative association (specified using an annotation) between extension commands and a query handler.

This is an appropriate time to replace all the queryCommand: switch methods in the extended dev tools (debugger, class browser, method browser and package browser) too.

Create a common pattern for the context sensitive commands (browse-it, inspect-it, accept-it, etc) and provide the majority of this at the SmalltalkToolShell level. Individual tools implement a mapping function to return the live selector for the context sensitive command, e.g. based on subview focus. They then implement the commands to which the generic/context-sensitive command is matched, and associate these with query handlers.

A number of bugs and inconsistencies in the enablement/action of the commands became much more obvious with the new mechanism, and were fixed.

Further refinement of new command querying ClassSelector.

Remove the interim mechanism for declaring additional queryCommand: methods originally introduced to replace the legacy mechanism. This is unnecessary as it isn't required for backwards compat (the legacy mechanism still works), and it is inferior to the individual command query annotations. The legacy mechanism is now deprecated.

…sers

Method history extension was using the deprecated mechanism for adding
extension queryCommand: style methods, which can be replaced with the
cleaner declarative association (specified using an annotation) between
extension commands and a query handler.

This is an appropriate time to replace all the queryCommand: switch methods
in the extended dev tools (debugger, class browser, method browser and
package browser) too.

Create a common pattern for the context sensitive commands (browse-it,
inspect-it, accept-it, etc) and provide the majority of this at the
SmalltalkToolShell level. Individual tools implement a mapping function
to return the live selector for the context sensitive command, e.g.
based on subview focus. They then implement the commands to which the
generic/context-sensitive command is matched, and associate these with
query handlers.

A number of bugs and inconsistencies in the enablement/action of the
commands became much more obvious with the new mechanism, and were fixed.

Further refinement of new command querying ClassSelector.

Remove the interim mechanism for declaring additional queryCommand:
methods originally introduced to replace the legacy mechanism. This is
unnecessary as it isn't required for backwards compat (the legacy mechanism
still works), and it is inferior to the individual command query
annotations. The legacy mechanism is now deprecated.
@blairmcg blairmcg merged commit bc08ad8 into master Dec 16, 2023
@blairmcg blairmcg deleted the blairmcg/querycommand2 branch December 16, 2023 11:52
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.

1 participant