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 -->
 | 
					<!-- 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
 | 
					## Describe the bug
 | 
				
			||||||
<!-- A clear and concise description of what the bug is. -->
 | 
					<!-- A clear and concise description of what the bug is. -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,8 +25,8 @@ assignees: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Desktop
 | 
					## Desktop
 | 
				
			||||||
<!-- please complete the following information. -->
 | 
					<!-- please complete the following information. -->
 | 
				
			||||||
- OS: 
 | 
					- OS:
 | 
				
			||||||
- Terminal: 
 | 
					- Terminal:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Neovim Version
 | 
					## Neovim Version
 | 
				
			||||||
<!-- Output of running `:version` from inside of neovim. -->
 | 
					<!-- Output of running `:version` from inside of neovim. -->
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										21
									
								
								README.md
								
								
								
								
							
							
						
						
									
										21
									
								
								README.md
								
								
								
								
							| 
						 | 
					@ -24,7 +24,7 @@ If you are experiencing issues, please make sure you have the latest versions.
 | 
				
			||||||
External Requirements:
 | 
					External Requirements:
 | 
				
			||||||
- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
 | 
					- Basic utils: `git`, `make`, `unzip`, C Compiler (`gcc`)
 | 
				
			||||||
- [ripgrep](https://github.com/BurntSushi/ripgrep#installation)
 | 
					- [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
 | 
					- 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
 | 
					  - if you have it set `vim.g.have_nerd_font` in `init.lua` to true
 | 
				
			||||||
- Language Setup:
 | 
					- 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.
 | 
					fork to your machine using one of the commands below, depending on your OS.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> **NOTE**
 | 
					> **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`
 | 
					> `https://github.com/<your_github_username>/kickstart.nvim.git`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You likely want to remove `lazy-lock.json` from your fork's `.gitignore` file
 | 
					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
 | 
					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
 | 
					#### Clone kickstart.nvim
 | 
				
			||||||
> **NOTE**
 | 
					> **NOTE**
 | 
				
			||||||
| 
						 | 
					@ -101,12 +101,17 @@ nvim
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
That's it! Lazy will install all the plugins you have. Use `:Lazy` to view
 | 
					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
 | 
					Read through the `init.lua` file in your configuration folder for more
 | 
				
			||||||
information about extending and exploring Neovim. That also includes
 | 
					information about extending and exploring Neovim. That also includes
 | 
				
			||||||
examples of adding popularly requested plugins.
 | 
					examples of adding popularly requested plugins.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> [!NOTE]
 | 
				
			||||||
 | 
					> For more information about a particular plugin check its repository's documentation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Getting Started
 | 
					### Getting Started
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -114,9 +119,9 @@ examples of adding popularly requested plugins.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### FAQ
 | 
					### 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.
 | 
					  * 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/`
 | 
					    which can be deleted with `rm -rf ~/.local/share/nvim/`
 | 
				
			||||||
* Can I keep my existing configuration in parallel to kickstart?
 | 
					* 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`
 | 
					  * Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME`
 | 
				
			||||||
| 
						 | 
					@ -135,7 +140,7 @@ examples of adding popularly requested plugins.
 | 
				
			||||||
  * The main purpose of kickstart is to serve as a teaching tool and a reference
 | 
					  * The main purpose of kickstart is to serve as a teaching tool and a reference
 | 
				
			||||||
    configuration that someone can easily use to `git clone` as a basis for their own.
 | 
					    configuration that someone can easily use to `git clone` as a basis for their own.
 | 
				
			||||||
    As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
 | 
					    As you progress in learning Neovim and Lua, you might consider splitting `init.lua`
 | 
				
			||||||
    into smaller parts. A fork of kickstart that does this while maintaining the 
 | 
					    into smaller parts. A fork of kickstart that does this while maintaining the
 | 
				
			||||||
    same functionality is available here:
 | 
					    same functionality is available here:
 | 
				
			||||||
    * [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
 | 
					    * [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim)
 | 
				
			||||||
  * Discussions on this topic can be found here:
 | 
					  * Discussions on this topic can be found here:
 | 
				
			||||||
| 
						 | 
					@ -174,7 +179,7 @@ run in cmd as **admin**:
 | 
				
			||||||
winget install --accept-source-agreements chocolatey.chocolatey
 | 
					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**:
 | 
					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
 | 
					choco install -y neovim git ripgrep wget fd unzip gzip mingw make
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										73
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										73
									
								
								init.lua
								
								
								
								
							| 
						 | 
					@ -140,7 +140,6 @@ vim.opt.signcolumn = 'yes'
 | 
				
			||||||
vim.opt.updatetime = 250
 | 
					vim.opt.updatetime = 250
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Decrease mapped sequence wait time
 | 
					-- Decrease mapped sequence wait time
 | 
				
			||||||
-- Displays which-key popup sooner
 | 
					 | 
				
			||||||
vim.opt.timeoutlen = 300
 | 
					vim.opt.timeoutlen = 300
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Configure how new splits should be opened
 | 
					-- 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-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' })
 | 
					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 ]]
 | 
					-- [[ JMB End ]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- [[ Install `lazy.nvim` plugin manager ]]
 | 
					-- [[ 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
 | 
					  -- which loads which-key before all the UI elements are loaded. Events can be
 | 
				
			||||||
  -- normal autocommands events (`:help autocmd-events`).
 | 
					  -- normal autocommands events (`:help autocmd-events`).
 | 
				
			||||||
  --
 | 
					  --
 | 
				
			||||||
  -- Then, because we use the `config` key, the configuration only runs
 | 
					  -- Then, because we use the `opts` key (recommended), the configuration runs
 | 
				
			||||||
  -- after the plugin has been loaded:
 | 
					  -- after the plugin has been loaded as `require(MODULE).setup(opts)`.
 | 
				
			||||||
  --  config = function() ... end
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  { -- Useful plugin to show you pending keybinds.
 | 
					  { -- Useful plugin to show you pending keybinds.
 | 
				
			||||||
    'folke/which-key.nvim',
 | 
					    'folke/which-key.nvim',
 | 
				
			||||||
    event = 'VimEnter', -- Sets the loading event to 'VimEnter'
 | 
					    event = 'VimEnter', -- Sets the loading event to 'VimEnter'
 | 
				
			||||||
    opts = {
 | 
					    opts = {
 | 
				
			||||||
 | 
					      -- delay between pressing a key and opening which-key (milliseconds)
 | 
				
			||||||
 | 
					      -- this setting is independent of vim.opt.timeoutlen
 | 
				
			||||||
 | 
					      delay = 0,
 | 
				
			||||||
      icons = {
 | 
					      icons = {
 | 
				
			||||||
        -- set icon mappings to true if you have a Nerd Font
 | 
					        -- set icon mappings to true if you have a Nerd Font
 | 
				
			||||||
        mappings = vim.g.have_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
 | 
					        -- 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 {
 | 
					        keys = vim.g.have_nerd_font and {} or {
 | 
				
			||||||
          Up = '<Up> ',
 | 
					          Up = '<Up> ',
 | 
				
			||||||
          Down = '<Down> ',
 | 
					          Down = '<Down> ',
 | 
				
			||||||
| 
						 | 
					@ -485,7 +493,9 @@ require('lazy').setup({
 | 
				
			||||||
    'neovim/nvim-lspconfig',
 | 
					    'neovim/nvim-lspconfig',
 | 
				
			||||||
    dependencies = {
 | 
					    dependencies = {
 | 
				
			||||||
      -- Automatically install LSPs and related tools to stdpath for Neovim
 | 
					      -- 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',
 | 
					      'williamboman/mason-lspconfig.nvim',
 | 
				
			||||||
      'WhoIsSethDaniel/mason-tool-installer.nvim',
 | 
					      'WhoIsSethDaniel/mason-tool-installer.nvim',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -617,6 +627,16 @@ require('lazy').setup({
 | 
				
			||||||
        end,
 | 
					        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.
 | 
					      -- 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.
 | 
					      --  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.
 | 
					      --  When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
 | 
				
			||||||
| 
						 | 
					@ -738,7 +758,21 @@ require('lazy').setup({
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          semanticTokens = true,
 | 
					          semanticTokens = true,
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        terraformls = {},
 | 
					        terraformls = {
 | 
				
			||||||
 | 
					          root_dir = require('lspconfig.util').root_pattern('.terraform', '.git'),
 | 
				
			||||||
 | 
					          filetypes = {
 | 
				
			||||||
 | 
					            'hcl',
 | 
				
			||||||
 | 
					            'tf',
 | 
				
			||||||
 | 
					            'tfvars',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          settings = {
 | 
				
			||||||
 | 
					            terraform = {
 | 
				
			||||||
 | 
					              telemetry = {
 | 
				
			||||||
 | 
					                enabled = false,
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
        pyright = {
 | 
					        pyright = {
 | 
				
			||||||
          capabilities = {
 | 
					          capabilities = {
 | 
				
			||||||
            textDocument = {
 | 
					            textDocument = {
 | 
				
			||||||
| 
						 | 
					@ -772,8 +806,8 @@ require('lazy').setup({
 | 
				
			||||||
        ruff = {},
 | 
					        ruff = {},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        lua_ls = {
 | 
					        lua_ls = {
 | 
				
			||||||
          -- cmd = {...},
 | 
					          -- cmd = { ... },
 | 
				
			||||||
          -- filetypes = { ...},
 | 
					          -- filetypes = { ... },
 | 
				
			||||||
          -- capabilities = {},
 | 
					          -- capabilities = {},
 | 
				
			||||||
          settings = {
 | 
					          settings = {
 | 
				
			||||||
            Lua = {
 | 
					            Lua = {
 | 
				
			||||||
| 
						 | 
					@ -794,13 +828,16 @@ require('lazy').setup({
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      -- Ensure the servers and tools above are installed
 | 
					      -- 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
 | 
					      -- To check the current status of installed tools and/or manually install
 | 
				
			||||||
 | 
					      -- other tools, you can run
 | 
				
			||||||
      --    :Mason
 | 
					      --    :Mason
 | 
				
			||||||
      --
 | 
					      --
 | 
				
			||||||
      --  You can press `g?` for help in this menu.
 | 
					      -- 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
 | 
					      -- You can add other tools here that you want Mason to install
 | 
				
			||||||
      -- for you, so that they are available from within Neovim.
 | 
					      -- for you, so that they are available from within Neovim.
 | 
				
			||||||
      local ensure_installed = vim.tbl_keys(servers or {})
 | 
					      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
 | 
					    --    - 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
 | 
					  -- 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.
 | 
					  -- place them in the correct locations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1162,8 +1199,12 @@ require('lazy').setup({
 | 
				
			||||||
  --    This is the easiest way to modularize your config.
 | 
					  --    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.
 | 
					  --  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' },
 | 
					  { 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 = {
 | 
					  ui = {
 | 
				
			||||||
    -- If you are using a Nerd Font: set icons to an empty table which will use the
 | 
					    -- 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
 | 
					    -- Debugpy for Python debugging
 | 
				
			||||||
    'mfussenegger/nvim-dap-python',
 | 
					    'mfussenegger/nvim-dap-python',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  keys = function(_, keys)
 | 
					  keys = {
 | 
				
			||||||
    local dap = require 'dap'
 | 
					    -- Basic debugging keymaps, feel free to change to your liking!
 | 
				
			||||||
    local dapui = require 'dapui'
 | 
					    {
 | 
				
			||||||
    return {
 | 
					      '<F5>',
 | 
				
			||||||
      -- Basic debugging keymaps, feel free to change to your liking!
 | 
					      function()
 | 
				
			||||||
      { '<F5>', dap.continue, desc = 'Debug: Start/Continue' },
 | 
					        require('dap').continue()
 | 
				
			||||||
      { '<F1>', dap.step_into, desc = 'Debug: Step Into' },
 | 
					      end,
 | 
				
			||||||
      { '<F2>', dap.step_over, desc = 'Debug: Step Over' },
 | 
					      desc = 'Debug: Start/Continue',
 | 
				
			||||||
      { '<F3>', dap.step_out, desc = 'Debug: Step Out' },
 | 
					    },
 | 
				
			||||||
      { '<leader>b', dap.toggle_breakpoint, desc = 'Debug: Toggle Breakpoint' },
 | 
					    {
 | 
				
			||||||
      {
 | 
					      '<F1>',
 | 
				
			||||||
        '<leader>B',
 | 
					      function()
 | 
				
			||||||
        function()
 | 
					        require('dap').step_into()
 | 
				
			||||||
          dap.set_breakpoint(vim.fn.input 'Breakpoint condition: ')
 | 
					      end,
 | 
				
			||||||
        end,
 | 
					      desc = 'Debug: Step Into',
 | 
				
			||||||
        desc = 'Debug: Set Breakpoint',
 | 
					    },
 | 
				
			||||||
      },
 | 
					    {
 | 
				
			||||||
      -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception.
 | 
					      '<F2>',
 | 
				
			||||||
      { '<F7>', dapui.toggle, desc = 'Debug: See last session result.' },
 | 
					      function()
 | 
				
			||||||
      unpack(keys),
 | 
					        require('dap').step_over()
 | 
				
			||||||
    }
 | 
					      end,
 | 
				
			||||||
  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()
 | 
				
			||||||
 | 
					        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>',
 | 
				
			||||||
 | 
					      function()
 | 
				
			||||||
 | 
					        require('dapui').toggle()
 | 
				
			||||||
 | 
					      end,
 | 
				
			||||||
 | 
					      desc = 'Debug: See last session result.',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  config = function()
 | 
					  config = function()
 | 
				
			||||||
    local dap = require 'dap'
 | 
					    local dap = require 'dap'
 | 
				
			||||||
    local dapui = require 'dapui'
 | 
					    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.after.event_initialized['dapui_config'] = dapui.open
 | 
				
			||||||
    dap.listeners.before.event_terminated['dapui_config'] = dapui.close
 | 
					    dap.listeners.before.event_terminated['dapui_config'] = dapui.close
 | 
				
			||||||
    dap.listeners.before.event_exited['dapui_config'] = dapui.close
 | 
					    dap.listeners.before.event_exited['dapui_config'] = dapui.close
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,10 +36,10 @@ return {
 | 
				
			||||||
        -- visual mode
 | 
					        -- visual mode
 | 
				
			||||||
        map('v', '<leader>hs', function()
 | 
					        map('v', '<leader>hs', function()
 | 
				
			||||||
          gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
 | 
					          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()
 | 
					        map('v', '<leader>hr', function()
 | 
				
			||||||
          gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
 | 
					          gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
 | 
				
			||||||
        end, { desc = 'reset git hunk' })
 | 
					        end, { desc = 'git [r]eset hunk' })
 | 
				
			||||||
        -- normal mode
 | 
					        -- normal mode
 | 
				
			||||||
        map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
 | 
					        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>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,12 @@ return {
 | 
				
			||||||
      vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
 | 
					      vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, {
 | 
				
			||||||
        group = lint_augroup,
 | 
					        group = lint_augroup,
 | 
				
			||||||
        callback = function()
 | 
					        callback = function()
 | 
				
			||||||
          lint.try_lint()
 | 
					          -- 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,
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue