Merge branch 'master' of https://github.com/julianobarbosa/kickstart.nvim.wip
This commit is contained in:
		
						commit
						6c11325d38
					
				| 
						 | 
				
			
			@ -9,6 +9,13 @@ assignees: ''
 | 
			
		|||
 | 
			
		||||
<!-- Any bug report not following this template will be immediately closed. Thanks -->
 | 
			
		||||
 | 
			
		||||
## Before Reporting an Issue
 | 
			
		||||
- I have read the kickstart.nvim README.md.
 | 
			
		||||
- I have read the appropiate plugin's documentation.
 | 
			
		||||
- I have searched that this issue has not been reported before.
 | 
			
		||||
 | 
			
		||||
- [ ] **By checking this, I confirm that the above steps are completed. I understand leaving this unchecked will result in this report being closed immediately.**
 | 
			
		||||
 | 
			
		||||
## Describe the bug
 | 
			
		||||
<!-- A clear and concise description of what the bug is. -->
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										19
									
								
								README.md
								
								
								
								
							
							
						
						
									
										19
									
								
								README.md
								
								
								
								
							| 
						 | 
				
			
			@ -24,7 +24,7 @@ If you are experiencing issues, please make sure you have the latest versions.
 | 
			
		|||
External Requirements:
 | 
			
		||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
 | 
			
		||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
 | 
			
		||||
- Clipboard tool (xclip/xsel/win32yank or other depending on platform)
 | 
			
		||||
- 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
 | 
			
		||||
- Language Setup:
 | 
			
		||||
| 
						 | 
				
			
			@ -56,12 +56,12 @@ so that you have your own copy that you can modify, then install by cloning the
 | 
			
		|||
fork to your machine using one of the commands below, depending on your OS.
 | 
			
		||||
 | 
			
		||||
> **NOTE**
 | 
			
		||||
> Your fork's url will be something like this:
 | 
			
		||||
> Your fork's URL will be something like this:
 | 
			
		||||
> `https://github.com/<your_github_username>/kickstart.nvim.git`
 | 
			
		||||
 | 
			
		||||
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
 | 
			
		||||
too - it's ignored in the kickstart repo to make maintenance easier, but it's
 | 
			
		||||
