Merge branch 'nvim-lua:master' into master
This commit is contained in:
		
						commit
						cabcaaa983
					
				
							
								
								
									
										13
									
								
								README.md
								
								
								
								
							
							
						
						
									
										13
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -27,6 +27,7 @@ External Requirements:
 | 
			
		|||
- Clipboard tool (xclip/xsel/win32yank or other depending on the platform)
 | 
			
		||||
- A [Nerd Font](https://www.nerdfonts.com/): optional, provides various icons
 | 
			
		||||
  - if you have it set `vim.g.have_nerd_font` in `init.lua` to true
 | 
			
		||||
- Emoji fonts (Ubuntu only, and only if you want emoji!) `sudo apt install fonts-noto-color-emoji`
 | 
			
		||||
- Language Setup:
 | 
			
		||||
  - If you want to write Typescript, you need `npm`
 | 
			
		||||
  - If you want to write Golang, you will need `go`
 | 
			
		||||
| 
						 | 
				
			
			@ -212,14 +213,14 @@ sudo apt update
 | 
			
		|||
sudo apt install make gcc ripgrep unzip git xclip curl
 | 
			
		||||
 | 
			
		||||
# Now we install nvim
 | 
			
		||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
 | 
			
		||||
sudo rm -rf /opt/nvim-linux64
 | 
			
		||||
sudo mkdir -p /opt/nvim-linux64
 | 
			
		||||
sudo chmod a+rX /opt/nvim-linux64
 | 
			
		||||
sudo tar -C /opt -xzf nvim-linux64.tar.gz
 | 
			
		||||
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
 | 
			
		||||
sudo rm -rf /opt/nvim-linux-x86_64
 | 
			
		||||
sudo mkdir -p /opt/nvim-linux-x86_64
 | 
			
		||||
sudo chmod a+rX /opt/nvim-linux-x86_64
 | 
			
		||||
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
 | 
			
		||||
 | 
			
		||||
# make it available in /usr/local/bin, distro installs to /usr/bin
 | 
			
		||||
sudo ln -sf /opt/nvim-linux64/bin/nvim /usr/local/bin/
 | 
			
		||||
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/
 | 
			
		||||
```
 | 
			
		||||
</details>
 | 
			
		||||
<details><summary>Fedora Install Steps</summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										86
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										86
									
								
								init.lua
								
								
								
								
							| 
						 | 
				
			
			@ -234,12 +234,22 @@ require('lazy').setup({
 | 
			
		|||
  -- with the first argument being the link and the following
 | 
			
		||||
  -- keys can be used to configure plugin behavior/loading/etc.
 | 
			
		||||
  --
 | 
			
		||||
  -- Use `opts = {}` to force a plugin to be loaded.
 | 
			
		||||
  -- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded.
 | 
			
		||||
  --
 | 
			
		||||
 | 
			
		||||
  -- Alternatively, use `config = function() ... end` for full control over the configuration.
 | 
			
		||||
  -- If you prefer to call `setup` explicitly, use:
 | 
			
		||||
  --    {
 | 
			
		||||
  --        'lewis6991/gitsigns.nvim',
 | 
			
		||||
  --        config = function()
 | 
			
		||||
  --            require('gitsigns').setup({
 | 
			
		||||
  --                -- Your gitsigns configuration here
 | 
			
		||||
  --            })
 | 
			
		||||
  --        end,
 | 
			
		||||
  --    }
 | 
			
		||||
  --
 | 
			
		||||
  -- Here is a more advanced example where we pass configuration
 | 
			
		||||
  -- options to `gitsigns.nvim`. This is equivalent to the following Lua:
 | 
			
		||||
  --    require('gitsigns').setup({ ... })
 | 
			
		||||
  -- options to `gitsigns.nvim`.
 | 
			
		||||
  --
 | 
			
		||||
  -- See `:help gitsigns` to understand what the configuration keys do
 | 
			
		||||
  -- { -- Adds git related signs to the gutter, as well as utilities for managing changes
 | 
			
		||||
| 
						 | 
				
			
			@ -553,13 +563,26 @@ require('lazy').setup({
 | 
			
		|||
          --  For example, in C this would take you to the header.
 | 
			
		||||
          map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
 | 
			
		||||
 | 
			
		||||
          -- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10)
 | 
			
		||||
          ---@param client vim.lsp.Client
 | 
			
		||||
          ---@param method vim.lsp.protocol.Method
 | 
			
		||||
          ---@param bufnr? integer some lsp support methods only in specific files
 | 
			
		||||
          ---@return boolean
 | 
			
		||||
          local function client_supports_method(client, method, bufnr)
 | 
			
		||||
            if vim.fn.has 'nvim-0.11' == 1 then
 | 
			
		||||
              return client:supports_method(method, bufnr)
 | 
			
		||||
            else
 | 
			
		||||
              return client.supports_method(method, { bufnr = bufnr })
 | 
			
		||||
            end
 | 
			
		||||
          end
 | 
			
		||||
 | 
			
		||||
          -- The following two autocommands are used to highlight references of the
 | 
			
		||||
          -- word under your cursor when your cursor rests there for a little while.
 | 
			
		||||
          --    See `:help CursorHold` for information about when this is executed
 | 
			
		||||
          --
 | 
			
		||||
          -- When you move your cursor, the highlights will be cleared (the second autocommand).
 | 
			
		||||
          local client = vim.lsp.get_client_by_id(event.data.client_id)
 | 
			
		||||
          if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
 | 
			
		||||
          if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
 | 
			
		||||
            local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
 | 
			
		||||
            vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
 | 
			
		||||
              buffer = event.buf,
 | 
			
		||||
| 
						 | 
				
			
			@ -586,7 +609,7 @@ require('lazy').setup({
 | 
			
		|||
          -- code, if the language server you are using supports them
 | 
			
		||||
          --
 | 
			
		||||
          -- This may be unwanted, since they displace some of your code
 | 
			
		||||
          if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
 | 
			
		||||
          if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then
 | 
			
		||||
            map('<leader>th', function()
 | 
			
		||||
              vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
 | 
			
		||||
            end, '[T]oggle Inlay [H]ints')
 | 
			
		||||
| 
						 | 
				
			
			@ -594,15 +617,34 @@ require('lazy').setup({
 | 
			
		|||
        end,
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      -- Change diagnostic symbols in the sign column (gutter)
 | 
			
		||||
      -- if vim.g.have_nerd_font then
 | 
			
		||||
      --   local signs = { ERROR = '', WARN = '', INFO = '', HINT = '' }
 | 
			
		||||
      --   local diagnostic_signs = {}
 | 
			
		||||
      --   for type, icon in pairs(signs) do
 | 
			
		||||
      --     diagnostic_signs[vim.diagnostic.severity[type]] = icon
 | 
			
		||||
      --   end
 | 
			
		||||
      --   vim.diagnostic.config { signs = { text = diagnostic_signs } }
 | 
			
		||||
      -- end
 | 
			
		||||
      -- Diagnostic Config
 | 
			
		||||
      -- See :help vim.diagnostic.Opts
 | 
			
		||||
      vim.diagnostic.config {
 | 
			
		||||
        severity_sort = true,
 | 
			
		||||
        float = { border = 'rounded', source = 'if_many' },
 | 
			
		||||
        underline = { severity = vim.diagnostic.severity.ERROR },
 | 
			
		||||
        signs = vim.g.have_nerd_font and {
 | 
			
		||||
          text = {
 | 
			
		||||
            [vim.diagnostic.severity.ERROR] = ' ',
 | 
			
		||||
            [vim.diagnostic.severity.WARN] = ' ',
 | 
			
		||||
            [vim.diagnostic.severity.INFO] = ' ',
 | 
			
		||||
            [vim.diagnostic.severity.HINT] = ' ',
 | 
			
		||||
          },
 | 
			
		||||
        } or {},
 | 
			
		||||
        virtual_text = {
 | 
			
		||||
          source = 'if_many',
 | 
			
		||||
          spacing = 2,
 | 
			
		||||
          format = function(diagnostic)
 | 
			
		||||
            local diagnostic_message = {
 | 
			
		||||
              [vim.diagnostic.severity.ERROR] = diagnostic.message,
 | 
			
		||||
              [vim.diagnostic.severity.WARN] = diagnostic.message,
 | 
			
		||||
              [vim.diagnostic.severity.INFO] = diagnostic.message,
 | 
			
		||||
              [vim.diagnostic.severity.HINT] = diagnostic.message,
 | 
			
		||||
            }
 | 
			
		||||
            return diagnostic_message[diagnostic.severity]
 | 
			
		||||
          end,
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      -- LSP servers and clients are able to communicate to each other what features they support.
 | 
			
		||||
      --  By default, Neovim doesn't support everything that is in the LSP specification.
 | 
			
		||||
| 
						 | 
				
			
			@ -710,6 +752,8 @@ require('lazy').setup({
 | 
			
		|||
      require('mason-tool-installer').setup { ensure_installed = ensure_installed }
 | 
			
		||||
 | 
			
		||||
      require('mason-lspconfig').setup {
 | 
			
		||||
        ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer)
 | 
			
		||||
        automatic_installation = false,
 | 
			
		||||
        handlers = {
 | 
			
		||||
          function(server_name)
 | 
			
		||||
            local server = servers[server_name] or {}
 | 
			
		||||
| 
						 | 
				
			
			@ -804,6 +848,7 @@ require('lazy').setup({
 | 
			
		|||
      --  into multiple repos for maintenance purposes.
 | 
			
		||||
      'hrsh7th/cmp-nvim-lsp',
 | 
			
		||||
      'hrsh7th/cmp-path',
 | 
			
		||||
      'hrsh7th/cmp-nvim-lsp-signature-help',
 | 
			
		||||
    },
 | 
			
		||||
    config = function()
 | 
			
		||||
      -- See `:help cmp`
 | 
			
		||||
| 
						 | 
				
			
			@ -881,6 +926,7 @@ require('lazy').setup({
 | 
			
		|||
          { name = 'nvim_lsp' },
 | 
			
		||||
          { name = 'luasnip' },
 | 
			
		||||
          { name = 'path' },
 | 
			
		||||
          { name = 'nvim_lsp_signature_help' },
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
| 
						 | 
				
			
			@ -893,14 +939,18 @@ require('lazy').setup({
 | 
			
		|||
    -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
 | 
			
		||||
    'folke/tokyonight.nvim',
 | 
			
		||||
    priority = 1000, -- Make sure to load this before all the other start plugins.
 | 
			
		||||
    init = function()
 | 
			
		||||
    config = function()
 | 
			
		||||
      ---@diagnostic disable-next-line: missing-fields
 | 
			
		||||
      require('tokyonight').setup {
 | 
			
		||||
        styles = {
 | 
			
		||||
          comments = { italic = false }, -- Disable italics in comments
 | 
			
		||||
        },
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      -- Load the colorscheme here.
 | 
			
		||||
      -- Like many other themes, this one has different styles, and you could load
 | 
			
		||||
      -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
 | 
			
		||||
      vim.cmd.colorscheme 'tokyonight-night'
 | 
			
		||||
 | 
			
		||||
      -- You can configure highlights by doing something like:
 | 
			
		||||
      vim.cmd.hi 'Comment gui=none'
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ return {
 | 
			
		|||
        map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
 | 
			
		||||
        map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
 | 
			
		||||
        map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
 | 
			
		||||
        map('n', '<leader>hu', gitsigns.undo_stage_hunk, { desc = 'git [u]ndo stage hunk' })
 | 
			
		||||
        map('n', '<leader>hu', gitsigns.stage_hunk, { desc = 'git [u]ndo stage hunk' })
 | 
			
		||||
        map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
 | 
			
		||||
        map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
 | 
			
		||||
        map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ return {
 | 
			
		|||
        end, { desc = 'git [D]iff against last commit' })
 | 
			
		||||
        -- Toggles
 | 
			
		||||
        map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
 | 
			
		||||
        map('n', '<leader>tD', gitsigns.toggle_deleted, { desc = '[T]oggle git show [D]eleted' })
 | 
			
		||||
        map('n', '<leader>tD', gitsigns.preview_hunk_inline, { desc = '[T]oggle git show [D]eleted' })
 | 
			
		||||
      end,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue