Coder Social home page Coder Social logo

ultra-code / awesome-neovim Goto Github PK

View Code? Open in Web Editor NEW
160.0 2.0 66.0 1.47 MB

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

License: GNU General Public License v3.0

Lua 100.00%
neovim neovim-config awesome-neovim nvim treesitter lspconfig lua neovim-dotfiles neovim-lsp neovim-lua

awesome-neovim's Introduction

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

awesome-neovim's People

Contributors

ultra-code avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

awesome-neovim's Issues

nvim 0.8 deprecated vim.lsp.buf.formatting_seq_sync

Deprecates the existing vim.lsp.buf.formatting function.
With this, vim.lsp.buf.format will replace all three:

vim.lsp.buf.formatting
vim.lsp.buf.formatting_sync
vim.lsp.buf.formatting_seq_sync

Use vim.lsp.buf.format { async = true } instead

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.