[recommmended to track it in version control](https://lazy.folke.io/usage/lockfile).
 | 
			
		||||
[recommended to track it in version control](https://lazy.folke.io/usage/lockfile).
 | 
			
		||||
 | 
			
		||||
#### Clone kickstart.nvim
 | 
			
		||||
> **NOTE**
 | 
			
		||||
| 
						 | 
				
			
			@ -101,12 +101,17 @@ nvim
 | 
			
		|||
```
 | 
			
		||||
 | 
			
		||||
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
 | 
			
		||||
current plugin status. Hit `q` to close the window.
 | 
			
		||||
the current plugin status. Hit `q` to close the window.
 | 
			
		||||
 | 
			
		||||
#### Read The Friendly Documentation
 | 
			
		||||
 | 
			
		||||
Read through the `init.lua` file in your configuration folder for more
 | 
			
		||||
information about extending and exploring Neovim. That also includes
 | 
			
		||||
examples of adding popularly requested plugins.
 | 
			
		||||
 | 
			
		||||
> [!NOTE]
 | 
			
		||||
> For more information about a particular plugin check its repository's documentation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Getting Started
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -114,9 +119,9 @@ examples of adding popularly requested plugins.
 | 
			
		|||
 | 
			
		||||
### FAQ
 | 
			
		||||
 | 
			
		||||
* What should I do if I already have a pre-existing neovim configuration?
 | 
			
		||||
* What should I do if I already have a pre-existing Neovim configuration?
 | 
			
		||||
  * You should back it up and then delete all associated files.
 | 
			
		||||
  * This includes your existing init.lua and the neovim files in `~/.local`
 | 
			
		||||
  * This includes your existing init.lua and the Neovim files in `~/.local`
 | 
			
		||||
    which can be deleted with `rm -rf ~/.local/share/nvim/`
 | 
			
		||||
* Can I keep my existing configuration in parallel to kickstart?
 | 
			
		||||
  * Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
 | 
			
		||||
| 
						 | 
				
			
			@ -174,7 +179,7 @@ run in cmd as **admin**:
 | 
			
		|||
winget install --accept-source-agreements chocolatey.chocolatey
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
2. install all requirements using choco, exit previous cmd and
 | 
			
		||||
2. install all requirements using choco, exit the previous cmd and
 | 
			
		||||
open a new one so that choco path is set, and run in cmd as **admin**:
 | 
			
		||||
```
 | 
			
		||||
choco install -y neovim git ripgrep wget fd unzip gzip mingw make
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										63
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										63
									
								
								init.lua
								
								
								
								
							| 
						 | 
				
			
			@ -140,7 +140,6 @@ vim.opt.signcolumn = 'yes'
 | 
			
		|||
vim.opt.updatetime = 250
 | 
			
		||||
 | 
			
		||||
-- Decrease mapped sequence wait time
 | 
			
		||||
-- Displays which-key popup sooner
 | 
			
		||||
vim.opt.timeoutlen = 300
 | 
			
		||||
 | 
			
		||||
-- Configure how new splits should be opened
 | 
			
		||||
| 
						 | 
				
			
			@ -224,6 +223,13 @@ vim.api.nvim_command 'cmap QW wq'
 | 
			
		|||
vim.keymap.set('n', '<S-h>', ':bp<CR>', { noremap = true, desc = '[G]oto [P]previous Buffer' })
 | 
			
		||||
vim.keymap.set('n', '<S-l>', ':bn<CR>', { noremap = true, desc = '[G]oto [N]ext Buffer' })
 | 
			
		||||
 | 
			
		||||
-- terraform configuration
 | 
			
		||||
local opts = { noremap = true, silent = true }
 | 
			
		||||
vim.keymap.set('n', '<leader>ti', ':!make init<CR>', opts)
 | 
			
		||||
vim.keymap.set('n', '<leader>tv', ':!make validate<CR>', opts)
 | 
			
		||||
vim.keymap.set('n', '<leader>tp', ':!make plan<CR>', opts)
 | 
			
		||||
vim.keymap.set('n', '<leader>taa', ':!make applyA<CR>', opts)
 | 
			
		||||
 | 
			
		||||
-- [[ JMB End ]]
 | 
			
		||||
 | 
			
		||||
-- [[ Install `lazy.nvim` plugin manager ]]
 | 
			
		||||
| 
						 | 
				
			
			@ -296,19 +302,21 @@ require('lazy').setup({
 | 
			
		|||
  -- which loads which-key before all the UI elements are loaded. Events can be
 | 
			
		||||
  -- normal autocommands events (`:help autocmd-events`).
 | 
			
		||||
  --
 | 
			
		||||
  -- Then, because we use the `config` key, the configuration only runs
 | 
			
		||||
  -- after the plugin has been loaded:
 | 
			
		||||
  --  config = function() ... end
 | 
			
		||||
  -- Then, because we use the `opts` key (recommended), the configuration runs
 | 
			
		||||
  -- after the plugin has been loaded as `require(MODULE).setup(opts)`.
 | 
			
		||||
 | 
			
		||||
  { -- Useful plugin to show you pending keybinds.
 | 
			
		||||
    'folke/which-key.nvim',
 | 
			
		||||
    event = 'VimEnter', -- Sets the loading event to 'VimEnter'
 | 
			
		||||
    opts = {
 | 
			
		||||
      -- delay between pressing a key and opening which-key (milliseconds)
 | 
			
		||||
      -- this setting is independent of vim.opt.timeoutlen
 | 
			
		||||
      delay = 0,
 | 
			
		||||
      icons = {
 | 
			
		||||
        -- set icon mappings to true if you have a Nerd Font
 | 
			
		||||
        mappings = vim.g.have_nerd_font,
 | 
			
		||||
        -- If you are using a Nerd Font: set icons.keys to an empty table which will use the
 | 
			
		||||
        -- default whick-key.nvim defined Nerd Font icons, otherwise define a string table
 | 
			
		||||
        -- default which-key.nvim defined Nerd Font icons, otherwise define a string table
 | 
			
		||||
        keys = vim.g.have_nerd_font and {} or {
 | 
			
		||||
          Up = '<Up> ',
 | 
			
		||||
          Down = '<Down> ',
 | 
			
		||||
| 
						 | 
				
			
			@ -485,7 +493,9 @@ require('lazy').setup({
 | 
			
		|||
    'neovim/nvim-lspconfig',
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      -- Automatically install LSPs and related tools to stdpath for Neovim
 | 
			
		||||
      { 'williamboman/mason.nvim', config = true }, -- NOTE: Must be loaded before dependants
 | 
			
		||||
      -- Mason must be loaded before its dependents so we need to set it up here.
 | 
			
		||||
      -- NOTE: `opts = {}` is the same as calling `require('mason').setup({})`
 | 
			
		||||
      { 'williamboman/mason.nvim', opts = {} },
 | 
			
		||||
      'williamboman/mason-lspconfig.nvim',
 | 
			
		||||
      'WhoIsSethDaniel/mason-tool-installer.nvim',
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -617,6 +627,16 @@ 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
 | 
			
		||||
 | 
			
		||||
      -- 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.
 | 
			
		||||
      --  When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
 | 
			
		||||
| 
						 | 
				
			
			@ -738,7 +758,21 @@ require('lazy').setup({
 | 
			
		|||
          },
 | 
			
		||||
          semanticTokens = true,
 | 
			
		||||
        },
 | 
			
		||||
        terraformls = {},
 | 
			
		||||
        terraformls = {
 | 
			
		||||
          root_dir = require('lspconfig.util').root_pattern('.terraform', '.git'),
 | 
			
		||||
          filetypes = {
 | 
			
		||||
            'hcl',
 | 
			
		||||
            'tf',
 | 
			
		||||
            'tfvars',
 | 
			
		||||
          },
 | 
			
		||||
          settings = {
 | 
			
		||||
            terraform = {
 | 
			
		||||
              telemetry = {
 | 
			
		||||
                enabled = false,
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        pyright = {
 | 
			
		||||
          capabilities = {
 | 
			
		||||
            textDocument = {
 | 
			
		||||
| 
						 | 
				
			
			@ -794,13 +828,16 @@ require('lazy').setup({
 | 
			
		|||
      }
 | 
			
		||||
 | 
			
		||||
      -- Ensure the servers and tools above are installed
 | 
			
		||||
      --
 | 
			
		||||
      -- To check the current status of installed tools and/or manually install
 | 
			
		||||
      -- other tools, you can run
 | 
			
		||||
      --    :Mason
 | 
			
		||||
      --
 | 
			
		||||
      -- You can press `g?` for help in this menu.
 | 
			
		||||
      require('mason').setup()
 | 
			
		||||
 | 
			
		||||
      --
 | 
			
		||||
      -- `mason` had to be setup earlier: to configure its options see the
 | 
			
		||||
      -- `dependencies` table for `nvim-lspconfig` above.
 | 
			
		||||
      --
 | 
			
		||||
      -- You can add other tools here that you want Mason to install
 | 
			
		||||
      -- for you, so that they are available from within Neovim.
 | 
			
		||||
      local ensure_installed = vim.tbl_keys(servers or {})
 | 
			
		||||
| 
						 | 
				
			
			@ -1142,7 +1179,7 @@ require('lazy').setup({
 | 
			
		|||
    --    - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the
 | 
			
		||||
  -- The following comments only work if you have downloaded the kickstart repo, not just copy pasted the
 | 
			
		||||
  -- init.lua. If you want these files, they are in the repository, so you can just download them and
 | 
			
		||||
  -- place them in the correct locations.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1162,8 +1199,12 @@ require('lazy').setup({
 | 
			
		|||
  --    This is the easiest way to modularize your config.
 | 
			
		||||
  --
 | 
			
		||||
  --  Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
 | 
			
		||||
  --    For additional information, see `:help lazy.nvim-lazy.nvim-structuring-your-plugins`
 | 
			
		||||
  { import = 'custom.plugins' },
 | 
			
		||||
  --
 | 
			
		||||
  -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
 | 
			
		||||
  -- Or use telescope!
 | 
			
		||||
  -- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
 | 
			
		||||
  -- you can continue same window with `<space>sr` which resumes last telescope search
 | 
			
		||||
}, {
 | 
			
		||||
  ui = {
 | 
			
		||||
    -- If you are using a Nerd Font: set icons to an empty table which will use the
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,28 +29,59 @@ return {
 | 
			
		|||
    -- Debugpy for Python debugging
 | 
			
		||||
    'mfussenegger/nvim-dap-python',
 | 
			
		||||
  },
 | 
			
		||||
  keys = function(_, keys)
 | 
			
		||||
    local dap = require 'dap'
 | 
			
		||||
    local dapui = require 'dapui'
 | 
			
		||||
    return {
 | 
			
		||||
  keys = {
 | 
			
		||||
    -- Basic debugging keymaps, feel free to change to your liking!
 | 
			
		||||
      { '<F5>', dap.continue, desc = 'Debug: Start/Continue' },
 | 
			
		||||
      { '<F1>', dap.step_into, desc = 'Debug: Step Into' },
 | 
			
		||||
      { '<F2>', dap.step_over, desc = 'Debug: Step Over' },
 | 
			
		||||
      { '<F3>', dap.step_out, desc = 'Debug: Step Out' },
 | 
			
		||||
      { '<leader>b', dap.toggle_breakpoint, desc = 'Debug: Toggle Breakpoint' },
 | 
			
		||||
    {
 | 
			
		||||
      '<F5>',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dap').continue()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Start/Continue',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      '<F1>',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dap').step_into()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Step Into',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      '<F2>',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dap').step_over()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Step Over',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      '<F3>',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dap').step_out()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Step Out',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      '<leader>b',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dap').toggle_breakpoint()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Toggle Breakpoint',
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      '<leader>B',
 | 
			
		||||
      function()
 | 
			
		||||
          dap.set_breakpoint(vim.fn.input 'Breakpoint condition: ')
 | 
			
		||||
        require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: Set Breakpoint',
 | 
			
		||||
    },
 | 
			
		||||
    -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
 | 
			
		||||
      { '<F7>', dapui.toggle, desc = 'Debug: See last session result.' },
 | 
			
		||||
      unpack(keys),
 | 
			
		||||
    }
 | 
			
		||||
    {
 | 
			
		||||
      '<F7>',
 | 
			
		||||
      function()
 | 
			
		||||
        require('dapui').toggle()
 | 
			
		||||
      end,
 | 
			
		||||
      desc = 'Debug: See last session result.',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  config = function()
 | 
			
		||||
    local dap = require 'dap'
 | 
			
		||||
    local dapui = require 'dapui'
 | 
			
		||||
| 
						 | 
				
			
			@ -102,6 +133,18 @@ return {
 | 
			
		|||
      },
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    -- Change breakpoint icons
 | 
			
		||||
    -- vim.api.nvim_set_hl(0, 'DapBreak', { fg = '#e51400' })
 | 
			
		||||
    -- vim.api.nvim_set_hl(0, 'DapStop', { fg = '#ffcc00' })
 | 
			
		||||
    -- local breakpoint_icons = vim.g.have_nerd_font
 | 
			
		||||
    --     and { Breakpoint = '', BreakpointCondition = '', BreakpointRejected = '', LogPoint = '', Stopped = '' }
 | 
			
		||||
    --   or { Breakpoint = '●', BreakpointCondition = '⊜', BreakpointRejected = '⊘', LogPoint = '◆', Stopped = '⭔' }
 | 
			
		||||
    -- for type, icon in pairs(breakpoint_icons) do
 | 
			
		||||
    --   local tp = 'Dap' .. type
 | 
			
		||||
    --   local hl = (type == 'Stopped') and 'DapStop' or 'DapBreak'
 | 
			
		||||
    --   vim.fn.sign_define(tp, { text = icon, texthl = hl, numhl = hl })
 | 
			
		||||
    -- end
 | 
			
		||||
 | 
			
		||||
    dap.listeners.after.event_initialized['dapui_config'] = dapui.open
 | 
			
		||||
    dap.listeners.before.event_terminated['dapui_config'] = dapui.close
 | 
			
		||||
    dap.listeners.before.event_exited['dapui_config'] = dapui.close
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,10 +36,10 @@ return {
 | 
			
		|||
        -- visual mode
 | 
			
		||||
        map('v', '<leader>hs', function()
 | 
			
		||||
          gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
 | 
			
		||||
        end, { desc = 'stage git hunk' })
 | 
			
		||||
        end, { desc = 'git [s]tage hunk' })
 | 
			
		||||
        map('v', '<leader>hr', function()
 | 
			
		||||
          gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
 | 
			
		||||
        end, { desc = 'reset git hunk' })
 | 
			
		||||
        end, { desc = 'git [r]eset hunk' })
 | 
			
		||||
        -- normal mode
 | 
			
		||||
        map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
 | 
			
		||||
        map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,12 @@ return {
 | 
			
		|||
      vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
 | 
			
		||||
        group = lint_augroup,
 | 
			
		||||
        callback = function()
 | 
			
		||||
          -- Only run the linter in buffers that you can modify in order to
 | 
			
		||||
          -- avoid superfluous noise, notably within the handy LSP pop-ups that
 | 
			
		||||
          -- describe the hovered symbol using Markdown.
 | 
			
		||||
          if vim.opt_local.modifiable:get() then
 | 
			
		||||
            lint.try_lint()
 | 
			
		||||
          end
 | 
			
		||||
        end,
 | 
			
		||||
      })
 | 
			
		||||
    end,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue