nvim config added
This commit is contained in:
		@@ -1,2 +0,0 @@
 | 
				
			|||||||
font:
 | 
					 | 
				
			||||||
  size: 8
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								.config/nvim/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.config/nvim/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					lazy-lock.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1,21 +1,20 @@
 | 
				
			|||||||
local set = vim.opt
 | 
					local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 | 
				
			||||||
 | 
					if not vim.loop.fs_stat(lazypath) then
 | 
				
			||||||
 | 
						vim.fn.system({
 | 
				
			||||||
 | 
							"git",
 | 
				
			||||||
 | 
							"clone",
 | 
				
			||||||
 | 
							"--filter=blob:none",
 | 
				
			||||||
 | 
							"https://github.com/folke/lazy.nvim.git",
 | 
				
			||||||
 | 
							"--branch=stable", -- latest stable release
 | 
				
			||||||
 | 
							lazypath,
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					vim.opt.rtp:prepend(lazypath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set.encoding = "utf-8"
 | 
					vim.g.mapleader = ' '
 | 
				
			||||||
 | 
					vim.g.maplocalleader = ' '
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require('lazy').setup('plugins')
 | 
				
			||||||
set.number = true
 | 
					require('config')
 | 
				
			||||||
set.relativenumber = true
 | 
					require('completion')
 | 
				
			||||||
set.tabstop = 4
 | 
					 | 
				
			||||||
set.shiftwidth = 4
 | 
					 | 
				
			||||||
set.expandtab = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set.swapfile = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set.ignorecase = true
 | 
					 | 
				
			||||||
set.smartcase = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set.cursorline = true
 | 
					 | 
				
			||||||
set.linebreak = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set.list = true
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										128
									
								
								.config/nvim/lua/completion.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								.config/nvim/lua/completion.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
				
			|||||||
 | 
					local cmp_status_ok, cmp = pcall(require, "cmp")
 | 
				
			||||||
 | 
						if not cmp_status_ok then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local snip_status_ok, luasnip = pcall(require, "luasnip")
 | 
				
			||||||
 | 
						if not snip_status_ok then
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						require("luasnip/loaders/from_vscode").lazy_load()
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						local check_backspace = function()
 | 
				
			||||||
 | 
							local col = vim.fn.col "." - 1
 | 
				
			||||||
 | 
							return col == 0 or vim.fn.getline("."):sub(col, col):match "%s"
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						--   פּ ﯟ   some other good icons
 | 
				
			||||||
 | 
						local kind_icons = {
 | 
				
			||||||
 | 
							Text = "",
 | 
				
			||||||
 | 
							Method = "m",
 | 
				
			||||||
 | 
							Function = "",
 | 
				
			||||||
 | 
							Constructor = "",
 | 
				
			||||||
 | 
							Field = "",
 | 
				
			||||||
 | 
							Variable = "",
 | 
				
			||||||
 | 
							Class = "",
 | 
				
			||||||
 | 
							Interface = "",
 | 
				
			||||||
 | 
							Module = "",
 | 
				
			||||||
 | 
							Property = "",
 | 
				
			||||||
 | 
							Unit = "",
 | 
				
			||||||
 | 
							Value = "",
 | 
				
			||||||
 | 
							Enum = "",
 | 
				
			||||||
 | 
							Keyword = "",
 | 
				
			||||||
 | 
							Snippet = "",
 | 
				
			||||||
 | 
							Color = "",
 | 
				
			||||||
 | 
							File = "",
 | 
				
			||||||
 | 
							Reference = "",
 | 
				
			||||||
 | 
							Folder = "",
 | 
				
			||||||
 | 
							EnumMember = "",
 | 
				
			||||||
 | 
							Constant = "",
 | 
				
			||||||
 | 
							Struct = "",
 | 
				
			||||||
 | 
							Event = "",
 | 
				
			||||||
 | 
							Operator = "",
 | 
				
			||||||
 | 
							TypeParameter = "",
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						-- find more here: https://www.nerdfonts.com/cheat-sheet
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						cmp.setup {
 | 
				
			||||||
 | 
							snippet = {
 | 
				
			||||||
 | 
								expand = function(args)
 | 
				
			||||||
 | 
									luasnip.lsp_expand(args.body) -- For `luasnip` users.
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							mapping = {
 | 
				
			||||||
 | 
								["<C-k>"] = cmp.mapping.select_prev_item(),
 | 
				
			||||||
 | 
								["<C-j>"] = cmp.mapping.select_next_item(),
 | 
				
			||||||
 | 
								["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
 | 
				
			||||||
 | 
								["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
 | 
				
			||||||
 | 
								["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
 | 
				
			||||||
 | 
								["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
 | 
				
			||||||
 | 
								["<C-e>"] = cmp.mapping {
 | 
				
			||||||
 | 
									i = cmp.mapping.abort(),
 | 
				
			||||||
 | 
									c = cmp.mapping.close(),
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								-- Accept currently selected item. If none selected, `select` first item.
 | 
				
			||||||
 | 
								-- Set `select` to `false` to only confirm explicitly selected items.
 | 
				
			||||||
 | 
								["<CR>"] = cmp.mapping.confirm { select = true },
 | 
				
			||||||
 | 
								["<Tab>"] = cmp.mapping(function(fallback)
 | 
				
			||||||
 | 
									if cmp.visible() then
 | 
				
			||||||
 | 
										cmp.select_next_item()
 | 
				
			||||||
 | 
									elseif luasnip.expandable() then
 | 
				
			||||||
 | 
										luasnip.expand()
 | 
				
			||||||
 | 
									elseif luasnip.expand_or_jumpable() then
 | 
				
			||||||
 | 
										luasnip.expand_or_jump()
 | 
				
			||||||
 | 
									elseif check_backspace() then
 | 
				
			||||||
 | 
										fallback()
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										fallback()
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end, {
 | 
				
			||||||
 | 
									"i",
 | 
				
			||||||
 | 
									"s",
 | 
				
			||||||
 | 
								}),
 | 
				
			||||||
 | 
								["<S-Tab>"] = cmp.mapping(function(fallback)
 | 
				
			||||||
 | 
									if cmp.visible() then
 | 
				
			||||||
 | 
										cmp.select_prev_item()
 | 
				
			||||||
 | 
									elseif luasnip.jumpable(-1) then
 | 
				
			||||||
 | 
										luasnip.jump(-1)
 | 
				
			||||||
 | 
									else
 | 
				
			||||||
 | 
										fallback()
 | 
				
			||||||
 | 
									end
 | 
				
			||||||
 | 
								end, {
 | 
				
			||||||
 | 
									"i",
 | 
				
			||||||
 | 
									"s",
 | 
				
			||||||
 | 
								}),
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							formatting = {
 | 
				
			||||||
 | 
								fields = { "kind", "abbr", "menu" },
 | 
				
			||||||
 | 
								format = function(entry, vim_item)
 | 
				
			||||||
 | 
									-- Kind icons
 | 
				
			||||||
 | 
									vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
 | 
				
			||||||
 | 
									-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
 | 
				
			||||||
 | 
									vim_item.menu = ({
 | 
				
			||||||
 | 
										luasnip = "[Snippet]",
 | 
				
			||||||
 | 
										buffer = "[Buffer]",
 | 
				
			||||||
 | 
										path = "[Path]",
 | 
				
			||||||
 | 
									})[entry.source.name]
 | 
				
			||||||
 | 
									return vim_item
 | 
				
			||||||
 | 
								end,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							sources = {
 | 
				
			||||||
 | 
								{ name = "luasnip" },
 | 
				
			||||||
 | 
								{ name = "buffer" },
 | 
				
			||||||
 | 
								{ name = "path" },
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							confirm_opts = {
 | 
				
			||||||
 | 
								behavior = cmp.ConfirmBehavior.Replace,
 | 
				
			||||||
 | 
								select = false,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							-- documentation = {
 | 
				
			||||||
 | 
							-- 	border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
 | 
				
			||||||
 | 
							-- },
 | 
				
			||||||
 | 
							-- experimental = {
 | 
				
			||||||
 | 
							-- 	ghost_text = false,
 | 
				
			||||||
 | 
							-- 	native_menu = false,
 | 
				
			||||||
 | 
							-- },
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								.config/nvim/lua/config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								.config/nvim/lua/config.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					local set = vim.opt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.mouse = 'a'
 | 
				
			||||||
 | 
					set.encoding = 'utf-8'
 | 
				
			||||||
 | 
					set.fileencoding = 'UTF-8'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.number = true
 | 
				
			||||||
 | 
					set.relativenumber = true
 | 
				
			||||||
 | 
					set.showcmd = true
 | 
				
			||||||
 | 
					vim.o.syntax = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.ignorecase = true
 | 
				
			||||||
 | 
					set.smartcase = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.cursorline = true
 | 
				
			||||||
 | 
					-- bold line number at cursor
 | 
				
			||||||
 | 
					vim.cmd [[ highlight CursorLineNr cterm=bold ]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.linebreak = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- special characters
 | 
				
			||||||
 | 
					set.list = true
 | 
				
			||||||
 | 
					set.listchars = 'tab:→ ,eol:↲,nbsp:␣,trail:•,extends:⟩,precedes:⟨'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.tabstop = 4
 | 
				
			||||||
 | 
					set.shiftwidth = 4
 | 
				
			||||||
 | 
					--set.expandtab = true
 | 
				
			||||||
 | 
					vim.o.expandtab = false
 | 
				
			||||||
 | 
					vim.o.smartindent = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set.swapfile = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								.config/nvim/lua/plugins/git.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.config/nvim/lua/plugins/git.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							'f-person/git-blame.nvim',
 | 
				
			||||||
 | 
							config = function()
 | 
				
			||||||
 | 
								vim.g.gitblame_date_format = '%r'
 | 
				
			||||||
 | 
								vim.g.gitblame_message_when_not_committed = ''
 | 
				
			||||||
 | 
								vim.g.gitblame_display_virtual_text = 0
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							'lewis6991/gitsigns.nvim',
 | 
				
			||||||
 | 
							config = function()
 | 
				
			||||||
 | 
								require('gitsigns').setup()
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										48
									
								
								.config/nvim/lua/plugins/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								.config/nvim/lua/plugins/init.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						'RRethy/nvim-base16',
 | 
				
			||||||
 | 
						'tpope/vim-commentary',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- completion
 | 
				
			||||||
 | 
						'hrsh7th/nvim-cmp',
 | 
				
			||||||
 | 
						'hrsh7th/cmp-buffer',
 | 
				
			||||||
 | 
						'hrsh7th/cmp-path',
 | 
				
			||||||
 | 
						'hrsh7th/cmp-cmdline',
 | 
				
			||||||
 | 
						'saadparwaiz1/cmp_luasnip',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- snippets
 | 
				
			||||||
 | 
						'L3MON4D3/LuaSnip',
 | 
				
			||||||
 | 
						'rafamadriz/friendly-snippets',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- emmet
 | 
				
			||||||
 | 
						'mattn/emmet-vim',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- LSP
 | 
				
			||||||
 | 
						'neovim/nvim-lspconfig',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- LSP, DAP, linters and formatters
 | 
				
			||||||
 | 
						-- 'jose-elias-alvarez/null-ls.nvim',
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							'dense-analysis/ale',
 | 
				
			||||||
 | 
							config = function()
 | 
				
			||||||
 | 
								vim.cmd [[ g:ale_sign_column_always = 1 ]]
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- management for LSP, DAP, linters and formatters
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							'williamboman/mason.nvim',
 | 
				
			||||||
 | 
							config = function()
 | 
				
			||||||
 | 
								require('mason').setup({
 | 
				
			||||||
 | 
									ui = {
 | 
				
			||||||
 | 
										icons = {
 | 
				
			||||||
 | 
											package_installed = "✓",
 | 
				
			||||||
 | 
											package_pending = "➜",
 | 
				
			||||||
 | 
											package_uninstalled = "✗"
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						'williamboman/mason-lspconfig.nvim',
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								.config/nvim/lua/plugins/lualine.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								.config/nvim/lua/plugins/lualine.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						'nvim-lualine/lualine.nvim',
 | 
				
			||||||
 | 
						dependencies = { 'kyazdani42/nvim-web-devicons', lazy = true },
 | 
				
			||||||
 | 
						config = function()
 | 
				
			||||||
 | 
							local git_blame = require('gitblame')
 | 
				
			||||||
 | 
							require('lualine').setup({
 | 
				
			||||||
 | 
								sections = {
 | 
				
			||||||
 | 
									lualine_c = {
 | 
				
			||||||
 | 
										{ git_blame.get_current_blame_text, cond = git_blame.is_blame_text_available }
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							vim.o.showmode = false
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										19
									
								
								.config/nvim/lua/plugins/neo-tree.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.config/nvim/lua/plugins/neo-tree.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						'nvim-neo-tree/neo-tree.nvim',
 | 
				
			||||||
 | 
						cmd = 'Neotree',
 | 
				
			||||||
 | 
						branch = 'v2.x',
 | 
				
			||||||
 | 
						keys = {
 | 
				
			||||||
 | 
							{ '<leader>ft', '<cmd>Neotree toggle<cr>', desc = 'NeoTree' },
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						dependencies = {
 | 
				
			||||||
 | 
							'nvim-lua/plenary.nvim',
 | 
				
			||||||
 | 
							'MunifTanjim/nui.nvim',
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						opts = {
 | 
				
			||||||
 | 
							filesystem = {
 | 
				
			||||||
 | 
								follow_current_file = true,
 | 
				
			||||||
 | 
								hijack_netrw_behavior = 'open_current',
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								.config/nvim/lua/plugins/which-key.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.config/nvim/lua/plugins/which-key.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						"folke/which-key.nvim",
 | 
				
			||||||
 | 
						config = function()
 | 
				
			||||||
 | 
							vim.o.timeout = true
 | 
				
			||||||
 | 
							vim.o.timeoutlen = 300
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								.config/nvim/lua/plugins/zen-mode.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								.config/nvim/lua/plugins/zen-mode.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						'folke/zen-mode.nvim',
 | 
				
			||||||
 | 
						config = {
 | 
				
			||||||
 | 
							window = {
 | 
				
			||||||
 | 
								backdrop = 1,
 | 
				
			||||||
 | 
								width = 80,
 | 
				
			||||||
 | 
								height = .9,
 | 
				
			||||||
 | 
								options = {
 | 
				
			||||||
 | 
									signcolumn = "no",
 | 
				
			||||||
 | 
									number = false,
 | 
				
			||||||
 | 
									relativenumber = false,
 | 
				
			||||||
 | 
									cursorline = false,
 | 
				
			||||||
 | 
									cursorcolumn = false,
 | 
				
			||||||
 | 
									foldcolumn = "0",
 | 
				
			||||||
 | 
									list = false,
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							opts = {
 | 
				
			||||||
 | 
								alacritty = {
 | 
				
			||||||
 | 
									enabled = true,
 | 
				
			||||||
 | 
									font = "13",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						keys = {
 | 
				
			||||||
 | 
							{ '<leader>fg', '<cmd>ZenMode<cr>', desc = 'Zen Mode' },
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user