Compare commits
15 Commits
de44f49101
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a515f65f7d | ||
|
|
7b0cdd0b2d | ||
|
|
abfadff35e | ||
|
|
736a2699b9 | ||
|
|
73bb97ed1d | ||
|
|
897d1e8d7b | ||
| a8245b6783 | |||
| e1390e2101 | |||
| e324019a1c | |||
| 37aba09336 | |||
| fd0db7d448 | |||
| 1459ea94bf | |||
|
|
a8f539562a | ||
|
|
7ddaab3ffd | ||
|
|
e84e187f3c |
11
.github/ISSUE_TEMPLATE/bug_report.md
vendored
11
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -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. -->
|
||||||
|
|||||||
57
AGENTS.md
Normal file
57
AGENTS.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# AGENTS.md - Neovim Configuration Guide
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This is a kickstart.nvim fork - a modular Neovim configuration written in Lua. Code is organized in:
|
||||||
|
- `/init.lua` - Main entry point (kept concise for learning)
|
||||||
|
- `/lua/custom/` - User custom configurations and plugins
|
||||||
|
- `/lua/kickstart/` - Core plugin configurations
|
||||||
|
|
||||||
|
## Code Style Guidelines
|
||||||
|
|
||||||
|
### Lua Formatting
|
||||||
|
- **Formatter**: Stylua (enforced via CI)
|
||||||
|
- **Config**: `.stylua.toml` (column_width=160, indent=2 spaces, auto quote style)
|
||||||
|
- **Command**: `stylua .` to format all files, `stylua --check .` to verify
|
||||||
|
|
||||||
|
### Code Conventions
|
||||||
|
- **Imports**: Use `require()` to load modules; prefer relative paths from `/lua/`
|
||||||
|
- **Comments**: Use `--` for single-line, `--[[` for block comments; include URLs for plugins
|
||||||
|
- **Naming**: snake_case for variables/functions, PascalCase for classes
|
||||||
|
- **Lua tables**: Preferred data structure; use clear key names
|
||||||
|
- **Error handling**: Use `pcall()` for risky operations; fail gracefully with fallbacks
|
||||||
|
|
||||||
|
### Plugin Structure
|
||||||
|
- Each plugin is a separate file returning a table with name, dependencies, config
|
||||||
|
- Use `event`, `cmd`, `ft` keys for lazy-loading optimization
|
||||||
|
- Config functions should be self-contained and well-commented
|
||||||
|
|
||||||
|
## Build/Lint/Test Commands
|
||||||
|
|
||||||
|
### Format & Lint
|
||||||
|
```bash
|
||||||
|
# Format all Lua files
|
||||||
|
stylua .
|
||||||
|
|
||||||
|
# Check formatting without changing files
|
||||||
|
stylua --check .
|
||||||
|
|
||||||
|
# Format specific file
|
||||||
|
stylua path/to/file.lua
|
||||||
|
```
|
||||||
|
|
||||||
|
### No traditional tests
|
||||||
|
This is a configuration repo, not a testable library. Validation is manual:
|
||||||
|
- Start Neovim: `nvim`
|
||||||
|
- Check `:Lazy` status for plugin errors
|
||||||
|
- Review `:checkhealth` for configuration issues
|
||||||
|
- Test manually in editor to verify keymaps/features work
|
||||||
|
|
||||||
|
### Linting
|
||||||
|
- Neovim's built-in Lua LSP provides type checking (integrated via plugin)
|
||||||
|
- The GitHub Actions workflow runs `stylua --check` on PRs
|
||||||
|
|
||||||
|
## Key Notes
|
||||||
|
- **Language**: Lua 5.1+ (Neovim's version)
|
||||||
|
- **No external build process**: Configuration is interpreted at runtime
|
||||||
|
- **Plugin manager**: Lazy.nvim (auto-installs missing plugins on startup)
|
||||||
|
- **Target**: Latest Neovim stable + nightly versions
|
||||||
23
README.md
23
README.md
@@ -1,5 +1,7 @@
|
|||||||
# kickstart.nvim
|
# kickstart.nvim
|
||||||
|
|
||||||
|
This fork of kickstart.nvim has a few plugins added and is used a general base though just cloning it will get you 90% of the way through most of your development in various languages.
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
A starting point for Neovim that is:
|
A starting point for Neovim that is:
|
||||||
@@ -24,7 +26,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 +58,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 +103,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 +121,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 +142,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 +181,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
|
||||||
|
|||||||
31
init.lua
31
init.lua
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
|||||||
vim.g.maplocalleader = ' '
|
vim.g.maplocalleader = ' '
|
||||||
|
|
||||||
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
-- Set to true if you have a Nerd Font installed and selected in the terminal
|
||||||
vim.g.have_nerd_font = false
|
vim.g.have_nerd_font = true
|
||||||
|
|
||||||
-- [[ Setting options ]]
|
-- [[ Setting options ]]
|
||||||
-- See `:help vim.opt`
|
-- See `:help vim.opt`
|
||||||
@@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
|
|||||||
vim.opt.number = true
|
vim.opt.number = true
|
||||||
-- You can also add relative line numbers, to help with jumping.
|
-- You can also add relative line numbers, to help with jumping.
|
||||||
-- Experiment for yourself to see if you like it!
|
-- Experiment for yourself to see if you like it!
|
||||||
-- vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
-- Enable mouse mode, can be useful for resizing splits for example!
|
-- Enable mouse mode, can be useful for resizing splits for example!
|
||||||
vim.opt.mouse = 'a'
|
vim.opt.mouse = 'a'
|
||||||
@@ -135,7 +135,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
|
||||||
@@ -274,6 +273,9 @@ require('lazy').setup({
|
|||||||
'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,
|
||||||
@@ -641,6 +643,9 @@ require('lazy').setup({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
ansiblels = {
|
||||||
|
filetypes = { 'yaml.ansible', 'ansible' },
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Ensure the servers and tools above are installed
|
-- Ensure the servers and tools above are installed
|
||||||
@@ -656,6 +661,7 @@ require('lazy').setup({
|
|||||||
local ensure_installed = vim.tbl_keys(servers or {})
|
local ensure_installed = vim.tbl_keys(servers or {})
|
||||||
vim.list_extend(ensure_installed, {
|
vim.list_extend(ensure_installed, {
|
||||||
'stylua', -- Used to format Lua code
|
'stylua', -- Used to format Lua code
|
||||||
|
'ansible-language-server', -- Ansible LSP for YAML Ansible files
|
||||||
})
|
})
|
||||||
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
require('mason-tool-installer').setup { ensure_installed = ensure_installed }
|
||||||
|
|
||||||
@@ -825,6 +831,7 @@ require('lazy').setup({
|
|||||||
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
||||||
group_index = 0,
|
group_index = 0,
|
||||||
},
|
},
|
||||||
|
{ name = 'copilot' },
|
||||||
{ name = 'nvim_lsp' },
|
{ name = 'nvim_lsp' },
|
||||||
{ name = 'luasnip' },
|
{ name = 'luasnip' },
|
||||||
{ name = 'path' },
|
{ name = 'path' },
|
||||||
@@ -893,8 +900,9 @@ require('lazy').setup({
|
|||||||
},
|
},
|
||||||
{ -- Highlight, edit, and navigate code
|
{ -- Highlight, edit, and navigate code
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
lazy = false,
|
||||||
build = ':TSUpdate',
|
build = ':TSUpdate',
|
||||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
main = 'nvim-treesitter.config', -- Sets main module to use for opts
|
||||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||||
opts = {
|
opts = {
|
||||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||||
@@ -926,18 +934,17 @@ require('lazy').setup({
|
|||||||
-- Here are some example plugins that I've included in the Kickstart repository.
|
-- Here are some example plugins that I've included in the Kickstart repository.
|
||||||
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
-- Uncomment any of the lines below to enable them (you will need to restart nvim).
|
||||||
--
|
--
|
||||||
-- require 'kickstart.plugins.debug',
|
require 'kickstart.plugins.debug',
|
||||||
-- require 'kickstart.plugins.indent_line',
|
require 'kickstart.plugins.indent_line',
|
||||||
-- require 'kickstart.plugins.lint',
|
require 'kickstart.plugins.lint',
|
||||||
-- require 'kickstart.plugins.autopairs',
|
require 'kickstart.plugins.autopairs',
|
||||||
-- require 'kickstart.plugins.neo-tree',
|
require 'kickstart.plugins.neo-tree',
|
||||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||||
|
|
||||||
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
|
||||||
-- 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.
|
||||||
-- { import = 'custom.plugins' },
|
{ import = 'custom.plugins' },
|
||||||
--
|
--
|
||||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||||
-- Or use telescope!
|
-- Or use telescope!
|
||||||
|
|||||||
0
lua/custom/options.lua
Normal file
0
lua/custom/options.lua
Normal file
21
lua/custom/plugins/ansible.lua
Normal file
21
lua/custom/plugins/ansible.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
-- Ansible configuration for detecting .yml files in roles and playbooks directories
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
'neovim/nvim-lspconfig',
|
||||||
|
optional = true,
|
||||||
|
-- This table sets up file type detection for Ansible files
|
||||||
|
init = function()
|
||||||
|
-- Set up autocommand to detect Ansible files and set their filetype
|
||||||
|
local ansible_augroup = vim.api.nvim_create_augroup('ansible-detection', { clear = true })
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, {
|
||||||
|
group = ansible_augroup,
|
||||||
|
pattern = { '*/roles/**/*.yml', '*/roles/**/*.yaml', '*/playbooks/**/*.yml', '*/playbooks/**/*.yaml', '*/hosts/**/*.yml', '*/hosts/**/*.yaml' },
|
||||||
|
callback = function()
|
||||||
|
vim.bo.filetype = 'yaml.ansible'
|
||||||
|
end,
|
||||||
|
desc = 'Set filetype to yaml.ansible for Ansible files',
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
10
lua/custom/plugins/code-companion.lua
Normal file
10
lua/custom/plugins/code-companion.lua
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
return {
|
||||||
|
'olimorris/codecompanion.nvim',
|
||||||
|
opts = {
|
||||||
|
ignore_warnings = true,
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
'nvim-treesitter/nvim-treesitter',
|
||||||
|
},
|
||||||
|
}
|
||||||
38
lua/custom/plugins/copilot.lua
Normal file
38
lua/custom/plugins/copilot.lua
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'zbirenbaum/copilot.lua',
|
||||||
|
cmd = 'Copilot',
|
||||||
|
event = 'InsertEnter',
|
||||||
|
config = function()
|
||||||
|
require('copilot').setup {
|
||||||
|
suggestion = { enabled = false },
|
||||||
|
panel = { enabled = false },
|
||||||
|
filetypes = {
|
||||||
|
yaml = true,
|
||||||
|
['yaml.ansible'] = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'zbirenbaum/copilot-cmp',
|
||||||
|
event = 'InsertEnter',
|
||||||
|
config = function()
|
||||||
|
require('copilot_cmp').setup()
|
||||||
|
end,
|
||||||
|
dependencies = {
|
||||||
|
'zbirenbaum/copilot.lua',
|
||||||
|
cmd = 'Copilot',
|
||||||
|
config = function()
|
||||||
|
require('copilot').setup {
|
||||||
|
suggestion = { enabled = true },
|
||||||
|
panel = { enabled = true },
|
||||||
|
filetypes = {
|
||||||
|
yaml = true,
|
||||||
|
['yaml.ansible'] = true,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
50
lua/custom/plugins/harpoon.lua
Normal file
50
lua/custom/plugins/harpoon.lua
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
return {
|
||||||
|
'ThePrimeagen/harpoon',
|
||||||
|
branch = 'harpoon2',
|
||||||
|
requires = { { 'nvim-lua/plenary.nvim' } },
|
||||||
|
config = function()
|
||||||
|
local harpoon = require 'harpoon'
|
||||||
|
harpoon:setup()
|
||||||
|
-- Harpoon remaps
|
||||||
|
vim.keymap.set('n', '<leader>hm', function()
|
||||||
|
harpoon:list():append()
|
||||||
|
end, { desc = 'Add buffer to Harpoon list' })
|
||||||
|
vim.keymap.set('n', '<C-e>', function()
|
||||||
|
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||||
|
end)
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<C-h>', function()
|
||||||
|
harpoon:list():select(1)
|
||||||
|
end)
|
||||||
|
vim.keymap.set('n', '<C-t>', function()
|
||||||
|
harpoon:list():select(2)
|
||||||
|
end)
|
||||||
|
vim.keymap.set('n', '<C-s>', function()
|
||||||
|
harpoon:list():select(3)
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- Toggle previous & next buffers stored within Harpoon list
|
||||||
|
vim.keymap.set('n', '<C-S-P>', function()
|
||||||
|
harpoon:list():prev()
|
||||||
|
end)
|
||||||
|
vim.keymap.set('n', '<C-S-N>', function()
|
||||||
|
harpoon:list():next()
|
||||||
|
end)
|
||||||
|
|
||||||
|
harpoon:extend {
|
||||||
|
UI_CREATE = function(cx)
|
||||||
|
vim.keymap.set('n', '<C-v>', function()
|
||||||
|
harpoon.ui:select_menu_item { vsplit = true }
|
||||||
|
end, { buffer = cx.bufnr })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<C-x>', function()
|
||||||
|
harpoon.ui:select_menu_item { split = true }
|
||||||
|
end, { buffer = cx.bufnr })
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<C-t>', function()
|
||||||
|
harpoon.ui:select_menu_item { tabedit = true }
|
||||||
|
end, { buffer = cx.bufnr })
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -2,4 +2,6 @@
|
|||||||
-- I promise not to create any merge conflicts in this directory :)
|
-- I promise not to create any merge conflicts in this directory :)
|
||||||
--
|
--
|
||||||
-- See the kickstart.nvim README for more information
|
-- See the kickstart.nvim README for more information
|
||||||
return {}
|
return {
|
||||||
|
require 'custom.plugins.ansible',
|
||||||
|
}
|
||||||
|
|||||||
10
lua/custom/plugins/lazygit.lua
Normal file
10
lua/custom/plugins/lazygit.lua
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
return {
|
||||||
|
'kdheepak/lazygit.nvim',
|
||||||
|
-- optional for floating window border decoration
|
||||||
|
dependencies = {
|
||||||
|
'nvim-lua/plenary.nvim',
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
vim.keymap.set('n', '<leader>gg', ':LazyGit <CR>')
|
||||||
|
end,
|
||||||
|
}
|
||||||
14
lua/custom/plugins/mcp-hub.lua
Normal file
14
lua/custom/plugins/mcp-hub.lua
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
-- 'ravitemer/mcphub.nvim',
|
||||||
|
-- dependencies = {
|
||||||
|
-- 'nvim-lua/plenary.nvim', -- Required for Job and HTTP requests
|
||||||
|
-- },
|
||||||
|
-- -- uncomment the following line to load hub lazily
|
||||||
|
-- --cmd = "MCPHub", -- lazy load
|
||||||
|
-- build = 'npm install -g mcp-hub@latest', -- Installs required mcp-hub npm module
|
||||||
|
-- -- uncomment this if you don't want mcp-hub to be available globally or can't use -g
|
||||||
|
-- -- build = "bundled_build.lua", -- Use this and set use_bundled_binary = true in opts (see Advanced configuration)
|
||||||
|
-- config = function()
|
||||||
|
-- require('mcphub').setup()
|
||||||
|
-- end,
|
||||||
|
}
|
||||||
15
lua/custom/plugins/noice.lua
Normal file
15
lua/custom/plugins/noice.lua
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
return {
|
||||||
|
'folke/noice.nvim',
|
||||||
|
event = 'VeryLazy',
|
||||||
|
opts = {
|
||||||
|
-- add any options here
|
||||||
|
},
|
||||||
|
dependencies = {
|
||||||
|
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||||
|
'MunifTanjim/nui.nvim',
|
||||||
|
-- OPTIONAL:
|
||||||
|
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||||
|
-- If not available, we use `mini` as the fallback
|
||||||
|
'rcarriga/nvim-notify',
|
||||||
|
},
|
||||||
|
}
|
||||||
41
lua/custom/plugins/toggleterm.lua
Normal file
41
lua/custom/plugins/toggleterm.lua
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'akinsho/toggleterm.nvim',
|
||||||
|
-- [[ cmd = { "toggleterm", "termexec" }, ]]
|
||||||
|
opts = {
|
||||||
|
-- close_on_exit = false,
|
||||||
|
highlights = {
|
||||||
|
normal = { link = 'normal' },
|
||||||
|
normalnc = { link = 'normalnc' },
|
||||||
|
normalfloat = { link = 'normalfloat' },
|
||||||
|
floatborder = { link = 'floatborder' },
|
||||||
|
statusline = { link = 'statusline' },
|
||||||
|
statuslinenc = { link = 'statuslinenc' },
|
||||||
|
winbar = { link = 'winbar' },
|
||||||
|
winbarnc = { link = 'winbarnc' },
|
||||||
|
},
|
||||||
|
on_create = function()
|
||||||
|
vim.opt.foldcolumn = '0'
|
||||||
|
vim.opt.signcolumn = 'no'
|
||||||
|
end,
|
||||||
|
size = function(term)
|
||||||
|
if term.direction == 'horizontal' then
|
||||||
|
return 15
|
||||||
|
elseif term.direction == 'vertical' then
|
||||||
|
return vim.o.columns * 0.4
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
shell = 'bash',
|
||||||
|
open_mapping = [[<f12>]],
|
||||||
|
shading_factor = 2,
|
||||||
|
direction = 'float',
|
||||||
|
float_opts = { border = 'rounded' },
|
||||||
|
vim.keymap.set('n', '<leader>tv', '<Cmd>ToggleTerm direction=vertical<CR>', { desc = 'ToggleTerm vertical' }),
|
||||||
|
vim.keymap.set('n', '<leader>tnv', '<Cmd>TermNew direction=vertical<CR>', { desc = 'ToggleTerm New vertical' }),
|
||||||
|
vim.keymap.set('n', '<leader>tt', '<Cmd>ToggleTerm direction=horizontal<CR>', { desc = 'ToggleTerm horizontal' }),
|
||||||
|
vim.keymap.set('n', '<leader>tnh', '<Cmd>TermNew direction=horizontal<CR>', { desc = 'ToggleTerm New horizontal' }),
|
||||||
|
vim.keymap.set('n', '<leader>tf', '<Cmd>ToggleTerm direction=float<CR>', { desc = 'ToggleTerm float' }),
|
||||||
|
vim.api.nvim_set_keymap('t', '<Esc>', '<C-\\><C-n>', { noremap = true }),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
26
lua/custom/plugins/vim-go.lua
Normal file
26
lua/custom/plugins/vim-go.lua
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
return {
|
||||||
|
'fatih/vim-go', -- Popular Go plugin
|
||||||
|
config = function()
|
||||||
|
-- Explicitly set Go-specific indentation
|
||||||
|
vim.api.nvim_create_augroup('GoIndentation', { clear = true })
|
||||||
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
|
group = 'GoIndentation',
|
||||||
|
pattern = 'go',
|
||||||
|
callback = function()
|
||||||
|
vim.opt_local.tabstop = 4
|
||||||
|
vim.opt_local.shiftwidth = 4
|
||||||
|
vim.opt_local.softtabstop = 4
|
||||||
|
vim.opt_local.expandtab = false -- Go prefers tabs, not spaces
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
-- Additional Go-specific settings
|
||||||
|
vim.g.go_fmt_command = 'goimports' -- Automatically import packages
|
||||||
|
vim.g.go_auto_type_info = 1 -- Show type information
|
||||||
|
vim.g.go_highlight_types = 1
|
||||||
|
vim.g.go_highlight_fields = 1
|
||||||
|
vim.g.go_highlight_functions = 1
|
||||||
|
vim.g.go_highlight_function_calls = 1
|
||||||
|
vim.g.go_highlight_operators = 1
|
||||||
|
vim.g.go_highlight_extra_types = 1
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@ return {
|
|||||||
},
|
},
|
||||||
cmd = 'Neotree',
|
cmd = 'Neotree',
|
||||||
keys = {
|
keys = {
|
||||||
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
|
{ '\\', ':Neotree reveal right<CR>', desc = 'NeoTree reveal', silent = true },
|
||||||
},
|
},
|
||||||
opts = {
|
opts = {
|
||||||
filesystem = {
|
filesystem = {
|
||||||
|
|||||||
Reference in New Issue
Block a user