BM

Neovim Config

Neovim configuration used for daily coding. Built using Lua centered arounf Folke's lazy package manager

Requires Neovim nightly Learn Neovim's api and anything can be configured

Neovim alpha landing pageNeovim alpha landing page

Plugins


Plugin manager: folke/lazy.nvim Package manager is used automate cloning of repos and placing into RTP (Runtime Path)

  • Could also be done manually if you wanted to maintain yourself

All plugins located inside ./lua/brady/plugins/

Typical set up follows the structure

  1. Provide github repo to pull from
  2. Designate loading strategy (Immediately, Lazy, Event/Command ...)
  3. Provide configuration for plugin
    • Calling setup() with custom config table
    • Creating keymaps for plugin

Navigate across code base using Harpoon, Telescope, Gitsigns, Oil, LSP Diagnostic/Symbols

Project Navigation

Harpoon: Useful when a narrow set of files are constantly used for a task

  • Add specific files to harpoons list
  • Quickly navigate to them

Telescope: Used for fuzzy finding across various lists of data

  • Find Files: Search across all files in pwd
  • Git Files: Files which have been modified in the git working tree
  • Find Buffers: Files which you have opened

Oil: Get used to not having the file tree always open

Buffer Navigation

Git: Git signs allows you to move throughout buffer based of git hunks

  • Move to locations in the file which have been altered
  • Preview the changes (inline/overlay)

LSP:

  • Diagnostics
  • Symbols
  • Definitions

Coding


Completion list can be populated with various sources

  • Directories, Buffer words, LSP suggestions

Snippets which can be expanded

LSP

Install through package manager

Mason can be used as a replacement

sudo pacman -S lua-language-server bash-language-server vscode-json-languageserver pyright typescript-language-server

DAP

sudo pacman -S delve python-debugpy