Skip to content

Commit 4e317bb

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 9c387b2 + 53e9252 commit 4e317bb

File tree

3 files changed

+106
-65
lines changed

3 files changed

+106
-65
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ tags
22
test.sh
33
.luarc.json
44
nvim
5-
lazy-lock.json

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ Clone kickstart.nvim:
4141
```sh
4242
# on Linux and Mac
4343
git clone https://github.com/nvim-lua/kickstart.nvim.git "${XDG_CONFIG_HOME:-$HOME/.config}"/nvim
44+
```
45+
46+
47+
```
4448
# on Windows
4549
git clone https://github.com/nvim-lua/kickstart.nvim.git %userprofile%\AppData\Local\nvim\
4650
```

init.lua

Lines changed: 102 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ require('lazy').setup({
4545
'neovim/nvim-lspconfig',
4646
dependencies = {
4747
-- Automatically install LSPs to stdpath for neovim
48-
{ 'williamboman/mason.nvim', config = true },
48+
'williamboman/mason.nvim',
4949
'williamboman/mason-lspconfig.nvim',
5050

5151
-- Useful status updates for LSP
@@ -89,16 +89,24 @@ require('lazy').setup({
8989

9090
-- don't override the built-in and fugitive keymaps
9191
local gs = package.loaded.gitsigns
92-
vim.keymap.set({'n', 'v'}, ']c', function()
93-
if vim.wo.diff then return ']c' end
94-
vim.schedule(function() gs.next_hunk() end)
92+
vim.keymap.set({ 'n', 'v' }, ']c', function()
93+
if vim.wo.diff then
94+
return ']c'
95+
end
96+
vim.schedule(function()
97+
gs.next_hunk()
98+
end)
9599
return '<Ignore>'
96-
end, {expr=true, buffer = bufnr, desc = "Jump to next hunk"})
97-
vim.keymap.set({'n', 'v'}, '[c', function()
98-
if vim.wo.diff then return '[c' end
99-
vim.schedule(function() gs.prev_hunk() end)
100+
end, { expr = true, buffer = bufnr, desc = 'Jump to next hunk' })
101+
vim.keymap.set({ 'n', 'v' }, '[c', function()
102+
if vim.wo.diff then
103+
return '[c'
104+
end
105+
vim.schedule(function()
106+
gs.prev_hunk()
107+
end)
100108
return '<Ignore>'
101-
end, {expr=true, buffer = bufnr, desc = "Jump to previous hunk"})
109+
end, { expr = true, buffer = bufnr, desc = 'Jump to previous hunk' })
102110
end,
103111
},
104112
},
@@ -127,6 +135,17 @@ require('lazy').setup({
127135
},
128136
},
129137

138+
--[[
139+
{
140+
-- Add indentation guides even on blank lines
141+
'lukas-reineke/indent-blankline.nvim',
142+
-- Enable `lukas-reineke/indent-blankline.nvim`
143+
-- See `:help indent_blankline.txt`
144+
main = 'ibl',
145+
opts = {},
146+
},
147+
--]]
148+
130149
-- "gc" to comment visual regions/lines
131150
{ 'numToStr/Comment.nvim', opts = {} },
132151

@@ -290,12 +309,14 @@ vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc
290309
vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
291310
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
292311
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
293-
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]resume' })
312+
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
294313

295314
-- [[ Configure Treesitter ]]
296315
-- See `:help nvim-treesitter`
297-
require('nvim-treesitter.configs').setup {
298-
-- Add languages to be installed here that you want installed for treesitter
316+
-- Defer Treesitter setup after first render to improve startup time of 'nvim {filename}'
317+
vim.defer_fn(function()
318+
require('nvim-treesitter.configs').setup {
319+
-- Add languages to be installed here that you want installed for treesitter
299320
ensure_installed = {
300321
'c',
301322
'cpp',
@@ -311,65 +332,66 @@ require('nvim-treesitter.configs').setup {
311332
'vimdoc',
312333
},
313334

314-
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
315-
auto_install = false,
316-
317-
highlight = { enable = true },
318-
indent = { enable = true },
319-
incremental_selection = {
320-
enable = true,
321-
keymaps = {
322-
init_selection = '<c-space>',
323-
node_incremental = '<c-space>',
324-
scope_incremental = '<c-s>',
325-
node_decremental = '<M-space>',
326-
},
327-
},
328-
textobjects = {
329-
select = {
335+
-- Autoinstall languages that are not installed. Defaults to false (but you can change for yourself!)
336+
auto_install = false,
337+
338+
highlight = { enable = true },
339+
indent = { enable = true },
340+
incremental_selection = {
330341
enable = true,
331-
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
332342
keymaps = {
333-
-- You can use the capture groups defined in textobjects.scm
334-
['aa'] = '@parameter.outer',
335-
['ia'] = '@parameter.inner',
336-
['af'] = '@function.outer',
337-
['if'] = '@function.inner',
338-
['ac'] = '@class.outer',
339-
['ic'] = '@class.inner',
343+
init_selection = '<c-space>',
344+
node_incremental = '<c-space>',
345+
scope_incremental = '<c-s>',
346+
node_decremental = '<M-space>',
340347
},
341348
},
342-
move = {
343-
enable = true,
344-
set_jumps = true, -- whether to set jumps in the jumplist
345-
goto_next_start = {
346-
[']m'] = '@function.outer',
347-
[']]'] = '@class.outer',
348-
},
349-
goto_next_end = {
350-
[']M'] = '@function.outer',
351-
[']['] = '@class.outer',
352-
},
353-
goto_previous_start = {
354-
['[m'] = '@function.outer',
355-
['[['] = '@class.outer',
356-
},
357-
goto_previous_end = {
358-
['[M'] = '@function.outer',
359-
['[]'] = '@class.outer',
349+
textobjects = {
350+
select = {
351+
enable = true,
352+
lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim
353+
keymaps = {
354+
-- You can use the capture groups defined in textobjects.scm
355+
['aa'] = '@parameter.outer',
356+
['ia'] = '@parameter.inner',
357+
['af'] = '@function.outer',
358+
['if'] = '@function.inner',
359+
['ac'] = '@class.outer',
360+
['ic'] = '@class.inner',
361+
},
360362
},
361-
},
362-
swap = {
363-
enable = true,
364-
swap_next = {
365-
['<leader>a'] = '@parameter.inner',
363+
move = {
364+
enable = true,
365+
set_jumps = true, -- whether to set jumps in the jumplist
366+
goto_next_start = {
367+
[']m'] = '@function.outer',
368+
[']]'] = '@class.outer',
369+
},
370+
goto_next_end = {
371+
[']M'] = '@function.outer',
372+
[']['] = '@class.outer',
373+
},
374+
goto_previous_start = {
375+
['[m'] = '@function.outer',
376+
['[['] = '@class.outer',
377+
},
378+
goto_previous_end = {
379+
['[M'] = '@function.outer',
380+
['[]'] = '@class.outer',
381+
},
366382
},
367-
swap_previous = {
368-
['<leader>A'] = '@parameter.inner',
383+
swap = {
384+
enable = true,
385+
swap_next = {
386+
['<leader>a'] = '@parameter.inner',
387+
},
388+
swap_previous = {
389+
['<leader>A'] = '@parameter.inner',
390+
},
369391
},
370392
},
371-
},
372-
}
393+
}
394+
end, 0)
373395

374396
-- Diagnostic keymaps
375397
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' })
@@ -435,6 +457,22 @@ local on_attach = function(_, bufnr)
435457
end, { desc = 'Format current buffer with LSP' })
436458
end
437459

460+
-- document existing key chains
461+
require('which-key').register {
462+
['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
463+
['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
464+
['<leader>g'] = { name = '[G]it', _ = 'which_key_ignore' },
465+
['<leader>h'] = { name = 'More git', _ = 'which_key_ignore' },
466+
['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
467+
['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
468+
['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
469+
}
470+
471+
-- mason-lspconfig requires that these setup functions are called in this order
472+
-- before setting up the servers.
473+
require('mason').setup()
474+
require('mason-lspconfig').setup()
475+
438476
-- Enable the following language servers
439477
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
440478
--
@@ -507,7 +545,7 @@ mason_lspconfig.setup_handlers {
507545
settings = servers[server_name],
508546
filetypes = (servers[server_name] or {}).filetypes,
509547
}
510-
end
548+
end,
511549
}
512550

513551
-- [[ Configure nvim-cmp ]]

0 commit comments

Comments
 (0)