- With annotation(@Command) model it's now possible to just
add CommandContext and it will get resolved and doesn't
cause it to appear as an option.
- Fixes#779
- Revisit how alias commands are added using
@Command annotation when using if/or on class
and/or method level.
- With this change alias handling is more logical
and there's better tests and docs.
- Fixes#945
- This change makes single/multi same on an api level
where single selector used key/value map and multi
selector used list of SelectItem's.
- We still keep use of map on a single select but those
essentially go directly via SelectItem's.
- Fixes#946
- Category and scenario list views can now be focused with
ctrl+a/ctrl+s.
- Bind all keys with ctrl modifier
- Add "shortcut" concept to views which currently hooks to
hot keys.
- In a catalog app by using a "shortcut" then takes the key
event as a hot key, as it consumes resulting behaviour
is to focus.
- Move view initInternal away from constructor call to
require user to call init() which is not in a
View interface
- Relates #826
- InputView using viewcommands and has event for text change.
- Experimental way to handle tab navigation in a layout views.
- New viewcommands for tab navigation and moving cursor.
- Mouse click takes focus in AbstractView if no view command
binding.
- MultiInputViewScenario now shows tab navigation.
- Fixes#917
- StatusItem can now define a hotkey which is then
bound to its action.
- In catalog app replace use of raw key event to
item's hotkey for status bar visibility.
- Various doc updates.
- Relates #826
- This commit adds proof of concept work for terminal ui as is.
- Some things work, some don't but we need to start from somewhere.
Further development continues in a main.
- Essentially we are starting to have enough so that it merits to
move all this work into a main repo.
- Everything new is kept under org.springframework.shell.component.view
and will get revisiter later to find correct locations for some classes.
- Catalog sample has been modified to provide "showcase" app for
terminal ui features. This is a start while it already contains
some usefull scenarios.
- Relates #800
- Relates #801
- Relates #802
- Relates #803
- Relates #804
- Relates #805
- Relates #806
- Relates #807
- Relates #808
- Relates #809
- Relates #810
- Relates #811
- ShellTest now has fields which can be used to
change terminal default widht/height.
- Backed by properties so can be used with
`spring.shell.test.terminal-width` and
`spring.shell.test.terminal-height`.
- Fixes#656
- New OptionNameModifier which is just a Function<String,String> to
modify a name.
- Can be defined per option in CommandRegistration.
- Can be defined as global default as bean.
- Default implementation for common case types is enabled via boot's
config props under spring.shell.option.naming.case-type
- Support facilities for camel, kebab, snake and pascal conversions.
- Fixes#621
- New annotations ExceptionResolver and ExitCode
- New needed functionality is in classes ExceptionResolverMethodResolver
and MethodCommandExceptionResolver.
- Hook these annotations with StandardMethodTargetRegistrar and Shell classes
- Fixes#597