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 = ' '
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set.number = true
 | 
			
		||||
set.relativenumber = true
 | 
			
		||||
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
 | 
			
		||||
require('lazy').setup('plugins')
 | 
			
		||||
require('config')
 | 
			
		||||
require('completion')
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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