lspkind.nvim
friendly-snippets
Our great sponsors
lspkind.nvim | friendly-snippets | |
---|---|---|
14 | 48 | |
1,313 | 1,661 | |
- | - | |
6.1 | 8.7 | |
4 months ago | 11 days ago | |
Lua | Lua | |
MIT License | MIT License |
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.
lspkind.nvim
-
I do love neovim!
There's a cmp-icons plugin: https://github.com/onsails/lspkind.nvim and also you can see the cmp documentation inside vim running :h cmp I spend many hours reading each plugin documentation to customize all my plugins. I hope I've helped.
-
Trouble Getting Icons To Show Properly
If you are referring specifically to icons in your autocompletion suggestions menu you have to set it to use them. This can be achieved manually with the format key in the nvim-cmp setup (assuming you are using nvim-cmp) or with a plugin like lspkind.nvim
-
What are the best vim plugins for Go right now?
If you use neovim, you can refer to my init.lua; I use vim-go, lsp and other goodies like lspkind to display vscode-like pictograms.
-
Anyone have autocomplete working with rust-tools, nvm-cmp, etc.?
-- Provide some indication that rust-analyzer is busy! local lsp_status = require('lsp-status') lsp_status.register_progress() -- Basic rust/lsp/cmp settings from https://sharksforarms.dev/posts/neovim-rust/ local nvim_lsp = require('lspconfig') local opts = { tools = { -- rust-tools options autoSetHints = true, hover_with_actions = true, inlay_hints = { show_parameter_hints = false, parameter_hints_prefix = "", other_hints_prefix = "=> ", }, }, -- all the opts to send to nvim-lspconfig -- these override the defaults set by rust-tools.nvim -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer server = { -- on_attach is a callback called when the language server attachs to the buffer on_attach = lsp_status.on_attach, capabilities = lsp_status.capabilities, settings = { -- to enable rust-analyzer settings visit: -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc -- and more: https://github.com/simrat39/rust-tools.nvim/wiki/Server-Configuration-Schema ["rust-analyzer"] = { -- enable clippy on save checkOnSave = { command = "clippy" }, } } }, } require('rust-tools').setup(opts) -- Setup Completion -- See https://github.com/hrsh7th/nvim-cmp#basic-configuration -- Used for super-tab functionality local has_words_before = function() local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil end local feedkey = function(key, mode) vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) end local lspkind = require('lspkind') local cmp = require'cmp' cmp.setup({ completion = { autocomplete = true }, -- Enable LSP snippets snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.select_prev_item(), [''] = cmp.mapping.select_next_item(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true, }), -- Add tab support [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif vim.fn["vsnip#available"](1) == 1 then feedkey("(vsnip-expand-or-jump)", "") elseif has_words_before() then cmp.complete() else fallback() -- The fallback function sends a already mapped key. In this case, it's probably ``. end end, { "i", "s" }), [""] = cmp.mapping(function() if cmp.visible() then cmp.select_prev_item() elseif vim.fn["vsnip#jumpable"](-1) == 1 then feedkey("(vsnip-jump-prev)", "") end end, { "i", "s" }), }, -- Installed sources sources = { { name = 'nvim_lsp' }, --, trigger_characters={'.', ":"} }, { name = 'vsnip' }, { name = 'path' }, { name = 'buffer' }, { name = 'nvim_lsp_signature_help' }, { name = 'nvim_lsp_document_symbol' }, }, -- Fancy symbols formatting = { format = lspkind.cmp_format({ mode = 'symbol_text', -- show both symbol & text for now maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters) -- The function below will be called before any actual modifications from lspkind -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30)) --before = function (entry, vim_item) --... --return vim_item --end }) }, completion = { autocomplete = true }, })
-
Neovim LSP Setup + Code Completion Engine
All the snippets, mapping, formatting and sources part in the above code snippet is expalained nicely in the plugin's documentation. For above code to work, you also have to install lspkind which provides awesome icons in the code completions.
-
Lspconfig configuration issues
To style the completion popup, you need to add formatting. Going by the cute little scissors, you probably want to install lsp-kind and add something like this to your cmp.setup
-
Totally confused about completion
https://github.com/onsails/lspkind-nvim (optionally)
-
Looks like the nvim-compe plugin is going to be deprecated, replaced by nvim-cmp (eventually)
I copy pasted the icons from https://github.com/onsails/lspkind-nvim/blob/master/lua/lspkind/init.lua and added the spaces:
- Is anyone here using neovim for f# programming and could point me to useful plugins, which work with neovim 0.5
- Java/Kotlin developers that use NeoVim as their main IDE, recommendations to someone that uses Intellij IDEA for java-dev but nvim for the rest?
friendly-snippets
-
LazyVim: How to turn default plugins off?
Those definitely seem to be coming from friendly-snippets, so it seems like it's not being disabled. You can verify this with the :Lazy command to bring up the lazy.nvim menu then checking log or debug to see what is loaded, when, and why.
-
Benchmarking some of my favourite neovim plugins over time
Here you go :), tested with friendly-snippets lazy loaded (Non lazy-loaded is 500ms)
-
NormalNvim 2.0: Officially released
Snippets for code comments.
-
Enabling python's snippets.
I am trying to add snippets for python, i have LuaSnip and friendly-snippets installed, but for some reason it does not load the snippets. This is how i load the plugins:
-
PR with TSdoc support sent to friendly-snippets
I just sent [this PR](https://github.com/rafamadriz/friendly-snippets/pull/301) that implements the [full TSdoc specification](https://typedoc.org/guides/overview/) in [friently-snippets](https://github.com/rafamadriz/friendly-snippets). In practice what you get is autocompletion in your typescript comments, which should be a nice of life improvement for most typescript developers.
-
friendly-snippets VS luasnip-latex-snippets.nvim - a user suggested alternative
2 projects | 18 May 2023
-
Does anyone know how to quickly create class, interface, record, ...etc in java with nvim
You mean snippets? If yes, you can try Luasnip and friendly-snippets with nvim-cmp and here's the setup guide. Hope it helps
-
Multi-Line completion with nvim-cmp
For example Luasnip with (I guess) friendly-snippets has multi line snippets defined by default. And you can use luasnip with nvim-cmp (read the docs or I guess thereβs a YouTube tutorial)
-
How to I find default snippets
If you copied the config in the readme, then the snippet come from friendly-snippets.
-
How can I get Better react intergration.
I would recommend lsp-zero, the tsserver lsp provides code actions for auto import. There is auto import when confirming completion as well, I've seen it working with cmp, however I can't remember If that is out of the box behaviour. For snippets, I would go with LuaSnip - It's very versatile snippet engine and it integrates well with many snippet formats. There are specifically react es7 snippet definitions in the friendly-snippets repo which can be used by LuaSnip - https://github.com/rafamadriz/friendly-snippets/blob/main/snippets/javascript/react-es7.json
What are some alternatives?
cmp-nvim-lsp - nvim-cmp source for neovim builtin LSP client
LuaSnip - Snippet Engine for Neovim written in Lua.
lspsaga.nvim - improve neovim lsp experience [Moved to: https://github.com/nvimdev/lspsaga.nvim]
vim-vsnip - Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.
vscode-codicons - The icon font for Visual Studio Code
snippets.nvim
lspsaga.nvim - improve neovim lsp experience
ultisnips - UltiSnips - The ultimate snippet solution for Vim. Send pull requests to SirVer/ultisnips!
vim-emoji-icon-theme - Emoji/Unicode Icons Theme for Vim and Neovim with support for 40+ plugins and 380+ filetypes π¨πππ€π
cmp_luasnip - luasnip completion source for nvim-cmp
vim-test - Run your tests at the speed of thought [Moved to: https://github.com/vim-test/vim-test]
language-server-protocol - Defines a common protocol for language servers.