Skip to content

JavaHello/spring-boot.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English

Spring Boot Nvim

参考 VScode Spring Boot 插件, 将它的部分功能集成到 Neovim 中。

  • 查找使用了 Spring 注解的 Bean
  • 查找 Web Endpoints。
  • application.properties, application.yml 文件补全提示, 以及跳转。
  • 代码片段补全。
  • Code Action

部分功能可能不完整,欢迎提交 PR。

安装

  • lazy.nvim
      {
        "JavaHello/spring-boot.nvim",
        ft = "java",
        dependencies = {
          "mfussenegger/nvim-jdtls", -- or nvim-java, nvim-lspconfig
          "ibhagwan/fzf-lua", -- 可选
        },
      }
  • Visual Studio Code 中安装VScode Spring Boot(可选的)

配置

spring-boot.nvim

  require('spring_boot').setup({})
  • 默认配置
      vim.g.spring_boot = {
        jdt_extensions_path = nil, -- 默认使用 ~/.vscode/extensions/vmware.vscode-spring-boot-x.xx.x
        jdt_extensions_jars = {
          "io.projectreactor.reactor-core.jar",
          "org.reactivestreams.reactive-streams.jar",
          "jdt-ls-commons.jar",
          "jdt-ls-extension.jar",
        },
      }
      require('spring_boot').setup({
        ls_path = nil, -- 默认使用 ~/.vscode/extensions/vmware.vscode-spring-boot-x.xx.x
        jdtls_name = "jdtls",
        log_file = nil,
        java_cmd = nil,
      })

nvim-jdtls

详细配置参考nvim-jdtls项目

local jdtls_config = {
  bundles = {}
}
-- 添加 spring-boot jdtls 扩展 jar 包
vim.list_extend(jdtls_config.bundles, require("spring_boot").java_extensions())

nvim-lspconfig

require('spring_boot').init_lsp_commands()
require("lspconfig").jdtls.setup {
  init_options = {
    bundles = require("spring_boot").java_extensions(),
  },
}

使用

  • 查找使用了 Spring 注解的 Bean
    :FzfLua lsp_live_workspace_symbols
    lsp_live_workspace_symbols