Compare commits

...

10 Commits

Author SHA1 Message Date
Max Luebke
d240bc1ebe Add gruvbox theme 2025-01-20 10:37:54 +01:00
Tomas Gareau
db4867acb9
fix: prevent mason setup from being run twice (#1298)
* fix: prevent mason setup from being run twice

Addresses https://github.com/nvim-lua/kickstart.nvim/issues/1297

Currently, we're calling `require('mason').setup(...)` twice:
* once when setting it as a dependency of `nvim-lspconfig` (since we set
	`config = true`)
* once in the `config` function we define for `nvim-lspconfig`

Calling setup twice can cause issues with, e.g., setting the `PATH`
option: you might append Mason's bin dir in one setup call and prepend
it in the other.

We've kept the setup of `mason` in the `nvim-lspconfig` dependencies
table since leaving it to the `config` function caused some
plugin-loading-order related issues in the past. See:
* https://github.com/nvim-lua/kickstart.nvim/pull/210
* https://github.com/nvim-lua/kickstart.nvim/issues/554
* https://github.com/nvim-lua/kickstart.nvim/pull/555
* https://github.com/nvim-lua/kickstart.nvim/pull/865

* docs: tweak comments per review feedback
2025-01-07 10:44:29 -05:00
Ryan Jensen
a8f539562a
Fix which-key delay settings (#1276)
The which-key plugin used to rely on vim.opt.timeoutlen, but it was
updated a few months ago to use its own opt.delay instead.

8ab96b38a2/NEWS.md (L10)

I set which-key's delay to 0 ms because it makes it feel snappy and
responsive! That way, we give new users a good first impression.
2024-12-29 12:04:10 -05:00
Ihsan Tonuzi
7ddaab3ffd
chore: add pre-issue requirements (#1288)
* chore: add pre-issue requirements

Based on #1285

* docs: add header about documentation

Based on #1285
2024-12-29 12:00:16 -05:00
George
e84e187f3c
Fix README.md grammar and typos (#1291) 2024-12-29 11:39:47 -05:00
Scott Swensen
de44f49101
fix(gitsigns): make visual mode descriptions consistent with normal mode (#1266) 2024-12-15 00:42:39 -05:00
ben fleis
bcdb4cd252
Issue 1249 which key comments (#1263)
* Tweak outdated comment about lazy's `config` key usage.

Remove outdated comment describing use of `config` key, replacing with
corrected `opt` key note.

Fixes #1249

* fix typo opt -> opts

Fixes #1250
2024-12-12 16:26:20 -05:00
Artem Dragunov
a2df3ea9eb
Use consistent syntax style for { ... } "pseudocode" (#1247)
```
require('gitsigns').setup({ ... })
```

This was the first occurrence

It may be nice to have the same style everywhere

Cosmetic change (just to make docs/comments even more perfect)
2024-12-12 10:51:58 -05:00
ben fleis
7bc9d19a4d
Tweak outdated comment about lazy's config key usage. (#1250)
Remove outdated comment describing use of `config` key, replacing with
corrected `opt` key note.

Fixes #1249
2024-12-12 10:50:55 -05:00
Miha
8d1ef972bc
fix: which-key comment typo (#1227) 2024-11-20 08:41:50 -05:00
4 changed files with 46 additions and 28 deletions

View File

@ -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. -->

View File

@ -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

View File

@ -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`
@ -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
@ -267,19 +266,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> ',
@ -456,7 +457,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',
@ -629,8 +632,8 @@ require('lazy').setup({
-- --
lua_ls = { lua_ls = {
-- cmd = {...}, -- cmd = { ... },
-- filetypes = { ...}, -- filetypes = { ... },
-- capabilities = {}, -- capabilities = {},
settings = { settings = {
Lua = { Lua = {
@ -645,13 +648,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 {})
@ -839,13 +845,13 @@ require('lazy').setup({
-- change the command in the config to whatever the name of that colorscheme is. -- change the command in the config to whatever the name of that colorscheme is.
-- --
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`. -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
'folke/tokyonight.nvim', 'ellisonleao/gruvbox.nvim',
priority = 1000, -- Make sure to load this before all the other start plugins. priority = 1000, -- Make sure to load this before all the other start plugins.
init = function() init = function()
-- Load the colorscheme here. -- Load the colorscheme here.
-- Like many other themes, this one has different styles, and you could load -- Like many other themes, this one has different styles, and you could load
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
vim.cmd.colorscheme 'tokyonight-night' vim.cmd.colorscheme 'gruvbox'
-- You can configure highlights by doing something like: -- You can configure highlights by doing something like:
vim.cmd.hi 'Comment gui=none' vim.cmd.hi 'Comment gui=none'

View File

@ -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' })