Skip to content

Fury1/neovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neovim Config

Some setup notes about my config for my future self and any travelers.

Languages, LSPs, & Formatters

  • LSPs are configured in the /lsp directory as they should be in Neovim 0.11+
  • The LSP servers and formatters are installed as OS packages

Codebook LSP Spell Checker

I prefer the Codebook LSP for spell checking code. Spell checkers in general don't understand coding conventions, this spell checker does taking language syntax into consideration before making a suggestion.

  • codebook
  • Disable Neovim spell check when in use, otherwise default back to Neovim's builtin spell check. See options.lua for the auto command snippet.

Markdown - JSON - TOML

Simple Markdown, JSON, TOML linting and formatting.

  • marksman
  • dprint (plugin based formatter)

Lua

I only really use this for Neovim configuration, basic LSP with a lua style formatter.

  • lua_ls
  • stylua

Python

Python requires multiple LSPs for different things. ruff is primarily used for formatting/linting and basedpyright is used for type checking, completions, go to definition, etc (everything else).

  • pylsp (incomplete)
    • Rope (optional dep)
  • pyright (disabled)
  • basedpyright
  • Ruff (documentation hover is disabled in favor of pyright/basedpyright)

Rust

Rustup manages the Rust toolchain. Once Rustup is installed, its relevant components are added to Neovim.

  • rustup
    • rust-analyzer
      • clippy (swapped for 'cargo check')
    • rustfmt

Plugins

lazy.nvim is being used to manage plugins (not to be confused with Lazy.nvim).


Themes

Some of my favorite themes that don't bother my eyes.

  • Kanso
  • Vague (Customized)

Viewing Markdown Files

Peek is being used to render markdown in a Github like format. One thing to note with this plugin is that webkit may have a problem if Nvidia proprietary drivers (linux) are being used. Peek depends on webkit to create the preview window. The following snippet should be added to .zshrc or the like to fix it for now (it will have no effect if AMD drivers are being used).

#.zshrc

# Check if an nvidia driver is actively running.
if [[ -f /proc/driver/nvidia/version ]]; then
export WEBKIT_DISABLE_COMPOSITING_MODE=1
fi
  • peek (may require the build command to be run manually from the root of the plugin on failure during first install)

Completions

Blink is being used to power completions via LSPs/snippets. I chose this over nvim-cmp because it is much easier to setup and works well enough.

  • Blink

Formatting

Conform is used with my formatters for keymap consistency.

  • Conform

Language Parsers

Treesitter is being used for highlighting, indentation, and incremental selection.

Neovim smartindent is disabled when using this.

NOTE: This should be updated to the 'main' branch eventually.

  • Treesitter
  • TODO: Treesitter text objects to jump between functions and such.

Fuzzy Finder

Telescope is being used to fuzzy find over buffer, files, grep, jumps, diagnostics, etc.

  • Telescope w/ fzf-native

Code Action Menu

I like a customizable inline LSP code action popup.

  • Tiny code action

Jump Navigation

Jump to to a location in view directly.

  • Flash

Surrounds

Manipulate matching characters pairs easily.

  • Vim Surround

Git Integration

Gitsigns is being used to work with hunks in the buffer as well as mark changes, Neogit is used for everything else.

  • Git signs
  • Neogit

TODO Highlight

  • Todo comments

Scratch Buffers & Center windows

Center windows while gaining some scratch buffers. I use the scratch buffers similarly to the Jetbrains scratch file feature.

  • No Neck Pain

Neotree

Netrw with features!

  • Neotree

Buffer Management

Switch around bookmarked buffers easily.

  • Arrow buffer manager

About

My Neovim config for all!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages