inital commit,
initalized from nix flake init -t github:BirdeeHub/nixCats-nvim#example.
This commit is contained in:
		
						commit
						9a78fd2d53
					
				
					 21 changed files with 2208 additions and 0 deletions
				
			
		
							
								
								
									
										47
									
								
								lua/myLuaConf/LSPs/on_attach.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								lua/myLuaConf/LSPs/on_attach.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
return function(_, bufnr)
 | 
			
		||||
  -- we create a function that lets us more easily define mappings specific
 | 
			
		||||
  -- for LSP related items. It sets the mode, buffer and description for us each time.
 | 
			
		||||
 | 
			
		||||
  local nmap = function(keys, func, desc)
 | 
			
		||||
    if desc then
 | 
			
		||||
      desc = 'LSP: ' .. desc
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc })
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  nmap('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
 | 
			
		||||
  nmap('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
 | 
			
		||||
 | 
			
		||||
  nmap('gd', vim.lsp.buf.definition, '[G]oto [D]efinition')
 | 
			
		||||
 | 
			
		||||
  -- NOTE: why are these functions that call the telescope builtin?
 | 
			
		||||
  -- because otherwise they would load telescope eagerly when this is defined.
 | 
			
		||||
  -- due to us using the on_require handler to make sure it is available.
 | 
			
		||||
  if nixCats('general.telescope') then
 | 
			
		||||
    nmap('gr', function() require('telescope.builtin').lsp_references() end, '[G]oto [R]eferences')
 | 
			
		||||
    nmap('gI', function() require('telescope.builtin').lsp_implementations() end, '[G]oto [I]mplementation')
 | 
			
		||||
    nmap('<leader>ds', function() require('telescope.builtin').lsp_document_symbols() end, '[D]ocument [S]ymbols')
 | 
			
		||||
    nmap('<leader>ws', function() require('telescope.builtin').lsp_dynamic_workspace_symbols() end, '[W]orkspace [S]ymbols')
 | 
			
		||||
  end -- TODO: someone who knows the builtin versions of these to do instead help me out please.
 | 
			
		||||
 | 
			
		||||
  nmap('<leader>D', vim.lsp.buf.type_definition, 'Type [D]efinition')
 | 
			
		||||
 | 
			
		||||
  -- See `:help K` for why this keymap
 | 
			
		||||
  nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
 | 
			
		||||
  nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
 | 
			
		||||
 | 
			
		||||
  -- Lesser used LSP functionality
 | 
			
		||||
  nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
 | 
			
		||||
  nmap('<leader>wa', vim.lsp.buf.add_workspace_folder, '[W]orkspace [A]dd Folder')
 | 
			
		||||
  nmap('<leader>wr', vim.lsp.buf.remove_workspace_folder, '[W]orkspace [R]emove Folder')
 | 
			
		||||
  nmap('<leader>wl', function()
 | 
			
		||||
    print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
 | 
			
		||||
  end, '[W]orkspace [L]ist Folders')
 | 
			
		||||
 | 
			
		||||
  -- Create a command `:Format` local to the LSP buffer
 | 
			
		||||
  vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
 | 
			
		||||
    vim.lsp.buf.format()
 | 
			
		||||
  end, { desc = 'Format current buffer with LSP' })
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue