Skip to content

Awesome Configurations for C/C++, Zig, Rust, Python, Shell, Web and Lua development in NeoVim

License

Notifications You must be signed in to change notification settings

firoozye/awesome-neovim

This branch is 1 commit behind Ultra-Code/awesome-neovim:master.

Folders and files

NameName
Last commit message
Last commit date
Jul 5, 2023
May 15, 2024
May 15, 2024
Apr 16, 2023
Apr 16, 2023
May 15, 2024
May 4, 2023
Feb 3, 2024
Feb 3, 2024
May 15, 2024

Repository files navigation

Awesome Neovim Configuration

This repo it to make setting up of neovim >= 0.9 a breeze. The setup is powered and managed by πŸ’€ lazy.nvim plugin manager

If you like helix, which I am drifting to gradually, check out my helix config

✨ Features Supported

  • ⚑ zig, σ°™± C ,  C++, σ°’± lua and all other language compilers
  • πŸ“¦ linters and static analysis through null-ls
  • πŸ₯‚ lsp servers configured with nvim-lspconfig
  • 🧹 autocompletion, formatters and all other features supported by neovim's builtin lsp
  • 🦸 Any build system
  • ✴️ Treesitter syntax highlighting
  • πŸ”₯ Transform your Neovim editor into a full-fledged IDE
  • πŸ’€ Easily customize and extend config
  • πŸš€ Blazingly fast using πŸ’€ lazy.nvim and the new lua-loader that byte-compiles and caches lua files

😍 Screenshots

 C++

c++ with code action c++ with errors

⚑ Zig

Zig(onedark colorscheme) with error Zig(onedark colorscheme) struct hovered

σ°’± Lua

Lua with with errors Lua with preview definition

πŸš€ Startup Time

startup time with zig

⚑️ Requirement

  • Neovim >= 0.9.0 (needs to be built with LuaJIT)
  • git >= 2.40.0 (gitsigns ...)
  • tree-sitter >= 0.20.8 (to enable automatically installing missing parsers when entering buffers)
  • a Nerd Font (optional, for nvim-tree, lualine, bufferline)

NOTE the languages supported out of the box are zig, c++, c, lua, bash/zsh, glsl, json But support for other languages like(js, ts, html5+, css3+, vue, markdown, nix) can easily be add by using its required lsp server configuration and installing the server and other accompanying tools for development like linters, static analysers, formatter

πŸ“‚ Directory structure

    πŸ“‚ ~/.config/nvim
    β”œβ”€β”€ πŸ“‚ ftplugin
    β”‚  └── πŸ“‚ lua
    β”‚  β”‚   └──  mapping.lua
    β”‚  β”œβ”€β”€  gitcommit.lua
    β”‚  β”œβ”€β”€  help.lua
    β”‚  └──  zsh.lua
    β”œβ”€β”€ πŸ“‚ lua
    β”‚  └── πŸ“‚ config
    β”‚  β”‚   β”œβ”€β”€  autocmds.lua
    β”‚  β”‚   β”œβ”€β”€  defaults.lua
    β”‚  β”‚   β”œβ”€β”€  init.lua
    β”‚  β”‚   β”œβ”€β”€  keymaps.lua
    β”‚  β”‚   β”œβ”€β”€  lazy.lua
    β”‚  β”‚   β”œβ”€β”€  options.lua
    β”‚  β”‚   β”œβ”€β”€  syntax.lua
    β”‚  β”‚   └──  utils.lua
    β”‚  └── πŸ“‚ plugins
    β”‚      β”œβ”€β”€  cmp.lua
    β”‚      β”œβ”€β”€  colorscheme.lua
    β”‚      β”œβ”€β”€  editor.lua
    β”‚      β”œβ”€β”€  gitsigns.lua
    β”‚      β”œβ”€β”€  lsp.lua
    β”‚      β”œβ”€β”€  neorg.lua
    β”‚      β”œβ”€β”€  snip.lua
    β”‚      β”œβ”€β”€  telescope.lua
    β”‚      β”œβ”€β”€  tree.lua
    β”‚      β”œβ”€β”€  treesitter.lua
    β”‚      └──  ui.lua
    β”œβ”€β”€  init.lua
    β”œβ”€β”€ ξ˜‹ lazy-lock.json
    β”œβ”€β”€  LICENSE
    └── ο’Š README.md

ftplugin directory contains files for setting options or mappings specific to filetypes

lua/config directory contains editor autocmds, keymaps, options, defaults, syntax files, utils fn's and lazy.nvim configuration

lua/plugins directory contains all plugins configurations and their mappings

init initializing/start point for nvim editor


πŸš€ Getting Started

You can find awesome-neovim here

Follow the steps below to use awesome-neovim
  • fork this repo into your account

    GitHub how to fork a repository

  • Make a backup of your current Neovim files at $XDG_CONFIG_HOME/nvim and $XDG_DATA_HOME/nvim:

    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
  • Clone the repo into $XDG_CONFIG_HOME/nvim or $HOME/.config/nvim

    git clone https://github.com/${YOUR-USERNAME}/awesome-neovim $XDG_CONFIG_HOME/nvim
    
  • Start Neovim!

    nvim

βš™οΈ For information on how to use lazy.nvim

You can thoroughly go through awesome-neovim configuration and if more clarification is required read lazy's README

for help using the various plugins and extensions

:help local-addtions

To view the help pages and instruction manual on the various extensions

πŸ‘ Credit

  • Huge credit to @folke, I learnt a lot from his lazy config repo
  • Big Shout Out to the creators of the various plugins which make nvim terrific
  • Another to all the creators of the various neovim extensions.

And Last but not the least God Bless The Vim && Neovim Community for this hyperextensible and hackable text editor

About

Awesome Configurations for C/C++, Zig, Rust, Python, Shell, Web and Lua development in NeoVim

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%