ncm2
intellij-lsp-server
ncm2 | intellij-lsp-server | |
---|---|---|
2 | 2 | |
1,332 | 314 | |
0.0% | - | |
1.8 | 0.0 | |
about 2 years ago | about 5 years ago | |
Python | Kotlin | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ncm2
-
Why LSP?
Assuming you're talking about this ncm[0], are you aware that ncm is a " completion framework for neovim", which is different from an LSP? ncm is either an LSP client itself, or, it is talking to neovim's internal LSP client, to get completions from LSPs.
It's also important to note that LSPs almost always provide you more than auto completion (for example, go to definition, go to implementation, find references).
Do let me know if you have more questions, neovim and LSPs are my "daily driver" as a dev, so to speak.
[0] https://github.com/ncm2/ncm2
-
Getting ncm2 and ncm-r to work
call plug#begin() " assuming you're using vim-plug: https://github.com/junegunn/vim-plug Plug 'ncm2/ncm2' Plug 'roxma/nvim-yarp' " enable ncm2 for all buffers autocmd BufEnter * call ncm2#enable_for_buffer() " IMPORTANT: :help Ncm2PopupOpen for more information set completeopt=noinsert,menuone,noselect " NOTE: you need to install completion sources to get completions. Check " our wiki page for a list of sources: https://github.com/ncm2/ncm2/wiki Plug 'ncm2/ncm2-bufword' Plug 'ncm2/ncm2-path' " R plugin " Plug 'jalvesaq/Nvim-R' " Plug 'ncm2/ncm2' " Plug 'roxma/nvim-yarp' Plug 'gaalcaras/ncm-R' if !has('nvim') Plug 'roxma/vim-hug-neovim-rpc' endif Plug 'ncm2/ncm2-bufword' Plug 'ncm2/ncm2-path' call plug#end()
intellij-lsp-server
-
Why LSP?
I once had the idea of implementing an LSP server by embedding it as an IntelliJ plugin and backgrounding the IDE while doing the actual coding in Emacs.
It kind of worked, but once I stopped needing to use Java for my job it became too much of a hassle to flesh out.
https://github.com/Ruin0x11/intellij-lsp-server
-
Rust-Analyzer Architecture
The LSP means every single language server has to reinvent the wheel again and again.
It’d have been much more useful to build bindings for IDEA plugins so they could be integrated into arbitrary editors, especially as the IDEA plugins for most languages even after several years of LSP development are still superior.
All in all it’s like the whole JVM vs. WASM, Java vs Electron story again, with someone deciding to reinvent the wheel but worse.
There’s even bindings like https://github.com/Ruin0x11/intellij-lsp-server or https://plugins.jetbrains.com/plugin/10209-lsp-support to glue it all back together.
It’d have been much simpler to reuse an existing ecosystem from the start.
What are some alternatives?
Nvim-R - Vim plugin to work with R
language-server-protocol - Defines a common protocol for language servers.
telescope.nvim - Find, Filter, Preview, Pick. All lua, all the time.
neovim - Vim-fork focused on extensibility and usability
ncm-R - R autocompletion for Neovim and vim 8 :memo: :bar_chart: :zap:
nvim-lspconfig - Quickstart configs for Nvim LSP
semshi - 🌈 Semantic Highlighting for Python in Neovim
rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
defx.nvim - :file_folder: The dark powered file explorer implementation for neovim/Vim8
rust-analyzer - A Rust compiler front-end for IDEs
NeoVintageous - Vim for Sublime Text.
eglot - A client for Language Server Protocol servers