SudoGringo's Blog

New Neovim Config

Remade my config for Neovim using features bundled in to v0.12 like native lsp handling and plugin package management.

Neovim code screenshot

After about a year of using kickstart.nvim I was wanting to understand more about the program I use, and prepare it for another semester of programming. If I'm going to go against the grain by not using VSCode or Intellij, I have to make sure that it works, and that I know how to use it.

With that said, I opened a new branch in my repo, redid the init.lua, erased almost everything else, and started writing the keymaps and options. It was so enjoyable to read line by line what everything did, and watch as slowly I gained a better editor. It also was jarring to use the same editor that I was configuring. The muscle memory that I had developed to move between buffers was hard to beat when I had to open everything with the :find command or manually switch between buffers blindly.

New features as of v0.11

Native LSP Configuration

Went from over 300 lines to around 26.

LSP Configuration code

Native Plugin Package Manager

No longer using Lazy, and configuring each plugin. Really helps understanding the reach of the setup

Plugin Package Manager code

Explanation of something

Switched from telescope to Fzf-lua

While changing everything, why not try new things? I decided to look for a different picker for nvim. I started using kickstart.nvim as my intro into nvim, and there they use telescope. Then when I started re-configuring I used just the command line, using :Explore for netrw and :Findo to fuzzy find files in the working directory. That's when I brought in fzf-lua. It handles all picking needs, like grepping, opening files, and managing buffers. It is very quick and being on the bottom part of the window makes it unobtrusive.

Some Plugins to make it an IDE

nvim-dap

Debug adapter protocol. Allows debugging when tied into LSP

Mason.nvim

Automatic Lsp, Linter, and Debugging Server Management

Blink.cmp

Auto-completion with snippet and lsp integration

Code snippet

Youtubers that inspired my Config

@sylvanfranklin

"Weird dude"
Weird dude thumbnail

@marco_peluso

"Short but expansive"
Short but expansive thumbnail

@smnatale

"Fills in some gaps"
Fills in some gaps thumbnail