Commit Graph

846 Commits

Author SHA1 Message Date
Janne Valkealahti
a4edc4e16f Polish 2023-07-23 14:19:48 +01:00
Janne Valkealahti
fe8c8646a1 Mouse click selects in ListView
- Add binding to click and select item from index
  if it's in bounds.
- Relates #806
2023-07-23 14:05:09 +01:00
Janne Valkealahti
d4bfe610a9 Fix key handling in AppView
- Now offering to menu if it has focus so that it
  can do its things. Essentially if menu is visible
  it take keys.
- Relates #807
2023-07-23 09:04:29 +01:00
Janne Valkealahti
3a2d7d4817 Restore focus after returning from scenario
- Relates #811
2023-07-22 17:27:21 +01:00
Janne Valkealahti
4b927be807 Hide statusbar in a catalog app
- Can clear items from a GridView
- Full refactor for AppView now using GridView internally
  and can hide/show menu/status.
- Add function key bindings f1-f10
- Modify catalog app to use new features in an AppView, listen
  F10 key to toggle statusbar visibility.
- Relates #805
- Relates #807
- Relates #811
2023-07-22 14:21:10 +01:00
Janne Valkealahti
cd77272091 Add test for GridView row layout
- Relates #805
2023-07-22 07:52:42 +01:00
Janne Valkealahti
a19a50b3f3 Polish GridView
- Add some new tests
- Add javadocs
- Relates #805
2023-07-21 18:06:57 +01:00
Janne Valkealahti
c074af314b Add focused color and style for BoxView title
- May define focused color and style for title
  which overrides normal color and style if set.
- Use these in a catalog app.
- Relates #804
2023-07-21 09:26:31 +01:00
Janne Valkealahti
748f41103d Fix removed deprecation
- Fix property values which doesn't exist in gradle zip task anymore.
- Relates #821
2023-07-21 08:09:24 +01:00
Janne Valkealahti
9de09995de Upgrade spring-boot 3.2.0-M1
- Fixes #787
2023-07-20 18:45:41 +01:00
Janne Valkealahti
a55034e454 Remove unused repo from buildSrc 2023-07-20 18:45:33 +01:00
Janne Valkealahti
0b08e98128 Create docsarchive configuration before convention
- Zip dist didn't get published and looks like docsarchive
  needs to exist before ArtifactoryConventions is applied.
- Relates #821
2023-07-20 17:11:12 +01:00
Janne Valkealahti
aa9baf4eeb Use custom configuration name for docs zip
- With gradle 8.3 artifactory publish started to fail with
  archives configation. Change that to docsarchive which
  is created in a RootPlugin.
- Relates #821
2023-07-20 16:02:35 +01:00
Janne Valkealahti
fb9bdc4d3a Upgrade gradle 8.3.0-RC1
- Fixes #821
2023-07-20 14:55:23 +01:00
Janne Valkealahti
eab938af8a Polish error messages
- Polish mandatory option message by using
  same format as in 3.0.x. (old parser)
- Remove prefixed code/position parts from
  all messages coming from a parser. (new parser)
- Fixes #815
2023-07-19 08:11:58 +01:00
Janne Valkealahti
d053fab383 Expose column and row min setting in GridView
- Add method setMinSize for setting minimum width for columns
  and minimum height for rows.
- Relates #805
2023-07-16 18:13:39 +01:00
Janne Valkealahti
3ac48bf15a Add missing GridView tests
- Add some new tests and reorg into nested model.
- Relates #805
2023-07-16 13:33:21 +01:00
Janne Valkealahti
a0bdbfc033 Initial terminal ui implementation
- 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
2023-07-15 16:42:39 +01:00
Janne Valkealahti
da04202822 Modify gitignore 2023-07-15 16:24:46 +01:00
Janne Valkealahti
625619fc92 Add primary command sample
- New spring-shell-sample-catalog which is a skeleton meant for
  future view overhaul work.
- Relates #755
2023-07-05 10:35:30 +01:00
Janne Valkealahti
6fd1a1c78a Add primary command docs
- Relates #755
2023-07-05 10:34:17 +01:00
Janne Valkealahti
32675c5e73 Add primary command feature
- NonInteractiveShellRunner can now shortcircuit into primary command
  just running it and passing args.
- Add hooks into autoconfig so that this is easy to configure.
- Relates #755
2023-07-05 10:33:55 +01:00
Janne Valkealahti
4ee1907f00 Add run-name to release workflow 2023-06-27 07:42:31 +01:00
Janne Valkealahti
770d4e373c Add timeout for native build 2023-06-26 13:07:42 +01:00
Janne Valkealahti
34aa01a21d Fix e2e workflow 2023-06-26 09:40:49 +01:00
Janne Valkealahti
49a791a0fa Fix e2e workflow 2023-06-26 07:28:19 +01:00
Janne Valkealahti
df40964e7b Document CommandNotFoundMessageProvider
- Relates #778
2023-06-23 06:30:30 +01:00
Janne Valkealahti
304566becd Add run-name for e2e 2023-06-23 05:45:05 +01:00
Janne Valkealahti
cdd703efa4 Fix alias usage with Command annotation
- Fix alias command extraction from existing @Command
  annotations so that we actually get multiple aliases
  defined if more than one defined on a method level.
