Skip to content

adityastomar67/NvStar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

License People Stars Forks Watches Last Updated

Personalized Development Environment β€οΈπŸ‘¨β€πŸ’»

Brief description of how this configuration actually works. Hit the ⭐ button if you found this useful.

❔ What is this

This is a v2 of my previous Neovim config - Nvdots

Screenshot_Dashboard

For Wallpaper, Go to this
Terminal is ST, for config go here
For other stuff checkout my Profile

Before we proceed, File Structure is like

If the reader is well versed or, has a general experience with shell scripting, Lua language or, know what they are doing then they may skip this section. But it advised to take a good understanding of the file structure before making any changes.

nvim
|
β”œβ”€β”€ bin
β”‚Β Β  β”œβ”€β”€ friendly-snippets
β”‚Β Β  β”œβ”€β”€ luasnip_snippets
β”‚Β Β  └── snippets
β”œβ”€β”€ colors
β”œβ”€β”€ init.lua
β”œβ”€β”€ lua
β”‚Β Β  β”œβ”€β”€ core
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ abbreviations.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ autocmds.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ colorscheme.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ colors.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ constants.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ maps.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ options.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ plugins.lua
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ user.lua
β”‚Β Β  β”‚Β Β  └── utils
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ assistance.lua
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ docker.lua
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ init.lua
β”‚Β Β  β”‚Β Β      β”œβ”€β”€ notify.lua
β”‚Β Β  β”‚Β Β      └── toggle.lua
β”‚Β Β  └── plug
β”‚Β Β      β”œβ”€β”€ chatgpt.lua
β”‚Β Β      β”œβ”€β”€ cheatsheet.lua
β”‚Β Β      β”œβ”€β”€ cmp
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ dynamic.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ init.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ luasnip.lua
β”‚Β Β      β”‚Β Β  └── tabnine.lua
β”‚Β Β      β”œβ”€β”€ colorizer.lua
β”‚Β Β      β”œβ”€β”€ fzf.lua
β”‚Β Β      β”œβ”€β”€ hydra
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ dap.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ git.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ init.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ options.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ spelling.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ telescope.lua
β”‚Β Β      β”‚Β Β  └── windows.lua
β”‚Β Β      β”œβ”€β”€ init.lua
β”‚Β Β      β”œβ”€β”€ lsp
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ diagnostics-highlight-override.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ init.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ lsp-installer.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ null-ls.lua
β”‚Β Β      β”‚Β Β  └── servers
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ bashls.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ clangd.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ emmet-ls.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ gopls.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ itex.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ jsonls.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ marksman.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ pyright.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ sqls.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ sumneko-lua.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ taplo.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ texlab.lua
β”‚Β Β      β”‚Β Β      β”œβ”€β”€ vimls.lua
β”‚Β Β      β”‚Β Β      └── yamlls.lua
β”‚Β Β      β”œβ”€β”€ lspkind.lua
β”‚Β Β      β”œβ”€β”€ mason.lua
β”‚Β Β      β”œβ”€β”€ nvim-tree.lua
β”‚Β Β      β”œβ”€β”€ other.lua
β”‚Β Β      β”œβ”€β”€ regexp.lua
β”‚Β Β      β”œβ”€β”€ tabout.lua
β”‚Β Β      β”œβ”€β”€ telescope
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ init.lua
β”‚Β Β      β”‚Β Β  └── options.lua
β”‚Β Β      β”œβ”€β”€ terminal.lua
β”‚Β Β      β”œβ”€β”€ todo-comments.lua
β”‚Β Β      β”œβ”€β”€ toggle.lua
β”‚Β Β      β”œβ”€β”€ trouble.lua
β”‚Β Β      β”œβ”€β”€ ts-context.lua
β”‚Β Β      β”œβ”€β”€ ui
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ bufferline.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ dashboard.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ git-sign.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ init.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ minimap.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ noice.lua
β”‚Β Β      β”‚Β Β  β”œβ”€β”€ notify.lua
β”‚Β Β      β”‚Β Β  └── statusline.lua
β”‚Β Β      └── whichkey.lua
└── plugin

πŸš€ Install language servers

Mostly available via npm

npm install -g typescript typescript-language-server vscode-langservers-extracted vls @tailwindcss/language-server yaml-language-server @prisma/language-server emmet-ls neovim graphql-language-service-cli graphql-language-service-server @astrojs/language-server bash-language-server

TIP: No sudo on global npm install

Lua, Pyright, Deno, Gopls and rust-analyzer available in Arch/Manjaro repos

sudo pacman -S lua-language-server pyright deno rust-analyzer gopls shellcheck

Check your package manager for availability if not on an Arch based distro - brew, apt etc.

πŸ‘Œ Install formatters

prettier with npm

npm i -g prettier

shfmt is in the AUR

sudo pacman -S shfmt                        # From the AUR
go install mvdan.cc/sh/v3/cmd/shfmt@latest  # With the help of GO

stylua is in the AUR

sudo pacman -S stylua

Check your package manager for availability if not on an Arch based distro - brew, apt etc.

autopep8 for python is in Manjaro/Arch repos

sudo pacman -S autopep8

Check your package manager for availability if not on an Arch based distro - brew, apt etc.

yamlfmt for yaml available with pip

sudo pip install yamlfmt

🧨 Installation

  # move to home dir
  cd ~
  # back up current config
  cp -r ~/.config/nvim ~/.config/nvim.backup
  # clone repository
  git clone https://github.com/adityastomar67/nvstar.git ~/.config
  # Launch nvim for the first time with this command to install plugins
  nvim +PackerInstall
  # exit nvim and Then compile the loader file
  nvim +PackerCompile

Additionals

⭐ Coding Assistance

With the help <Leader>a you can get a list of all the available assistance actions for the current buffer.

Provdes code samples and completions and easily be setted up using the command Copilot auth

It's a premium service, you need access from OpenAI. Then you need to copy your api key from dashboard and paste it into $HOME/.config/openai-codex/env"

⭐ Adding custom Snippets

The conifg uses luasnip paired with friendly-snippets, my own fork for VS Code style snippets. You can add your own snippets to the config snippets directory . You'll also need to edit the snippets/package.json to be able to load your snippets in the correct filetype. One test snippet is included as an example.

Plugins

For a list of plugins, see the plugins file.

More Info

Looking for my zsh and other cli configs? See Dotfiles

Resources and inspiration

Nvim Lua guide

Ben Frain has a nice setup

Lunar Vim for inspiration

Ui Customization docs

Lua for Programmers

LSP config

Awesome list of plugins

Plugin Finder Noting really, if you have (Neo)vim installed then you can just backup your previous config if any, then just clone this repo and create a symlink of this configuration to your ~/.config/nvim

SUGGESTION

For Complete Automated install

Run this code snippet in your terminal (Coming soon...)

curl -sL https://bit.ly/Fresh-Install | sh -s -- --vim