Compare commits
10 Commits
de44f49101
...
897d1e8d7b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
897d1e8d7b | ||
| a8245b6783 | |||
| e1390e2101 | |||
| e324019a1c | |||
| 37aba09336 | |||
| fd0db7d448 | |||
| 1459ea94bf | |||
|
|
a8f539562a | ||
|
|
7ddaab3ffd | ||
|
|
e84e187f3c |
7
.github/ISSUE_TEMPLATE/bug_report.md
vendored
7
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -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. -->
|
||||
|
||||
|
||||
21
README.md
21
README.md
@@ -1,5 +1,7 @@
|
||||
# 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
|
||||
|
||||
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:
|
||||
- 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 +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.
|
||||
|
||||
> **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 +103,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 +121,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 +181,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
|
||||
|
||||
24
init.lua
24
init.lua
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ' '
|
||||
|
||||
-- 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 ]]
|
||||
-- See `:help vim.opt`
|
||||
@@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
|
||||
vim.opt.number = true
|
||||
-- You can also add relative line numbers, to help with jumping.
|
||||
-- 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!
|
||||
vim.opt.mouse = 'a'
|
||||
@@ -135,7 +135,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
|
||||
@@ -274,6 +273,9 @@ require('lazy').setup({
|
||||
'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,
|
||||
@@ -825,6 +827,7 @@ require('lazy').setup({
|
||||
-- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
|
||||
group_index = 0,
|
||||
},
|
||||
{ name = 'copilot' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
{ name = 'path' },
|
||||
@@ -926,18 +929,17 @@ require('lazy').setup({
|
||||
-- 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).
|
||||
--
|
||||
-- require 'kickstart.plugins.debug',
|
||||
-- require 'kickstart.plugins.indent_line',
|
||||
-- require 'kickstart.plugins.lint',
|
||||
-- require 'kickstart.plugins.autopairs',
|
||||
-- require 'kickstart.plugins.neo-tree',
|
||||
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
|
||||
|
||||
require 'kickstart.plugins.debug',
|
||||
require 'kickstart.plugins.indent_line',
|
||||
require 'kickstart.plugins.lint',
|
||||
require 'kickstart.plugins.autopairs',
|
||||
require 'kickstart.plugins.neo-tree',
|
||||
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`
|
||||
-- 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.
|
||||
-- { import = 'custom.plugins' },
|
||||
{ import = 'custom.plugins' },
|
||||
--
|
||||
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
|
||||
-- Or use telescope!
|
||||
|
||||
0
lua/custom/options.lua
Normal file
0
lua/custom/options.lua
Normal file
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',
|
||||
},
|
||||
}
|
||||
30
lua/custom/plugins/copilot.lua
Normal file
30
lua/custom/plugins/copilot.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
return {
|
||||
{
|
||||
'zbirenbaum/copilot.lua',
|
||||
cmd = 'Copilot',
|
||||
event = 'InsertEnter',
|
||||
config = function()
|
||||
require('copilot').setup {
|
||||
suggestion = { enabled = false },
|
||||
panel = { enabled = false },
|
||||
}
|
||||
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 = false },
|
||||
panel = { enabled = false },
|
||||
}
|
||||
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,
|
||||
}
|
||||
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',
|
||||
},
|
||||
}
|
||||
40
lua/custom/plugins/toggleterm.lua
Normal file
40
lua/custom/plugins/toggleterm.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
return {
|
||||
{
|
||||
'akinsho/toggleterm.nvim',
|
||||
-- [[ cmd = { "toggleterm", "termexec" }, ]]
|
||||
opts = {
|
||||
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 = 'pwsh',
|
||||
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',
|
||||
keys = {
|
||||
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
|
||||
{ '\\', ':Neotree reveal right<CR>', desc = 'NeoTree reveal', silent = true },
|
||||
},
|
||||
opts = {
|
||||
filesystem = {
|
||||
|
||||
Reference in New Issue
Block a user