Skip to content

nvim-java/nvim-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim-java

Neovim Lua Java Gradle Apache Maven

No need to put up with jdtls nonsense anymore. Just install and start writing public static void main(String[] args).

Features

  • ✅ Diagnostics & Auto Completion
  • ✅ Automatic DAP debug configuration
  • ❌ Running tests

Why

  • Uses nvim-lspconfig to setup jdtls
  • Realtime server settings updates is possible using neoconf
  • Everything necessary will be installed automatically (except JDKs)
  • Uses jdtls and auto loads jdtls plugins from mason.nvim
    • Supported plugins are,
      • lombok
      • java-test
      • java-debug-adapter
  • Typed & documented APIs
  • No callback hells I promise

How to Use

Pre-requisites

  • Python 3.9 - for running jdtls wrapper launch script

Install the plugin

Using lazy.nvim

return {
  'nvim-java/nvim-java',
  dependencies = {
    'nvim-java/nvim-java-core',
    'neovim/nvim-lspconfig',
    'williamboman/mason.nvim',
    'mfussenegger/nvim-dap',
  },
  event = 'VeryLazy',
  opts = {},
}

Setup JDTLS like you would usually do

require('lspconfig').jdtls.setup({})

Yep! That's all :)

APIs

DAP

  • config_dap - DAP is autoconfigured on start up, but in case you want to force configure it again, you can use this API
require('java').dap.config_dap()

Test

  • run_current_test_class - Run the test class in the active buffer
require('java').test.run_current_test_class()
  • debug_current_test_class - Debug the test class in the active buffer
require('java').test.debug_current_test_class()

Projects Acknowledgement

nvim-jdtls is a plugin that follows "Keep it simple, stupid!" approach. If you love customizing things by yourself, then give nvim-jdtls a try. I may or may not have copied some code ;-) Open source is beautiful!

Sponsor this project

Packages

 
 
 

Contributors

Languages