<h1 align="center">
<a href="https://kotlin-inquirer.github.io/kotlin-inquirer/">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/kotlin-inquirer-logo.png" width="40%"/>
</a>
</h1>
[![example workflow](https://github.com/kotlin-inquirer/kotlin-inquirer/actions/workflows/gradle.yml/badge.svg)](https://github.com/kotlin-inquirer/kotlin-inquirer/actions/workflows/gradle.yml)
[![Apache License V.2](https://img.shields.io/badge/license-Apache%20V.2-blue.svg)](https://github.com/kotlin-inquirer/kotlin-inquirer/blob/master/LICENSE)
[![](https://jitpack.io/v/kotlin-inquirer/kotlin-inquirer.svg)](https://jitpack.io/#kotlin-inquirer/kotlin-inquirer)
[![codecov](https://codecov.io/gh/kotlin-inquirer/kotlin-inquirer/branch/master/graph/badge.svg?token=S4v5ziYYpA)](https://codecov.io/gh/kotlin-inquirer/kotlin-inquirer)
[![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin)
> A collection of common interactive command line user interfaces written in [![Pure Kotlin](https://img.shields.io/badge/100%25-kotlin-blue.svg)](https://kotlinlang.org/) inspired by [Inquirer.js](https://github.com/SBoudrias/Inquirer.js "Inquirer.js")
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/pizza.gif?raw=true" width="90%"/>
</p>
## :rocket: Run Demo Using [kscript](https://github.com/holgerbrandl/kscript "kscript")
Remote scriplet [raw-URL](https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/scripts/pizza.kts
"pizza.kts")
```
kscript https://bit.ly/kotlin-inquirer-pizza
```
Or clone it
```
git clone https://github.com/kotlin-inquirer/kotlin-inquirer.git
cd kotlin-inquirer
kscript ./scripts/pizza.kts
```
Or without kscript
```
./gradlew shadowJar
java -jar example/build/libs/kotlin-pizza.jar
```
## :cloud: Download
### Gradle
```groovy
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
```
```groovy
dependencies {
implementation 'com.github.kotlin-inquirer:kotlin-inquirer:0.1.0'
}
```
## :clipboard: Usages
#### Confirm
```kotlin
val isDelivery: Boolean = KInquirer.promptConfirm(message = "Is this for delivery?", default = false)
println("Is Delivery: $isDelivery")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/confirm.gif?raw=true" width="90%"/>
</p>
------
#### Input
```kotlin
val comments: String = KInquirer.promptInput(message = "Any comments on your purchase experience?")
println("Comments: $comments")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/input.gif?raw=true" width="90%"/>
</p>
------
#### Input Numbers
```kotlin
val quantity: BigDecimal = KInquirer.promptInputNumber(message = "How many do you need?")
println("Quantity: $quantity")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/input_numbers.gif?raw=true" width="90%"/>
</p>
------
#### Input Password
```kotlin
val password: String = KInquirer.promptInputPassword(message = "Enter Your Password:", hint = "password")
println("Password: $password")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/input_password.gif?raw=true" width="90%"/>
</p>
------
#### Input Password custom mask
```kotlin
val passwordMasked: String = KInquirer.promptInputPassword(
message = "Enter Your Password:",
hint = "password",
mask = "�か"
)
println("Password: $passwordMasked")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/input_password_masked.gif?raw=true" width="90%"/>
</p>
------
#### List
```kotlin
val size: String = KInquirer.promptList(message = "What size do you need?", choices = listOf("Large", "Medium", "Small"))
println("Size: $size")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/list.gif?raw=true" width="90%"/>
</p>
------
#### List with more options
```kotlin
val continent: String = KInquirer.promptList(
message = "Select a continent:",
choices = listOf(
"Asia",
"Africa",
"Europe",
"North America",
"South America",
"Australia",
"Antarctica",
),
hint = "press Enter to pick",
pageSize = 3,
viewOptions = ListViewOptions(
questionMarkPrefix = "��",
cursor = " �� ",
nonCursor = " ",
)
)
println("Continent: $continent")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/list_view_options.gif?raw=true" width="90%"/>
</p>
------
#### Checkbox
```kotlin
val toppings: List<String> = KInquirer.promptCheckbox(
message = "What about the toppings?",
choices = listOf(
"Pepperoni and cheese",
"All dressed",
"Hawaiian",
),
)
println("Toppings: $toppings")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/checkbox.gif?raw=true" width="90%"/>
</p>
------
#### Checkbox with more options
```kotlin
val colors: List<String> = KInquirer.promptCheckbox(
message = "Which colors do you prefer?",
choices = listOf(
"Red",
"Green",
"Blue",
"Yellow",
"Black",
"White",
),
hint = "pick a color using spacebar",
maxNumOfSelection = 3,
minNumOfSelection = 2,
pageSize = 3,
viewOptions = CheckboxViewOptions(
questionMarkPrefix = "��,
cursor = " �� ",
nonCursor = " ",
checked = "��",
unchecked = "��",
)
)
println("Colors: $colors")
```
<p align="center">
<img src="https://raw.githubusercontent.com/kotlin-inquirer/kotlin-inquirer/master/assets/checkbox_view_options.gif?raw=true" width="90%"/>
</p>
------
### :crystal_ball: Roadmap
#### Components
- [x] Confirm
- [x] Input
- [x] Input Numbers
- [x] Input Password
- [x] List
- [x] Checkbox
- [x] Input validation error message
- [x] Support Hint
- [x] Better package name
- [x] Add examples for `ViewOption`
- [ ] Support List/Checkbox Fuzzy search
- [ ] Support List/Checkbox autocomplete
- [ ] Add DSL support
- [ ] Consider non static function for prompts
#### Operation
- [x] Examples
- [x] Logo
- [x] GIFs
- [x] codecov
- [ ] Maven Central
没有合适的资源?快使用搜索试试~ 我知道了~
基于 Kotlin 的常见交互式命令行用户界面集合.zip
共56个文件
gif:17个
kt:16个
yml:10个
需积分: 5 0 下载量 59 浏览量
2024-07-31
20:06:59
上传
评论
收藏 815KB ZIP 举报
温馨提示
基于 Kotlin 的常见交互式命令行用户界面集合
资源推荐
资源详情
资源评论
收起资源包目录
基于 Kotlin 的常见交互式命令行用户界面集合.zip (56个子文件)
kotlin-inquirer-master
gradle.properties 22B
gradle
wrapper
gradle-wrapper.jar 54KB
gradle-wrapper.properties 202B
.travis.yml 72B
_config.yml 47B
.github
workflows
gradle.yml 388B
assets
list.gif 19KB
list-multi.yml 6KB
kotlin-pizza.gif 109KB
input-number.yml 4KB
input_password_masked.gif 24KB
input-password.yml 4KB
list-multi-component.gif 162KB
list_view_options.gif 46KB
input-number-component.gif 65KB
checkbox_view_options.gif 52KB
kotlin-inquirer-logo.png 23KB
checkbox.gif 24KB
input.yml 4KB
list-component.gif 57KB
input-password-component.gif 78KB
confirm.yml 4KB
confirm-component.gif 50KB
confirm.gif 12KB
input_numbers.gif 11KB
list.yml 4KB
input_password.gif 13KB
input.gif 14KB
pizza.yml 10KB
input-component.gif 82KB
pizza.gif 125KB
src
test
kotlin
com
github
kinquirer
components
ConfirmTest.kt 2KB
InputTest.kt 5KB
TestsHelper.kt 344B
CheckboxTest.kt 6KB
ListTest.kt 4KB
main
kotlin
com
github
kinquirer
KInquirer.kt 1KB
components
Confirm.kt 2KB
Checkbox.kt 7KB
Input.kt 4KB
List.kt 5KB
core
Model.kt 1KB
Component.kt 213B
ReaderHandler.kt 2KB
AnsiOutput.kt 1KB
LICENSE 11KB
gradlew.bat 2KB
gradlew 5KB
.gitignore 32B
example
src
main
kotlin
Pizza.kt 2KB
Usages.kt 3KB
build.gradle.kts 475B
README.md 6KB
settings.gradle.kts 58B
build.gradle.kts 1KB
scripts
pizza.kts 2KB
共 56 条
- 1
资源评论
t0_54coder
- 粉丝: 2375
- 资源: 1629
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功