add neogen doc, spellchecker, cmp configuration

This commit is contained in:
Guillaume Latour 2024-02-21 13:49:36 +01:00
parent 0bf06eefac
commit d36118f53a
4 changed files with 65 additions and 7 deletions

View File

@ -167,8 +167,8 @@ require('lazy').setup({
end, { desc = 'git diff against last commit' }) end, { desc = 'git diff against last commit' })
-- Toggles -- Toggles
map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' }) map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = '[T]oggle git [B]lame line' })
map('n', '<leader>td', gs.toggle_deleted, { desc = 'toggle git show deleted' }) map('n', '<leader>td', gs.toggle_deleted, { desc = '[T]oggle git [S]how deleted' })
-- Text object -- Text object
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'select git hunk' }) map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'select git hunk' })
@ -248,6 +248,14 @@ require('lazy').setup({
build = ':TSUpdate', build = ':TSUpdate',
}, },
{
"danymat/neogen",
dependencies = "nvim-treesitter/nvim-treesitter",
config = true,
-- Comment next line if you want to follow unstable versions
version = "*"
},
-- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart -- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart
-- These are some example plugins that I've included in the kickstart repository. -- These are some example plugins that I've included in the kickstart repository.
-- Uncomment any of the lines below to enable them. -- Uncomment any of the lines below to enable them.
@ -299,11 +307,19 @@ vim.o.updatetime = 250
vim.o.timeoutlen = 300 vim.o.timeoutlen = 300
-- Set completeopt to have a better completion experience -- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect' vim.o.completeopt = 'menuone,noselect,preview'
-- NOTE: You should make sure your terminal supports this -- NOTE: You should make sure your terminal supports this
vim.o.termguicolors = true vim.o.termguicolors = true
-- Create new window below instead of above
vim.o.splitbelow = true
-- Setup the spell checker
vim.opt.spelllang = 'en_us'
vim.opt.spell = true
-- [[ Basic Keymaps ]] -- [[ Basic Keymaps ]]
-- Keymaps for better default experience -- Keymaps for better default experience
@ -316,6 +332,8 @@ vim.api.nvim_set_keymap('n', '<C-d>', '<C-d>zz', { noremap = true, silent = true
vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, silent = true })
-- Toggle between absolute and relative line numbers
vim.keymap.set('n', '<leader>tl', ":set number! relativenumber!<cr>", { desc = "[T]oggle [L]ine numbers display" })
-- Remap for dealing with word wrap -- Remap for dealing with word wrap
vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
@ -616,6 +634,32 @@ mason_lspconfig.setup_handlers {
-- setup nvim tree -- setup nvim tree
require("nvim-tree").setup() require("nvim-tree").setup()
-- setup docstring generation
require('neogen').setup({
enabled = true,
snippet_engine = 'luasnip',
languages = {
python = {
template = { annotation_convention = 'numpydoc' },
},
},
})
local neomap = function(keys, func, desc)
if desc then
desc = 'DOC: [N]eogen ' .. desc
end
vim.keymap.set('n', keys, func, { noremap = true, silent = true, desc = desc })
end
neomap("<leader>nf", ":lua require('neogen').generate()<CR>", "[f]unction")
neomap("<leader>nF", ":lua require('neogen').generate({type='file'})<CR>", "[F]ile")
neomap("<leader>nc", ":lua require('neogen').generate({type='class'})<CR>", "[c]lass")
neomap("<leader>nt", ":lua require('neogen').generate({type='type'})<CR>", "[t]ype")
-- [[ Configure nvim-cmp ]] -- [[ Configure nvim-cmp ]]
-- See `:help cmp` -- See `:help cmp`
local cmp = require 'cmp' local cmp = require 'cmp'
@ -631,16 +675,17 @@ cmp.setup {
end, end,
}, },
completion = { completion = {
completeopt = 'menu,menuone,noinsert', completeopt = 'menuone,noinsert,preview',
}, },
mapping = cmp.mapping.preset.insert { mapping = cmp.mapping.preset.insert {
['<C-n>'] = cmp.mapping.select_next_item(), ['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(), ['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-e>'] = cmp.mapping.close(),
['<C-b>'] = cmp.mapping.scroll_docs(-4), ['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4), ['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete {}, ['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm { ['<C-y>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace, behavior = cmp.ConfirmBehavior.Insert,
select = true, select = true,
}, },
['<Tab>'] = cmp.mapping(function(fallback) ['<Tab>'] = cmp.mapping(function(fallback)
@ -666,7 +711,7 @@ cmp.setup {
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'luasnip' }, { name = 'luasnip' },
{ name = 'path' }, { name = 'path' },
{ name = 'buffer', keyword_length = 4 }, { name = 'buffer', keyword_length = 5, max_item_count = 5 },
}, },
formatting = { formatting = {
format = lspkind.cmp_format { format = lspkind.cmp_format {

View File

@ -18,6 +18,7 @@
"mason-nvim-dap.nvim": { "branch": "main", "commit": "3614a39aae98ccd34124b072939d6283853b3dd2" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "3614a39aae98ccd34124b072939d6283853b3dd2" },
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" }, "mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
"neodev.nvim": { "branch": "main", "commit": "bbe17de89345ce40725e721d347c596dc4a02b32" }, "neodev.nvim": { "branch": "main", "commit": "bbe17de89345ce40725e721d347c596dc4a02b32" },
"neogen": { "branch": "main", "commit": "cb1f384df804c1bf729332c4f728253fe17962d4" },
"none-ls.nvim": { "branch": "main", "commit": "2d4d4f765da684c92cca714bfd7a395ff6b08333" }, "none-ls.nvim": { "branch": "main", "commit": "2d4d4f765da684c92cca714bfd7a395ff6b08333" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-dap": { "branch": "master", "commit": "fc880e82059eb21c0fa896be60146e5f17680648" }, "nvim-dap": { "branch": "master", "commit": "fc880e82059eb21c0fa896be60146e5f17680648" },

12
spell/en.utf-8.add Normal file
View File

@ -0,0 +1,12 @@
behnid/!
https
github
nvim
mapleader
txt
lua
Autocompletion
LSP
config
neovim
runtime

BIN
spell/en.utf-8.add.spl Normal file

Binary file not shown.