neovim-lua
kickstart.nvim
Our great sponsors
neovim-lua | kickstart.nvim | |
---|---|---|
25 | 284 | |
799 | 14,592 | |
- | 22.2% | |
3.6 | 9.0 | |
27 days ago | 7 days ago | |
Lua | Lua | |
GNU General Public License v3.0 only | 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.
neovim-lua
- GitHub - brainfucksec/neovim-lua: Neovim KISS configuration with Lua - Update config with lazy.nvim and other changes.
-
Finally written my nvim config in lua here is the link of my dots https://github.com/mdk4if/nvimDots.git . It's not too good i am damn sure but i will make it better for sure . Thanks for reading
I used this as a starting point: https://github.com/brainfucksec/neovim-lua/blob/main/nvim/lua/core/options.lua, but remove matchit from the table.
-
LSP warnings when assigning most vim options
-- LSP Configuration & Plugins local M = { 'neovim/nvim-lspconfig', event = "BufReadPre", dependencies = { -- Automatically install LSP servers, DAP servers, linters, formatters 'williamboman/mason.nvim', -- Recommended when using mason together with LSP, bridges the gap 'williamboman/mason-lspconfig.nvim', -- Useful status updates for LSP 'j-hui/fidget.nvim', -- Additional lua configuration 'folke/neodev.nvim', -- Integration "hrsh7th/cmp-nvim-lsp", -- Integration 'kevinhwang91/nvim-ufo', }, } function M.config() require("mason").setup() local u = require("core/utils") -- Customizing how diagnostics are displayed, source: https://github.com/brainfucksec/neovim-lua/blob/main/nvim/lua/lsp/lspconfig.lua vim.diagnostic.config({ update_in_insert = true, float = { focusable = false, style = "minimal", border = "rounded", source = "always", header = "", prefix = "", }, }) -- diagnostic (l) -- See `:help vim.diagnostic.*` for documentation on any of the below functions local opts = { noremap=true, silent=true } u.bind(u.normal, "Show diagnostics in a floating window (#lsp)", "ll", vim.diagnostic.open_float, opts) u.bind(u.normal, "Goto next diagnostic (#lsp)", "ln", vim.diagnostic.goto_next, opts) u.bind(u.normal, "Goto previous diagnostic (#lsp)", "lp", vim.diagnostic.goto_prev, opts) u.bind(u.normal, "Show diagnostics list in location list (#lsp)", "lq", vim.diagnostic.setloclist, opts) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer local on_attach = function(_, bufnr) -- Enable completion triggered by vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') -- lsp (l) -- See `:help vim.lsp.*` for documentation on any of the below functions local bufopts = { noremap=true, silent=true, buffer=bufnr } u.bind(u.normal, "Jump to definition (#lsp)", {"ld", "gd"}, vim.lsp.buf.definition, bufopts) u.bind(u.normal, "Jump to declaration (#lsp)", {"lD", "gD"}, vim.lsp.buf.declaration, bufopts) u.bind(u.normal, "Jump to type definition (#lsp)", "lt", vim.lsp.buf.type_definition, bufopts) u.bind(u.normal, "Show implementations list in quickfix window (#lsp)", {"li", "gi"}, vim.lsp.buf.implementation, bufopts) u.bind(u.normal, "Show references in the quickfix window (#lsp)", {"lr", "gr"}, vim.lsp.buf.references, bufopts) u.bind(u.normal, "Show signature help in floating window (#lsp)", {"lk", ""}, vim.lsp.buf.signature_help, bufopts) u.bind(u.normal, "Show hover information in floating window (#lsp)", "lK", vim.lsp.buf.hover, bufopts) vim.keymap.set("n", "K", function() local winid = require("ufo").peekFoldedLinesUnderCursor() if not winid then vim.lsp.buf.hover() end end) u.bind(u.normal, "Rename buffer (#lsp)", "lR", vim.lsp.buf.rename, bufopts) u.bind(u.normal, "Select code action (#lsp)", "la", vim.lsp.buf.code_action, bufopts) u.bind(u.normal, "Format buffer (#lsp)", "lf", function() vim.lsp.buf.format { async = true } end, bufopts) -- workspace u.bind(u.normal, "Add buffer location as workspace folder (lsp)", "lw", vim.lsp.buf.add_workspace_folder, bufopts) u.bind(u.normal, "Remove buffer location as workspace folder (lsp)", "lW", vim.lsp.buf.remove_workspace_folder, bufopts) u.bind(u.normal, "List workspace folders (lsp)", "lL", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, bufopts) u.bind(u.normal, "Show workspace diagnostics in Telescope (lsp)", "lQ", "Telescope diagnostics", bufopts) end -- nvim-cmp supports additional completion capabilities, so broadcast that to servers local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) -- Neovim hasn't added foldingRange to default capabilities, users must add it manually, source: https://github.com/kevinhwang91/nvim-ufo capabilities.textDocument.foldingRange = { dynamicRegistration = false, lineFoldingOnly = true } local mason_lspconfig = require("mason-lspconfig") local servers = { astro = {}, bashls = {}, cssls = {}, dockerls = {}, eslint = {}, graphql = {}, html = {}, jsonls = { on_new_config = function(new_config) new_config.settings.json.schemas = new_config.settings.json.schemas or {} vim.list_extend(new_config.settings.json.schemas, require("schemastore").json.schemas()) end, settings = { json = { format = { enable = true, }, validate = { enable = true }, }, }, }, tsserver = {}, marksman = {}, pyright = {}, tailwindcss = {}, yamlls = {}, sumneko_lua = { Lua = { workspace = { checkThirdParty = false }, telemetry = { enable = false }, diagnostics = { -- Get the language server to recognize the `vim` global. globals = { 'vim', 'require' }, }, }, }, } -- Setup neovim lua configuration require('neodev').setup() mason_lspconfig.setup { ensure_installed = vim.tbl_keys(servers), automatic_installation = true, } local lspconfig = require("lspconfig") mason_lspconfig.setup_handlers { -- This is a default handler that will be called for each installed server (also for new servers that are installed during a session) function (server_name) lspconfig[server_name].setup { on_attach = on_attach, capabilities = capabilities, settings = servers[server_name], } end, } -- Turn on lsp status information require('fidget').setup() end return M
-
What are best plugins for C++, Java, Kotlin, Python, & LaTex
I'm not a lua expert, so prior, I simply grabbed one off GitHub, and made a few changes. It's been okay, but does not support LSP for Java or Kotlin. And doesn't use fzf (telescope?).
-
Appending to errorformat breaks quickfix
Disclaimer: It may appear that I know what the hell I am doing with lua, but I do not. I am using a lua configuration from here: https://github.com/brainfucksec/neovim-lua. I am appending the above to his options.lua and am copying his append example from above in the same file.
-
neovim-lua - Working on improvements for LSP and celebrating 2 years with Lua
neovim-lua
-
What is the most reliable neovim based editor?
What I ended up starting with that worked out of the box was brainfucksec’s kiss setup
-
wanting to switch from vscode to neovim
Rather than NvChad, I think this might be a better place to start since it includes only those you need This playlist was very helpful: https://www.youtube.com/watch?v=ctH-a-1eUME&list=PLhoH5vyxr6Qq41NFL4GvhFp-WLd5xzIzZ
-
I am getting ready to make a new lua config and want a basic config to start with.
https://github.com/brainfucksec/neovim-lua I found this one pretty simple, still all the basics are covered.
- Share any cool configuration templates that you know
kickstart.nvim
-
Using a venv with Neovim's Python LSP
I recently started coding with Neovim using kickstart.nvim as the template for my editor configuration. I downloaded the python-lsp-server package using Mason, but I was disappointed to discover that the IntelliSense on my third party dependencies didn't work. The LSP was resolving to my global Python installation, which did not have the packages from my virtual environment (venv) installed.
-
I Learned Neovim In A Weekend
First thing I did was get kickstart.nvim. I had heard it was extremely useful (and it was). It was very easy to install. I start reading through init.lua, and it told me to run :Tutor, which is almost 1,000 lines of learning how to use Neovim, to which I obviously ran that command and started reading. Obviously, it takes a bit of time to complete :Tutor, but it's well worth it. "hjkl" wasn't too hard to get used to, also repeating motions by using numbers was useful, such as using '5dd' to delete 5 lines. I highly suggest reading this file, especially since I didn't really know about the different modes, which is probably why I failed to switch the other times. You would start writing your code, then Neovim would say that it can't find that command, you would accidently type an i and then start typing, and so on, it was a nightmare. For those that don't know the modes, here is each mode and how to get between them.
- Kickstart.nvim: Single file launch point for a personal nvim config
-
Neovide – a simple, no-nonsense, cross-platform GUI for Neovim
I also suggest against using distributions. Instead of learning how to configure nvim itself you're learning to configure that specific distro.
I suggest to take someone's lua config and start from there. Kickstart.nvim is a good one: https://github.com/nvim-lua/kickstart.nvim
- It’s been an hour and I have made no progress
-
Do I need NeoVIM?
1) the option I wouldn’t chose, use Kickstarter. It’s a minimal starter config, using a single init.lua that helps you build a config slowly. https://github.com/nvim-lua/kickstart.nvim
-
ready to use neovim for web development (frontend) - beginners
I highly recommend Lazyvim for if you want to have a VSCode (ish) like experience that still exposes you to configuring in Lua. Or Kickstart.nvim if you want a more "from scratch" experience
-
Search commands slow in neovim but fast in vim
In case it is helpful, I am using kickstart.nvim with only minor modifications.
-
Kickstart.emacs Starter kit for Gnu Emacs
One of the project goals is to become something like kickstart.nvim. Or, to be a reference if someone doesn't know how to do something.
-
I want to remove this "./" path on the nvim explorer
Hey guys! I don't use the "./" path at all since I see it useless, I would love to remove it to be kind with my own soul, I'd love some help with this. My nvim setup is kickstart.nvim with Lua of course.
What are some alternatives?
NvChad - Blazing fast Neovim config providing solid defaults and a beautiful UI, enhancing your neovim experience.
vista.vim - :cactus: Viewer & Finder for LSP symbols and tags
nvim-lua-guide - A guide to using Lua in Neovim
Neovim-from-scratch - 📚 A Neovim config designed from scratch to be understandable
LazyVim - Neovim config for the lazy
NvChad - An attempt to make neovim cli as functional as an IDE while being very beautiful , blazing fast. [Moved to: https://github.com/NvChad/NvChad]
lazy.nvim - 💤 A modern plugin manager for Neovim
Cozette - A bitmap programming font optimized for coziness 💜
KotlinLanguageServer - Kotlin code completion, diagnostics and more for any editor/IDE using the Language Server Protocol
packer.nvim - A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config