首页
/ JLine 3.30.0 发布:终端交互库的重大升级

JLine 3.30.0 发布:终端交互库的重大升级

2025-06-30 22:21:54作者:滑思眉Philip

JLine 是一个强大的 Java 库,专门用于处理控制台输入输出和命令行交互。它为开发者提供了丰富的终端功能支持,包括命令行编辑、历史记录、自动补全、语法高亮等特性,是构建交互式命令行工具的理想选择。

主要新特性

1. Nano 编辑器增强

JLine 3.30.0 为内置的 Nano 编辑器增加了可插拔的自动补全功能。这意味着开发者现在可以为 Nano 编辑器定制自己的补全逻辑,使其能够根据特定上下文提供智能提示,大大提升了编辑效率。

2. 鼠标支持改进

新版本增强了鼠标事件处理能力,现在支持多种鼠标事件格式,包括:

  • SGR 格式(标准终端鼠标报告)
  • URXVT 格式(rxvt 终端扩展)
  • SGR-Pixels 格式(像素级精确定位)

这使得 JLine 能够在更多终端环境下准确捕获和处理鼠标操作。

3. 终端颜色管理

新增了获取终端默认前景色和背景色的功能。开发者现在可以查询终端的默认颜色设置,从而创建更加协调一致的色彩方案,确保应用在各种终端环境下都能保持良好的视觉效果。

4. 密码输入增强

针对简单终端(dumb terminal)增加了密码掩码支持。即使在功能有限的终端环境下,密码输入也能得到适当的保护,不会明文显示。

5. 行号显示功能

在辅助提示符中增加了行号和当前行标记功能。这对于多行编辑特别有用,用户可以清楚地看到自己的编辑位置,特别是在处理长文本或复杂命令时。

重要改进与修复

1. 模块化与类加载

改进了在 Java 模块系统或 OSGi 环境下的类加载机制,确保在这些现代 Java 环境中也能正常工作。

2. 终端鼠标追踪

修复了鼠标追踪关闭功能的问题,现在可以正确地在不需要时关闭鼠标事件报告。

3. 历史记录处理

增强了对历史记录文件的处理能力,能够优雅地处理文件中的无效条目,避免因格式问题导致整个历史记录功能失效。

4. 屏幕终端改进

修复了屏幕宽度变化时的显示问题,确保在终端大小调整时内容能够正确重绘。

5. Windows 终端支持

改进了 Windows 终端下 Ctrl+Space 快捷键的处理,使其行为与其他平台保持一致。

文档与网站

JLine 3.30.0 带来了全新的官方网站,整合了全面的文档资源。项目文档得到了显著增强,包括:

  • 为 jline-builtins 模块添加了详尽的 Javadoc
  • 改进了 console 模块的文档
  • 为 org.jline.style 包添加了全面的 API 文档
  • 完善了终端和读取器相关的文档

构建与兼容性

项目构建系统升级到了 Ubuntu 22.04,CI 测试现在使用 JDK 22 和 24 进行验证,确保了对最新 Java 版本的支持。

总结

JLine 3.30.0 是一个功能丰富且稳定的版本,在终端交互的各个方面都有显著提升。无论是对于需要构建复杂命令行工具的专业开发者,还是希望为自己的应用添加简单交互功能的初学者,这个版本都提供了更强大、更可靠的工具集。特别是对鼠标支持、终端颜色管理和编辑器功能的改进,使得基于 JLine 开发的应用能够在更多环境下提供一致且优秀的用户体验。

登录后查看全文
热门项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
861
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K