- Fix rendering issue in a help stg template when
  multiple aliases exists.
- Fixes #796
2023-06-22 16:00:00 +01:00
Janne Valkealahti
811f1f9a55 Fix parser handling of positional args
- Change to have better support for args like:

    "--arg1 a --arg2 b"
    "--arg1 a --arg2 b c"
    "--arg1 a c --arg2 b c"
    "c --arg1 a --arg2 b"

  where option can have default values and position of
  positional args doesn't matter that much.
- Make parser to be aware of if it's handling last option
  so that we can differentiate if error can be given i.e.
  with too many args, etc.
- Fixes #795
2023-06-22 09:46:01 +01:00
Janne Valkealahti
9ef509a4da Make command not found configurable
- New CommandNotFoundResultHandler which handles
  CommandNotFound to be able to customize error shown.
- New CommandNotFoundMessageProvider which is a plain
  function given a "context" and returns a string.
  Context contains common info to provide better
  error messages.
- Default provider gives same message but
  removes long stacktrace(which previously originated
  from a common ThrowableResultHandler.
- Relates #778
2023-06-20 11:31:19 +01:00
Janne Valkealahti
38f9126aeb Add better support for modified option names
- Longnames in a command option if modified via
  name modifier didn't provide enough backmapping
  info for command execution experience being accurate.
- Add new getLongNamesModified() into CommandOption
  which is populated if name modifier is used.
- Add more hints in CommandExecution for modified
  option names.
- This should bring annotation, legacy annotation
  and programmatic commands up to date.
- Fixes #777
2023-06-19 12:30:29 +01:00
Janne Valkealahti
c27b85fb0e Split sample app
- spring-shell-sample-commands and spring-shell-sample-e2e
- Needed changes in e2e tests and workflow
- Fixes #754
2023-06-15 10:49:52 +01:00
Janne Valkealahti
71ed64670f Schedule 3.1.x e2e 2023-06-15 07:21:04 +01:00
Janne Valkealahti
7381095741 Start working on Spring Shell 3.2 2023-06-14 16:23:27 +01:00
Janne Valkealahti
7e634bb80e Polish 2023-06-13 15:45:38 +01:00
github-actions[bot]
e8443486c3 Next development version 2023-06-13 13:29:18 +00:00
Janne Valkealahti
3d39ef3518 Discard empty args
- Take 2 of #763
- Revert changes in 06e89dcca3
  what comes for `ExtendedDefaultParser`.
- Discard empty args in a `Shell` coming from `ExtendedDefaultParser`
- `ExtendedDefaultParserTests` has more tests, some commented out, to
  see some differences for jline default parser impl. Something
  to get handled in #517
2023-06-12 10:12:52 +01:00
Janne Valkealahti
042d56e7e3 Add HandlerMethodArgumentResolver for @Option
- New OptionMethodArgumentResolver which is similar
  than ShellOptionMethodArgumentResolver for @ShellOption.
- Add missing annotation commands for e2e test command.
- Fixes #767
2023-06-07 15:28:57 +01:00
Janne Valkealahti
afacf86ac5 Add jna native hints for linux
- Need for libjnidispatch.so, CLibrary$termios
  and CLibrary$winsize.
- Fixes #762
2023-06-07 14:13:35 +01:00
Janne Valkealahti
06e89dcca3 ExtendedDefaultParser should not add empty arguments
- Fixes issue when last "word" is within quotes and
  cursor is at the end of a line which caused empty
  "word" string in an argument list.
- This then caused i.e. string option to have a collection
  as an input(if no arity settings used) and via
  spring conversions a comma were added.
- Fixes #763
2023-06-07 08:28:17 +01:00
Janne Valkealahti
58e3a5eec6 Add central close workflow 2023-06-05 12:14:08 +01:00
Janne Valkealahti
1e68e3ed65 Update labels 2023-06-02 15:36:45 +01:00
Janne Valkealahti
65ef14856e Update schedule-e2e workflow 2023-06-02 06:29:34 +01:00
Janne Valkealahti
36712e4ac2 Update schedule-e2e workflow 2023-06-02 06:25:34 +01:00
Janne Valkealahti
f2a48a061d Test help command with e2e tests
- Fixes #756
2023-06-02 06:19:12 +01:00
Janne Valkealahti
af34526e82 Add hints for Availability targets
- Annotate ShellComponent with @Reflective and use custom
  AvailabilityReflectiveProcessor to find possible method
  targets returning Availability.
- Fixes #747
2023-06-01 21:17:29 +01:00
Janne Valkealahti
f6f979a04c Update e2e readme 2023-06-01 09:08:16 +01:00
Janne Valkealahti
f2240a2c5e Schedule e2e in main and 3.0.x 2023-06-01 08:43:31 +01:00
Janne Valkealahti
c125c46010 Add short options into valid tokens
- Add short options as valid tokens in a `CommandModel` so that Lexer
  create tokens with accurate info and doesn't then cascade this issue
  in Ast and Parser.
- Previously with a command `command -a aaa -b bbb` tokenisation resulted
  `COMMAND OPTION ARGUMENT ARGUMENT ARGUMENT` with multiple short options
  while it should have been `COMMAND OPTION ARGUMENT OPTION ARGUMENT`.
- Relates #757
2023-05-31 17:28:21 +01:00