update
This commit is contained in:
		
							parent
							
								
									a1c86556ea
								
							
						
					
					
						commit
						c24d345bda
					
				
							
								
								
									
										29
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										29
									
								
								init.lua
								
								
								
								
							| 
						 | 
				
			
			@ -65,6 +65,11 @@ vim.opt.rtp:prepend(lazypath)
 | 
			
		|||
require('lazy').setup({
 | 
			
		||||
  -- NOTE: First, some plugins that don't require any configuration
 | 
			
		||||
 | 
			
		||||
  { -- Set lualine as statusline
 | 
			
		||||
    'nvim-lualine/lualine.nvim',
 | 
			
		||||
    -- See `:help lualine.txt`
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- Git related plugins
 | 
			
		||||
  'tpope/vim-fugitive',
 | 
			
		||||
  'tpope/vim-rhubarb',
 | 
			
		||||
| 
						 | 
				
			
			@ -115,19 +120,6 @@ require('lazy').setup({
 | 
			
		|||
    'navarasu/onedark.nvim',
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  { -- Set lualine as statusline
 | 
			
		||||
    'nvim-lualine/lualine.nvim',
 | 
			
		||||
    -- See `:help lualine.txt`
 | 
			
		||||
    opts = {
 | 
			
		||||
      options = {
 | 
			
		||||
        icons_enabled = false,
 | 
			
		||||
        theme = 'onedark',
 | 
			
		||||
        component_separators = '|',
 | 
			
		||||
        section_separators = '',
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  { -- Add indentation guides even on blank lines
 | 
			
		||||
    'lukas-reineke/indent-blankline.nvim',
 | 
			
		||||
    -- Enable `lukas-reineke/indent-blankline.nvim`
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +272,7 @@ vim.api.nvim_set_keymap('n', '<leader>cb', ':bd<CR>', { noremap = true, silent =
 | 
			
		|||
vim.g.copilot_no_tab_map = true
 | 
			
		||||
vim.api.nvim_set_keymap("i", "<C-J>", 'copilot#Accept("<CR>")', { silent = true, expr = true })
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_set_keymap('n', ':', '<cmd>FineCmdline<CR>', { noremap = true })
 | 
			
		||||
-- vim.api.nvim_set_keymap('n', ':', '<cmd>FineCmdline<CR>', { noremap = true })
 | 
			
		||||
 | 
			
		||||
vim.api.nvim_set_keymap('n', '<leader>hs', ':nohlsearch<CR>',
 | 
			
		||||
  { noremap = true, silent = true, desc = "toggle of search highlight" })
 | 
			
		||||
| 
						 | 
				
			
			@ -300,6 +292,9 @@ vim.api.nvim_set_keymap('n', '(', "<Cmd>call search('[([{<]')<CR>",
 | 
			
		|||
vim.api.nvim_set_keymap('v', '<M-7>', ":<Esc>/\\%V", { noremap = true, silent = true })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- set keybind to delete the selected text and trhow into the void (not yanking)
 | 
			
		||||
vim.api.nvim_set_keymap('v', '<leader>v', '"_d', { noremap = true, silent = true, desc = '[V]oid' })
 | 
			
		||||
 | 
			
		||||
-- trucco sul relplace.
 | 
			
		||||
-- selezionare la sezione in cui si vuole rimpiazzare una parola (si puo anche non
 | 
			
		||||
-- selezionare, funziona lo stesso) e poi premere : seguito da s/parolaDaCercare/parolaDaSostituire
 | 
			
		||||
| 
						 | 
				
			
			@ -401,7 +396,7 @@ require('nvim-treesitter.configs').setup {
 | 
			
		|||
  ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'typescript', 'help', 'vim' },
 | 
			
		||||
 | 
			
		||||
  -- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
 | 
			
		||||
  auto_install = false,
 | 
			
		||||
  auto_install = true,
 | 
			
		||||
 | 
			
		||||
  highlight = { enable = true },
 | 
			
		||||
  indent = { enable = true, disable = { 'python' } },
 | 
			
		||||
| 
						 | 
				
			
			@ -479,12 +474,12 @@ local on_attach = function(_, bufnr)
 | 
			
		|||
    if desc then
 | 
			
		||||
      desc = 'LSP: ' .. desc
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  vim.api.nvim_set_keymap("n", '<leader>la', "<Cmd>CodeActionMenu<CR>", { desc = '[L]sp [A]ction' })
 | 
			
		||||
  nmap('<leader>lr', vim.lsp.buf.rename, '[L]sp [r]ename')
 | 
			
		||||
  nmap('<leader>la', vim.lsp.buf.code_action, '[L]sp [A]ction')
 | 
			
		||||
  nmap('<leader>ll', vim.lsp.codelens.run, '[L]sp [L]ense')
 | 
			
		||||
 | 
			
		||||
  nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
 | 
			
		||||
  nmap('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
return {
 | 
			
		||||
	'weilbith/nvim-code-action-menu',
 | 
			
		||||
	cmd = 'CodeActionMenu',
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,222 @@
 | 
			
		|||
-- Eviline config for lualine
 | 
			
		||||
-- Author: shadmansaleh
 | 
			
		||||
-- Credit: glepnir
 | 
			
		||||
--
 | 
			
		||||
local lualine = require('lualine')
 | 
			
		||||
 | 
			
		||||
-- Color table for highlights
 | 
			
		||||
-- stylua: ignore
 | 
			
		||||
local colors = {
 | 
			
		||||
	bg       = '#202328',
 | 
			
		||||
	fg       = '#bbc2cf',
 | 
			
		||||
	yellow   = '#ECBE7B',
 | 
			
		||||
	cyan     = '#008080',
 | 
			
		||||
	darkblue = '#081633',
 | 
			
		||||
	green    = '#98be65',
 | 
			
		||||
	orange   = '#FF8800',
 | 
			
		||||
	violet   = '#a9a1e1',
 | 
			
		||||
	magenta  = '#c678dd',
 | 
			
		||||
	blue     = '#51afef',
 | 
			
		||||
	red      = '#ec5f67',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
local conditions = {
 | 
			
		||||
	buffer_not_empty = function()
 | 
			
		||||
		return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
 | 
			
		||||
	end,
 | 
			
		||||
	hide_in_width = function()
 | 
			
		||||
		return vim.fn.winwidth(0) > 80
 | 
			
		||||
	end,
 | 
			
		||||
	check_git_workspace = function()
 | 
			
		||||
		local filepath = vim.fn.expand('%:p:h')
 | 
			
		||||
		local gitdir = vim.fn.finddir('.git', filepath .. ';')
 | 
			
		||||
		return gitdir and #gitdir > 0 and #gitdir < #filepath
 | 
			
		||||
	end,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Config
 | 
			
		||||
local config = {
 | 
			
		||||
	options = {
 | 
			
		||||
		-- Disable sections and component separators
 | 
			
		||||
		component_separators = '',
 | 
			
		||||
		section_separators = '',
 | 
			
		||||
		theme = {
 | 
			
		||||
			-- We are going to use lualine_c an lualine_x as left and
 | 
			
		||||
			-- right section. Both are highlighted by c theme .  So we
 | 
			
		||||
			-- are just setting default looks o statusline
 | 
			
		||||
			normal = { c = { fg = colors.fg, bg = colors.bg } },
 | 
			
		||||
			inactive = { c = { fg = colors.fg, bg = colors.bg } },
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	sections = {
 | 
			
		||||
		-- these are to remove the defaults
 | 
			
		||||
		lualine_a = {},
 | 
			
		||||
		lualine_b = {},
 | 
			
		||||
		lualine_y = {},
 | 
			
		||||
		lualine_z = {},
 | 
			
		||||
		-- These will be filled later
 | 
			
		||||
		lualine_c = {},
 | 
			
		||||
		lualine_x = {},
 | 
			
		||||
	},
 | 
			
		||||
	inactive_sections = {
 | 
			
		||||
		-- these are to remove the defaults
 | 
			
		||||
		lualine_a = {},
 | 
			
		||||
		lualine_b = {},
 | 
			
		||||
		lualine_y = {},
 | 
			
		||||
		lualine_z = {},
 | 
			
		||||
		lualine_c = {},
 | 
			
		||||
		lualine_x = {},
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Inserts a component in lualine_c at left section
 | 
			
		||||
local function ins_left(component)
 | 
			
		||||
	table.insert(config.sections.lualine_c, component)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Inserts a component in lualine_x ot right section
 | 
			
		||||
local function ins_right(component)
 | 
			
		||||
	table.insert(config.sections.lualine_x, component)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	function()
 | 
			
		||||
		return '▊'
 | 
			
		||||
	end,
 | 
			
		||||
	color = { fg = colors.blue }, -- Sets highlighting of component
 | 
			
		||||
	padding = { left = 0, right = 1 }, -- We don't need space before this
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	-- mode component
 | 
			
		||||
	function()
 | 
			
		||||
		return ''
 | 
			
		||||
	end,
 | 
			
		||||
	color = function()
 | 
			
		||||
		-- auto change color according to neovims mode
 | 
			
		||||
		local mode_color = {
 | 
			
		||||
			n = colors.red,
 | 
			
		||||
			i = colors.green,
 | 
			
		||||
			v = colors.blue,
 | 
			
		||||
			[''] = colors.blue,
 | 
			
		||||
			V = colors.blue,
 | 
			
		||||
			c = colors.magenta,
 | 
			
		||||
			no = colors.red,
 | 
			
		||||
			s = colors.orange,
 | 
			
		||||
			S = colors.orange,
 | 
			
		||||
			[''] = colors.orange,
 | 
			
		||||
			ic = colors.yellow,
 | 
			
		||||
			R = colors.violet,
 | 
			
		||||
			Rv = colors.violet,
 | 
			
		||||
			cv = colors.red,
 | 
			
		||||
			ce = colors.red,
 | 
			
		||||
			r = colors.cyan,
 | 
			
		||||
			rm = colors.cyan,
 | 
			
		||||
			['r?'] = colors.cyan,
 | 
			
		||||
			['!'] = colors.red,
 | 
			
		||||
			t = colors.red,
 | 
			
		||||
		}
 | 
			
		||||
		return { fg = mode_color[vim.fn.mode()] }
 | 
			
		||||
	end,
 | 
			
		||||
	padding = { right = 1 },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	-- filesize component
 | 
			
		||||
	'filesize',
 | 
			
		||||
	cond = conditions.buffer_not_empty,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	'filename',
 | 
			
		||||
	cond = conditions.buffer_not_empty,
 | 
			
		||||
	color = { fg = colors.magenta, gui = 'bold' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_left { 'location' }
 | 
			
		||||
 | 
			
		||||
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	'diagnostics',
 | 
			
		||||
	sources = { 'nvim_diagnostic' },
 | 
			
		||||
	symbols = { error = ' ', warn = ' ', info = ' ' },
 | 
			
		||||
	diagnostics_color = {
 | 
			
		||||
		color_error = { fg = colors.red },
 | 
			
		||||
		color_warn = { fg = colors.yellow },
 | 
			
		||||
		color_info = { fg = colors.cyan },
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Insert mid section. You can make any number of sections in neovim :)
 | 
			
		||||
-- for lualine it's any number greater then 2
 | 
			
		||||
ins_left {
 | 
			
		||||
	function()
 | 
			
		||||
		return '%='
 | 
			
		||||
	end,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_left {
 | 
			
		||||
	-- Lsp server name .
 | 
			
		||||
	function()
 | 
			
		||||
		local msg = 'No Active Lsp'
 | 
			
		||||
		local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
 | 
			
		||||
		local clients = vim.lsp.get_active_clients()
 | 
			
		||||
		if next(clients) == nil then
 | 
			
		||||
			return msg
 | 
			
		||||
		end
 | 
			
		||||
		for _, client in ipairs(clients) do
 | 
			
		||||
			local filetypes = client.config.filetypes
 | 
			
		||||
			if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
 | 
			
		||||
				return client.name
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
		return msg
 | 
			
		||||
	end,
 | 
			
		||||
	icon = ' LSP:',
 | 
			
		||||
	color = { fg = '#ffffff', gui = 'bold' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Add components to right sections
 | 
			
		||||
ins_right {
 | 
			
		||||
	'o:encoding', -- option component same as &encoding in viml
 | 
			
		||||
	fmt = string.upper, -- I'm not sure why it's upper case either ;)
 | 
			
		||||
	cond = conditions.hide_in_width,
 | 
			
		||||
	color = { fg = colors.green, gui = 'bold' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_right {
 | 
			
		||||
	'fileformat',
 | 
			
		||||
	fmt = string.upper,
 | 
			
		||||
	icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
 | 
			
		||||
	color = { fg = colors.green, gui = 'bold' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_right {
 | 
			
		||||
	'branch',
 | 
			
		||||
	icon = '',
 | 
			
		||||
	color = { fg = colors.violet, gui = 'bold' },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_right {
 | 
			
		||||
	'diff',
 | 
			
		||||
	-- Is it me or the symbol for modified us really weird
 | 
			
		||||
	symbols = { added = ' ', modified = '柳 ', removed = ' ' },
 | 
			
		||||
	diff_color = {
 | 
			
		||||
		added = { fg = colors.green },
 | 
			
		||||
		modified = { fg = colors.orange },
 | 
			
		||||
		removed = { fg = colors.red },
 | 
			
		||||
	},
 | 
			
		||||
	cond = conditions.hide_in_width,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ins_right {
 | 
			
		||||
	function()
 | 
			
		||||
		return '▊'
 | 
			
		||||
	end,
 | 
			
		||||
	color = { fg = colors.blue },
 | 
			
		||||
	padding = { left = 1 },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-- Now don't forget to initialize lualine
 | 
			
		||||
lualine.setup(config)
 | 
			
		||||
		Loading…
	
		Reference in New Issue