尧图精选

Onivim 2 的 Java 开发环境配置指南:通过 redhat.java 扩展接入 LSP 语言服务

🕒 发布时间:2026/9/28 3:46:39 📁 来源:尧图网络
开发工具代码编辑器桌面应用【免费下载链接】oni2Native, lightweight modal code editor项目地址https://gitcode.com/gh_mirrors/on/oni2点击查看免费下载Onivim 2本项目代号 oni2是一款原生、轻量的模态代码编辑器它通过加载 VS Code 生态的扩展来获得语言智能能力。本文以 docs/docs/languages/java.md 为骨架系统讲解如何在 Onivim 2 中启用 Java 支持包括redhat.java扩展的安装命令、JDK 11 前置要求、Maven/Gradle 项目的打开方式、状态栏验证方法以及背后 CLI 安装链路与语言特性模块的源码实现帮助开发者快速搭建可用的 Java 开发环境。Java 支持的核心机制通过扩展接入语言服务Onivim 2 本身不内置 Java 编译器或语言服务它的 Java 支持完全依赖 Open VSX Registry 上发布的redhat.java扩展即 VS Code 中广为人知的 Language Support for Java。该扩展是红帽Red Hat维护的 Java 语言服务器Eclipse JDT.LS的客户端封装负责提供完整的 JVM 语言智能。从仓库源码可以看到Onivim 2 的扩展目录服务默认对接的正是 Open VSXsrc/Service/Extensions/Catalog.re 中定义了目录 API 基地址let baseUrl https://open-vsx.org/apisrc/Service/Extensions/Management.re 中的installFromOpenVSX会先解析扩展 ID再向目录查询详情Catalog.details拿到downloadUrl后下载并安装。因此安装 Java 支持的实质就是通过 CLI 让 Onivim 2 从 Open VSX 目录下载并部署redhat.java扩展再由扩展内的语言服务器进程为编辑会话提供诊断、补全等能力。官方支持的语言特性清单原文档明确列出的redhat.java扩展支持特性如下Onivim 2 通过其 Exthost 扩展宿主将这些能力接入编辑器Code completion代码补全键入时基于语言服务器提供的方法、类、字段补全Diagnostics诊断实时报告编译错误、警告展示在编辑器与诊断面板中Go-to definition跳转定义从符号使用处跳转到其声明位置Hover悬停信息鼠标悬停或键盘触发时展示类型签名、文档注释Signature Help签名帮助输入方法参数时提示形参列表与文档Symbol search符号搜索在工作区范围内搜索类、方法等符号。这些能力在 Onivim 2 源码中均有对应的语言特性模块位于 src/Feature/LanguageSupport/ 目录下包括Completion.re、Definition.re、DocumentSymbols.re、Hover.re、SignatureHelp.re、References.re、Rename.re、CodeActions.re、CodeLens.re、Formatting.re等每个模块负责管理对应特性的状态机与交互。例如src/Feature/LanguageSupport/Definition.re 定义GotoDefinition(SplitDirection.t)命令收到DefinitionAvailable后通过Outmsg.OpenFile打开目标文件并定位到定义位置支持左右分屏方向src/Feature/LanguageSupport/SignatureHelp.re 维护activeSignature/activeParameter状态用于在多个候选签名与参数间切换src/Feature/Editor/EditorConfiguration.re 提供悬停行为配置项editor.hover.enabled默认开启与editor.hover.delay默认 300ms用于控制悬停信息的显示时机。安装前准备JDK 11 是硬性要求redhat.java扩展依赖 JVM 运行语言服务器因此安装前必须确保系统已安装 Java Development Kit。原文档明确Java 11 是必需版本。请通过java -version确认你的 JDK 满足要求若尚未安装或版本过低请先完成 JDK 11 的安装并正确配置JAVA_HOME与PATH否则扩展激活后语言服务可能无法启动相关特性补全、诊断等将不会生效。安装扩展一条 CLI 命令完成在终端中执行oni2 --install-extension redhat.javaOnivim 2 会解析redhat.java这个扩展 ID向 Open VSX 目录发起查询下载对应版本的 VSIX 内容并解压到用户扩展目录。这一流程在源码中有完整的实现链路CLI 参数定义src/CLI/Oni_CLI.re 中(--install-extension, setStringEffect(s InstallExtension(s)), )将参数映射为InstallExtension(string)消息入口分发见 src/bin_editor/Oni2_editor.re安装执行src/bin_editor/Cli.re 的installExtension调用扩展管理服务ExtM.install若安装失败会回退调用目录搜索ExtC.search并打印Did you mean one of these extensions?及候选扩展列表帮助用户纠正拼写下载与解压src/Service/Extensions/Management.re 的install函数判断参数若以.vsix结尾且本地文件存在则按本地路径安装否则走installFromOpenVSX从目录下载最终通过 Node 脚本install-extension.js见 src/Service/Extensions/Management.re完成部署。如果安装成功终端会输出Successfully installed extension: redhat.java之类的提示对应 src/bin_editor/Cli.re。相关 CLI 参数速查除了--install-extensionOnivim 2 的扩展管理还提供以下配套参数均定义在 src/CLI/Oni_CLI.re参数作用源码位置--install-extension id从 Open VSX 安装扩展也支持本地.vsix路径src/CLI/Oni_CLI.re--uninstall-extension id卸载指定扩展src/CLI/Oni_CLI.re--list-extensions列出已安装扩展src/CLI/Oni_CLI.re--query-extension id查询扩展信息src/CLI/Oni_CLI.re--extensions-dir dir覆盖扩展安装目录src/CLI/Oni_CLI.re--proxy-server url为下载与目录请求配置 HTTP/HTTPS 代理src/CLI/Oni_CLI.re卸载由 src/bin_editor/Cli.re 的uninstallExtension实现成功时输出Successfully uninstalled extension: id。需要说明的是这些 CLI 参数以当前仓库源码为准不同发行版本的具体可用性与行为请以对应版本的oni2 --help输出为准。打开项目识别 Maven / Gradle 构建文件安装完成后需要让语言服务器明确项目根在哪里。原文档给出的操作是打开一个目录层级中包含 Maven 或 Gradle 构建文件的文件夹。Maven 项目目录中存在pom.xmlGradle 项目目录中存在build.gradle或build.gradle.kts等。redhat.java扩展基于这些构建文件推断类路径、依赖与模块结构从而提供准确的诊断与补全。因此首次使用时请通过 Onivim 2 打开项目根目录而非单个文件确保构建文件位于被打开目录的层级之内。验证安装是否成功状态栏的 thumbs up原文档指出如果一切顺利编辑器状态栏会出现一个thumbs up竖起大拇指的图标表示 Java 语言服务器已成功启动并就绪。这是确认redhat.java扩展正常激活、JDT.LS 进程连接成功的可视化标志。如果状态栏没有出现该图标可按以下顺序排查确认 JDK 版本满足 Java 11 要求java -version重新执行oni2 --install-extension redhat.java观察终端是否输出成功信息使用oni2 --list-extensions确认扩展已列入已安装列表确认打开的是包含 Maven/Gradle 构建文件的目录而非零散文件。底层原理扩展激活与语言特性的工作方式从源码结构看Java 支持的整体数据流可以概括为三个阶段供对实现细节感兴趣的读者深入扩展发现与贡献点解析Onivim 2 的扩展宿主扫描已安装扩展的package.json解析其contributes贡献点语言、语法、命令等见 src/Exthost/Extension/Contributions.re 与 src/Exthost/Extension/Manifest.re按需激活当打开 Java 文件触发语言选择时扩展被激活语言服务器进程随之启动。扩展激活状态由 src/Feature/Extensions/Model.re 中的ActivateExtension/DidActivateExtension消息跟踪markActivated语言特性消费redhat.java注册的补全、悬停、签名帮助、跳转定义、符号搜索等 provider 通过 Exthost 消息通道向编辑器回传数据由 src/Feature/LanguageSupport/ 下的各模块渲染为补全列表、悬停浮窗、签名提示与跳转结果。语言与文件扩展名的映射关系则统一记录在 src/Exthost/LanguageInfo.re含extToLanguage、fileNameToLanguage等映射表。需要注意的是以上描述基于当前仓库源码的实现结构推断得出属于对 Onivim 2 扩展体系的通用说明redhat.java内部 JDT.LS 的具体行为由其自身维护不在本仓库代码范围内。小结在 Onivim 2 中启用 Java 开发能力只需三步安装 JDK 11 → 执行oni2 --install-extension redhat.java→ 打开含 Maven/Gradle 构建文件的目录并以状态栏 thumbs up 确认语言服务器就绪。通过 docs/docs/languages/java.md 这份官方指南与仓库中的 CLI 及语言特性实现开发者既可以快速上手也可以进一步阅读 src/Service/Extensions/Management.re 与 src/Feature/LanguageSupport/ 理解扩展安装与语言服务集成的完整链路。赞分享开发工具代码编辑器桌面应用【免费下载链接】oni2Native, lightweight modal code editor项目地址https://gitcode.com/gh_mirrors/on/oni2点击查看免费下载相关推荐Onivim 2 Go 语言开发配置指南基于 vscode-go 扩展与 gopls 语言服务器Onivim 2 Go 语言开发配置指南基于 vscode go 扩展与 gopls 语言服务器 本指南介绍如何在 Onivim 2 中搭建完整的 Go 语言开发工具代码编辑器桌面应用Onivim 2 中配置 Reason 与 OCaml 开发环境语法支持、ocaml-lsp 接入与 esy/opam 项目实战Onivim 2 中配置 Reason 与 OCaml 开发环境语法支持、ocaml lsp 接入与 esy/opam 项目实战 Onivim 2oni2开发工具代码编辑器桌面应用语言服务器协议LSPVS Code 语言扩展开发指南语言服务器协议LSPVS Code 语言扩展开发指南 本文详细介绍了语言服务器协议LSP在VS Code扩展开发中的核心原理与实践应用。内容涵盖LSP示例工程上一篇Bangumi追番管理工具实操指南从克隆到上手完整走一遍下一篇Mem Reduct 任务栏通知3 个开关搞定内存提醒创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →