How to Setup Vim for Kotlin Development

This page summarizes the projects mentioned and recommended in the original post on dev.to

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
Nutrient - The #1 PDF SDK Library
Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.
nutrient.io
featured
  1. vim-plug

    :hibiscus: Minimalist Vim Plugin Manager

    Some examples are vim-plug, vundle, or, lazy.nvim.

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. vundle

    Vundle, the plug-in manager for Vim

    Some examples are vim-plug, vundle, or, lazy.nvim.

  4. coc.nvim

    Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.

    Neovim comes with a client. For Vim you will need to install one, such as CoC, LanguageClient-neovim, or vim-lsp.

  5. LanguageClient-neovim

    Language Server Protocol (LSP) support for vim and neovim.

    Neovim comes with a client. For Vim you will need to install one, such as CoC, LanguageClient-neovim, or vim-lsp.

  6. vim-lsp

    async language server protocol plugin for vim and neovim

    Neovim comes with a client. For Vim you will need to install one, such as CoC, LanguageClient-neovim, or vim-lsp.

  7. KotlinLanguageServer

    Kotlin code completion, diagnostics and more for any editor/IDE using the Language Server Protocol

    Java 11+ and Kotlin. Currently there is an open issue for Kotlin versions greater than 2.0.0. Downgrade if you have any issues.

  8. nvim-treesitter

    Nvim Treesitter configurations and abstraction layer

    Neovim could use the default regex based grammar that Vim uses for syntax highlighting. But I recommended installing treesitter. This uses a concrete syntax tree to provide more semantic meaning to tokens, allowing enriched (and faster) highlighting.

  9. Nutrient

    Nutrient - The #1 PDF SDK Library. Bad PDFs = bad UX. Slow load times, broken annotations, clunky UX frustrates users. Nutrient’s PDF SDKs gives seamless document experiences, fast rendering, annotations, real-time collaboration, 100+ features. Used by 10K+ devs, serving ~half a billion users worldwide. Explore the SDK for free.

    Nutrient logo
  10. kotlin-vim

    Kotlin plugin for Vim. Featuring: syntax highlighting, basic indentation, Syntastic support

    kotlin-vim is a reasonably popular plugin that provides syntax highlighting, among other functionalities. This enables highlighting by providing Vim a file of regex based Kotlin grammar. Once installed, it should enable syntax highlighting without further configuration.

  11. nvim-lspconfig

    Quickstart configs for Nvim LSP

    Neovim Install the nvim-lspconfig plugin to make configuration of the LSP client simpler. Then update your init.lua to tell Neovim which filetypes to use the language server for (i.e. .kt and .kts extensions). The LSP client will try to the start the sever by running the kotlin_language_server binary. You can directly point Neovim to the location of the binary, or include this directory in your $PATH.

  12. nvim-cmp

    A completion plugin for neovim coded in Lua.

    For this, we need to install a new completion engine: nvim-cmp. This engine uses completion “sources” (installed as separate dependencies) to populate the completion menu. So we also need to install cmp-buffer and cmp-nvim-lsp. Check out this tutorial by TJ DeVries for more info about how this plugin works.

  13. cmp-buffer

    nvim-cmp source for buffer words

    For this, we need to install a new completion engine: nvim-cmp. This engine uses completion “sources” (installed as separate dependencies) to populate the completion menu. So we also need to install cmp-buffer and cmp-nvim-lsp. Check out this tutorial by TJ DeVries for more info about how this plugin works.

  14. cmp-nvim-lsp

    nvim-cmp source for neovim builtin LSP client

    For this, we need to install a new completion engine: nvim-cmp. This engine uses completion “sources” (installed as separate dependencies) to populate the completion menu. So we also need to install cmp-buffer and cmp-nvim-lsp. Check out this tutorial by TJ DeVries for more info about how this plugin works.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Need help to set up the pbkit language server

    2 projects | /r/neovim | 21 Sep 2023
  • Option omnifunc is not set

    1 project | /r/neovim | 31 Aug 2023
  • LSP tells me to enable auto-fetch in configurations, but I can't find any documentation on that option?

    1 project | /r/neovim | 3 Jul 2023
  • mason.nvim [Languages] WARNINGS

    1 project | /r/neovim | 1 Jul 2023
  • How to force neovim to use specific node installation for lsp servers

    1 project | /r/neovim | 30 Jun 2023

Did you know that Vim Script is
the 32nd most popular programming language
based on number of references?