Skip to content

About

LemMinX XML language server with lemminx-maven for Neovim: pom.xml completion, hover and diagnostics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

lemminx-maven.nvim

把 LemMinX 和 lemminx-maven 放在同一个 classpath 下启动的 Neovim 插件,给 pom.xml 提供依赖、插件、属性的补全、悬停和诊断,同时保留普通 XML 的功能。

需要 Neovim 0.11+(vim.lsp.config)和 JDK 17+。

Nvim Maven

安装 jar

不用 VSCode 的话,直接执行:

:LemminxMavenInstall

这个命令会从 Eclipse 官方 Maven 仓库(repo.eclipse.org)下载最新版的 org.eclipse.lemminx-*-uber.jar 和 lemminx-maven-*-zip-with-dependencies.zip,解压到 stdpath("data")/lemminx-maven/。下载在后台进行,完成后会自动重启已经打开的 XML buffer 上的服务。需要 curl,以及 unzip 或 tar 其中之一。

也可以指定版本::LemminxMavenInstall 0.31.2 0.12.0(LemMinX 版本、lemminx-maven 版本)。

配置 auto_install = true 后,第一次打开 XML 文件时如果找不到 jar 就会自动下载。

如果想自己管理 jar,插件按下面的顺序查找:

用途 配置项 环境变量 兜底
LemMinX jar lemminx_jar / lemminx_home $LEMMINX_HOME :LemminxMavenInstall 目录 → ~/.vscode/extensions/redhat.vscode-xml-*/server
lemminx-maven 及其依赖 maven_jars / maven_home $LEMMINX_MAVEN_HOME lemminx_home → :LemminxMavenInstall 目录

所有 jar 都放在 $LEMMINX_HOME 一个目录里也可以:插件会优先选 *uber.jar 作为 LemMinX,其余 jar 都当作扩展(其中的 org.eclipse.lemminx-*.jar 会被排除)。classpath 上 LemMinX 排在第一位。

配置

lazy.nvim:

{
  "JavaHello/lemminx-maven.nvim",
  ft = { "xml", "xsd", "xsl", "xslt", "svg" },
  cmd = "LemminxMavenInstall",
  opts = {},
}

所有配置项和默认值:

require("lemminx_maven").setup({
  java_cmd = nil,       -- 默认用 $JAVA_HOME/bin/java,否则用 java
  lemminx_jar = nil,    -- LemMinX jar 的路径
  lemminx_home = nil,   -- 默认 $LEMMINX_HOME
  maven_home = nil,     -- 默认 $LEMMINX_MAVEN_HOME,否则用 lemminx_home
  maven_jars = nil,     -- 直接指定 lemminx-maven 的 jar 列表,不再自动查找
  extension_jars = nil, -- 其它 LemMinX 扩展 jar
  jvm_args = nil,       -- 例如 { "-Xmx1G" }
  settings = {},        -- LemMinX 的 settings,发送时放在 `xml` 下
  auto_install = false, -- 找不到 jar 时自动执行 :LemminxMavenInstall
  server = {},          -- 合并到 vim.lsp.config("lemminx-maven") 里,优先级最高
  auto_enable = true,   -- setup 时自动调用 vim.lsp.enable("lemminx-maven")
})

LSP 客户端的名字是 lemminx-maven,不会和 nvim-lspconfig 里的 lemminx 冲突。不过不要两个都启用,否则会同时跑两个 XML 服务。

on_attach、capabilities 之类的字段可以通过 server 传入,也可以写在 after/lsp/lemminx-maven.lua 里。

检查

:checkhealth lemminx_maven

About

LemMinX XML language server with lemminx-maven for Neovim: pom.xml completion, hover and diagnostics.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages