vim-better-whitespace
nvim-lspconfig
vim-better-whitespace | nvim-lspconfig | |
---|---|---|
5 | 523 | |
1,342 | 9,516 | |
- | 2.1% | |
3.4 | 9.7 | |
2 days ago | 7 days ago | |
Vim Script | Lua | |
The Unlicense | Apache License 2.0 |
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.
vim-better-whitespace
-
Disabling vim-better-whitespace in floating buffer?
How do I stop vim-better-whitespace from being activated in my ToggleTerm+Lazygit buffer?
-
How to get this arrow and not equal symbol?
For showing whitespace characters, here is a good vimscript based plugin - https://github.com/ntpeters/vim-better-whitespace
-
lsp-error with clangd when opening a cpp file in Ubuntu
-- Neovim configuration by Daniele Lupo (Jepessen) --- Require --- local utils = require('utils') --- Options --- -- Add number to rows utils.opt('o', 'number', true) -- Set indentation of files local indent = 2 utils.opt('b', 'expandtab', true) utils.opt('b', 'shiftwidth', indent) utils.opt('b', 'smartindent', true) utils.opt('b', 'tabstop', indent) utils.opt('b', 'autoindent', true) utils.opt('o', 'smarttab', true) utils.opt('b', 'softtabstop', indent) -- Enable the mouse utils.opt('o', 'mouse', 'a') -- Set nocompatible mode for more powerful commands utils.opt('o', 'compatible', false) -- Set some search options utils.opt('o', 'showmatch', true) utils.opt('o', 'ignorecase', true) utils.opt('o', 'hlsearch', true) utils.opt('o', 'incsearch', true) -- Set options for color scheme utils.opt('o', 'termguicolors', true) --- Keymappings --- -- Remap jj to escape in insert mode utils.map('i', 'jj', '') utils.map('n', 'JJJJ', '') -- Swap ; and : utils.map('n', ':', ';') utils.map('n', ';', ':') -- Start plugin section. Use this section in order to install new plugins to -- neovim. -- -- In order to install a new plugin, you need to put in this section the -- repository where it can be found, and then refresh the plugin list by -- installing them with the command: -- -- :PlugInstall -- Auto install vim-plug that's a plugin manager local vimplugrepository = '' local installpath = vim.fn.stdpath('config')..'/autoload' local vimpluginstallpath = installpath..'/plug.vim' local vimplugrepository = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' if vim.fn.empty(vim.fn.glob(vimpluginstallpath)) > 0 then vim.api.nvim_command('!curl -flo '..vimpluginstallpath..' --create-dirs '..vimplugrepository) vim.cmd 'autocmd VimEnter * PlugInstall' end local Plug = vim.fn['plug#'] -- Put plugins in this section. Define a Plug with the repository of the plugin that you want vim.call('plug#begin', installpath) -- Vim airline. This plugin creates a nice status bar with more features than -- standard one. Plug 'https://github.com/vim-airline/vim-airline' -- NerdTree is a plugin for showing a tree folder structure of the filesystem. Plug 'https://github.com/preservim/nerdtree' -- Vim color schemes Plug 'https://github.com/rafi/awesome-vim-colorschemes' -- Developer icons Plug 'https://github.com/ryanoasis/vim-devicons' -- Surrounding with parenthesis and xml tags with cs command and more Plug 'https://github.com/tpope/vim-surround' -- Show trailing whitespaces and use the command :StripWhitespace for removing -- them Plug 'https://github.com/ntpeters/vim-better-whitespace.git' -- Install the LSP server for configuring it with clangd for code completition -- in C++ Plug 'https://github.com/neovim/nvim-lspconfig' -- An interesting theme Plug 'https://github.com/Pocco81/Catppuccino.nvim' vim.call('plug#end') --- PLUGINS CONFIGURATION --- -- Nerdtree -- Configure keys so with ctrlf go to the tree, with ctrl+n open the tree, and -- ctrl+t toggle the tree utils.map('n', '', ':NERDTreeFocus') utils.map('n', '', ':NERDTree') utils.map('n', '', ':NERDTreeToggle') --- LSP CONFIG --- -- Main configuration local lspremapopts = { noremap = true, silent = true } vim.keymap.set('n', 'e', vim.diagnostic.open_float, lspremapopts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, lspremapopts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, lspremapopts) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, lspremapopts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(client, bufnr) -- Enable completition triggered by vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- Mappings -- See ':help vim.lsp.* local bufopts = { noremap = true, silent = true, bufnr = bufnr } vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) vim.keymap.set('n', 'wl', function () print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, bufopts) vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) vim.keymap.set('n', 'gr', vim.lsp.buf.references.bufopts) vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) end -- Now the servers must be defined and set. In order to load them it's -- convenient to define them in an array and use a loop. local servers = { 'pyright', 'clangd' } for _, lsp in pairs(servers) do require('lspconfig')[lsp].setup { on_attach = on_attach, flags = { debounce_text_changes = 150 } } end --- COLOR SCHEME --- vim.cmd[[colorscheme catppuccin]]
-
strip whitespace only on changed lines
I have used this vim plugin before https://github.com/ntpeters/vim-better-whitespace and I'd love to have the same behavior on emacs.
-
Using Vim for Everything!
I just saw a nice post in /u/medwatt about using vim for VHDL/Verilog and thought I'd contribute a little! * Syntax and error highlight: https://github.com/autozimu/LanguageClient-neovim * Column align: https://github.com/junegunn/vim-easy-align * Remove annoying whitespaces: https://github.com/ntpeters/vim-better-whitespace * Partial (fuzzy) filename search: https://github.com/junegunn/fzf.vim * Outline all declarations inside a file: ⠀https://github.com/preservim/tagbar * Treat indentations as vim-objects (useful for languages that don't use { }): https://github.com/michaeljsmith/vim-indent-object There is also mouse support in vim for those who want it. Try typing :set mouse=a. Very useful for resizing windows. I also highly recommend you get good at using folds (https://vim.fandom.com/wiki/Folding). It makes it a LOT easier to navigate files. You can save your fold config per-file with :mkview and load it later with :loadview. If I come up with more hints - I'll mention them in the comments!
nvim-lspconfig
-
JetBrains' unremovable AI assistant meets irresistible outcry
I suggest looking for blog posts about this, you're gunnuh wanna pick out a plugin manager and stuff. It's kind of like a package manager for neovim. You can install everything manually but usually you manually install a plugin manager and it gives you commands to manage the rest of your plugins.
These two plugins are the bare minimum in my view.
https://github.com/nvim-treesitter/nvim-treesitter
Treesitter gives you much better syntax highlighting based on a parser for a given language.
https://github.com/neovim/nvim-lspconfig
This plugin helps you connect to a given language LSP quickly with sensible defaults. You more or less pick your language from here and copy paste a snippet, and then install the relevant LSP:
https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...
For Python you'll want pylsp. For JavaScript it will depend on what frontend framework you're using, I probably can't help you there.
pylsp itself takes some plugins and you'll probably want them. https://github.com/python-lsp/python-lsp-server
Best of luck! Happy hacking.
-
Neovide – a simple, no-nonsense, cross-platform GUI for Neovim
Adding language support it neovim isn't very difficult once you're setup. I use nvim-lspconfig[1] and just about any language you could need is documented[2]. But like others have mentioned there are batteries included distributions of neovim if that's your cup of tea.
[1]: https://github.com/neovim/nvim-lspconfig/
[2]: https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...
-
A guide on Neovim's LSP client
If we can't find the basic usage in the documentation we can go to nvim-lspconfig's github repository. In there we look for a folder called server_configurations, this contains configuration files for a bunch of language servers.
-
Do I need NeoVIM?
https://github.com/hrsh7th/nvim-cmp This is an autocompletion engine https://github.com/nvim-treesitter/nvim-treesitter This allows NeoVim to install parsing scripts so NeoVim can do things like code highlighting. https://github.com/williamboman/mason.nvim Not strictly necessary, but allows you to access a repo of LSP, install them, and configure them for without you actively messing about in config files. https://github.com/neovim/nvim-lspconfig Also not strictly necessary, but vastly simplifies LSP setup. https://github.com/williamboman/mason-lspconfig.nvim This lets the above two plugins talk to each other more easily.
-
cpp setting problem
This specific issue talks about fixing clangd for that error: https://github.com/neovim/nvim-lspconfig/issues/2184. The issue is ongoing for ccls AFAIK but for clangd, this has been discussed and fixed in the past already.
-
Need help to set up the pbkit language server
I am trying to set up the pbkit language server for protobuf files. Since it is not part of the nvim-lspconfig repo's server configurations, I have to figure the way out myself. It doesn't seem to be too difficult, as I can start from the bufls configuration there. The following is what I have at the moment:
-
Option omnifunc is not set
I have configured neovim with lspconfig and mason. Added the suggested configuration of the lsp config(https://github.com/neovim/nvim-lspconfig) to ~/.config/nvim/after/plugin/lsp.lua Then I installed via mason the following language servers:
-
Using nvim-lint as a null-ls alternative for linters
Personally, i think nvim-lint is the best alternative currently, specially so because it has no dependencies on external binaries. This guide assumes you already have your LSP set up with nvim-lspconfig (or an alternative like lsp-zero). You should also have an way to install the linters you are gonna need, i highly recommend Mason with mason-lspconfig.
-
The Future of the Vim Project
Basically neovim can act as a client to a variety of different language servers (https://github.com/neovim/nvim-lspconfig/blob/master/doc/ser...) which give neovim IDE capabilities. This can be done in original Vim also but requires external plugins which can be a pain to compile and install. Neovim has it built in.
-
SQL LSP dialect
I'm struggling to get [sqlls](https://github.com/joe-re/sql-language-server) with [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) to use Postgres syntax.
What are some alternatives?
neovim - Vim-fork focused on extensibility and usability
coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
ws-butler - Unobtrusively trim extraneous white-space *ONLY* in lines edited.
null-ls.nvim - Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.
lessspace.vim - Better whitespace stripping for Vim
nvim-lsp-installer - Further development has moved to https://github.com/williamboman/mason.nvim!
Catppuccino.nvim - 🍨 Catppuccin theme for NeoVim [Moved to: https://github.com/catppuccin/nvim]
nvim-jdtls - Extensions for the built-in LSP support in Neovim for eclipse.jdt.ls
vim-workspace - 📑 Automated Vim session management with file auto-save and persistent undo history
coc - Chroniques Oubliées Contemporain
Esopoly - :stuck_out_tongue_closed_eyes: Polyglot written in 7 esoteric programming languages
ale - Check syntax in Vim/Neovim asynchronously and fix files, with Language Server Protocol (LSP) support