Skip to content

Gako358/neovim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

My personal neovim config for Nix

Welcome to my Neovim configuration crafted for Nix. Feel free to use it as is or extract pieces to help construct your own unique setup.

screenshot

Usage

To utilize this configuration, clone the repo and run the following command from the directory:

nix run .#

or

nix run github:gako358/neovim#.

Plugin Updates

nix flake update
nix flake lock --update-input 'Name-of-input'

Repository Structure

|-[modules] -- Contains modules which are used to configure neovim
|-flake.nix -- Flake file
|-README.md -- This file

Language Support

Most languages use nvim-lspconfig to set up language server. Additionally some languages also (or exclusively) use null-ls to extend capabilities.

C/C++

LSP Server: ccls

HTML

Plugins

  • nvim-ts-autotag for autoclosing and renaming html tags. Works with html, tsx, vue, svelte, and php

Dhall

LSP Server: dhall-lsp-server

Haskell

LSP Server: haskell-language-server

Formatting: cabal-fmt

Java

** LSP Server**: jdtls

Formatting: java-google-formater

Nix

LSP Server: rnix-lsp

Formatting

rnix provides builtin formatting with nixpkgs-fmt but it is disabled and I am instead using null-ls with alejandra

Python

LSP Server: pyright

Formatting:

Using black through null-ls

Rust

LSP Server: rust-analyzer

Formatting

Rust analyzer provides builtin formatting with rustfmt

Plugins

Scala

LSP Server: metals

Typescript

LSP Server: typescript-language-server

Linting

Using eslint through null-ls.

Formatting

Disabled lsp server formatting, using prettier through null-ls.

Plugins

LSP Plugins

  • fidget.nvim: Standalone UI for nvim-lsp progress.
  • nvim-lightbulb: VSCode-like code actions.
  • nvim-lspconfig: Quickstart configurations for the Nvim LSP client.
  • lspkind-nvim: VSCode-like pictograms for neovim lsp completion items.
  • null-ls.nvim: Use Neovim as a language server to inject LSP diagnostics, code actions, and more.
  • lsp_signature.nvim: LSP signature hint as you type.
  • trouble.nvim: A pretty diagnostics, references, telescope results, quickfix and location list.

LSP Tools

Debugging

Telescope

Autocompletion

Snippets

  • vim-vsnip: Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.

Copilot

Markdown

Git

Visuals

  • nvim-autopairs: A super powerful autopair plugin for Neovim.
  • indent-blankline.nvim: Indent guides for Neovim.
  • lualine.nvim: A blazing fast and easy to configure Neovim statusline written in Lua.
  • nvim-web-devicons: Lua fork of vim-web-devicons for neovim.
  • noice.nvim: Highly experimental plugin that completely replaces the UI for messages, cmdline and the popupmenu.
  • nui.nvim: UI Component Library for Neovim.
  • nvim-notify: A fancy, configurable, notification manager for NeoVim.
  • ranger.nvim: Ranger integration for Neovim.
  • theme: A soft dark, fully customizable Neovim theme.

Key Binding Help

  • which-key.nvim: Neovim plugin that shows a popup with possible keybindings of the command you started typing.

Utility

  • plenary.nvim: All the lua functions you don't want to write twice.

License

The files and scripts in this repository are licensed under the MIT License, which is a very permissive license allowing you to use, modify, copy, distribute, sell, give away, etc. the software. In other words, do what you want with it. The only requirement with the MIT License is that the license and copyright notice must be provided with the software.

About

Neovim config for NixOS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages