Add type hints to plugin options where possible
This could help beginners to get autocompletion, catch mistakes earlier, and allow them to skip the docs for simple configs. This is not perfect because a lot of the plugins type all of their keys as required, even though they have defaults, but this is good enough.
This commit is contained in:
parent
6ba2408cdf
commit
dc977703b1
44
init.lua
44
init.lua
|
@ -273,13 +273,16 @@ require('lazy').setup({
|
|||
-- See `:help gitsigns` to understand what the configuration keys do
|
||||
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
||||
'lewis6991/gitsigns.nvim',
|
||||
---@module 'gitsigns'
|
||||
---@type Gitsigns.Config
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
signs = {
|
||||
add = { text = '+' },
|
||||
change = { text = '~' },
|
||||
delete = { text = '_' },
|
||||
topdelete = { text = '‾' },
|
||||
changedelete = { text = '~' },
|
||||
add = { text = '+' }, ---@diagnostic disable-line: missing-fields
|
||||
change = { text = '~' }, ---@diagnostic disable-line: missing-fields
|
||||
delete = { text = '_' }, ---@diagnostic disable-line: missing-fields
|
||||
topdelete = { text = '‾' }, ---@diagnostic disable-line: missing-fields
|
||||
changedelete = { text = '~' }, ---@diagnostic disable-line: missing-fields
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -301,6 +304,9 @@ require('lazy').setup({
|
|||
{ -- Useful plugin to show you pending keybinds.
|
||||
'folke/which-key.nvim',
|
||||
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
||||
---@module 'which-key'
|
||||
---@type wk.Opts
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
-- delay between pressing a key and opening which-key (milliseconds)
|
||||
-- this setting is independent of vim.o.timeoutlen
|
||||
|
@ -468,6 +474,9 @@ require('lazy').setup({
|
|||
-- used for completion, annotations and signatures of Neovim apis
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
---@module 'lazydev'
|
||||
---@type lazydev.Config
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
library = {
|
||||
-- Load luvit types when the `vim.uv` word is found
|
||||
|
@ -482,7 +491,13 @@ require('lazy').setup({
|
|||
-- Automatically install LSPs and related tools to stdpath for Neovim
|
||||
-- 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({})`
|
||||
{ 'mason-org/mason.nvim', opts = {} },
|
||||
{
|
||||
'mason-org/mason.nvim',
|
||||
---@module 'mason.settings'
|
||||
---@type MasonSettings
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {},
|
||||
},
|
||||
'mason-org/mason-lspconfig.nvim',
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
|
||||
|
@ -750,6 +765,8 @@ require('lazy').setup({
|
|||
desc = '[F]ormat buffer',
|
||||
},
|
||||
},
|
||||
---@module 'conform'
|
||||
---@type conform.setupOpts
|
||||
opts = {
|
||||
notify_on_error = false,
|
||||
format_on_save = function(bufnr)
|
||||
|
@ -899,7 +916,15 @@ require('lazy').setup({
|
|||
},
|
||||
|
||||
-- Highlight todo, notes, etc in comments
|
||||
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
||||
{
|
||||
'folke/todo-comments.nvim',
|
||||
event = 'VimEnter',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
---@module 'todo-comments'
|
||||
---@type TodoOptions
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = { signs = false },
|
||||
},
|
||||
|
||||
{ -- Collection of various small independent plugins/modules
|
||||
'echasnovski/mini.nvim',
|
||||
|
@ -943,6 +968,9 @@ require('lazy').setup({
|
|||
build = ':TSUpdate',
|
||||
main = 'nvim-treesitter.configs', -- Sets main module to use for opts
|
||||
-- [[ Configure Treesitter ]] See `:help nvim-treesitter`
|
||||
---@module 'nvim-treesitter.configs'
|
||||
---@type TSConfig
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
|
||||
-- Autoinstall languages that are not installed
|
||||
|
@ -990,7 +1018,7 @@ require('lazy').setup({
|
|||
-- Or use telescope!
|
||||
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
|
||||
-- you can continue same window with `<space>sr` which resumes last telescope search
|
||||
}, {
|
||||
}, { ---@diagnostic disable-line: missing-fields
|
||||
ui = {
|
||||
-- If you are using a Nerd Font: set icons to an empty table which will use the
|
||||
-- default lazy.nvim defined Nerd Font icons, otherwise define a unicode icons table
|
||||
|
|
|
@ -2,4 +2,7 @@
|
|||
-- I promise not to create any merge conflicts in this directory :)
|
||||
--
|
||||
-- See the kickstart.nvim README for more information
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
-- autopairs
|
||||
-- https://github.com/windwp/nvim-autopairs
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
'windwp/nvim-autopairs',
|
||||
event = 'InsertEnter',
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
-- be extended to other languages as well. That's why it's called
|
||||
-- kickstart.nvim and not kitchen-sink.nvim ;)
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
-- NOTE: Yes, you can install new plugins here!
|
||||
'mfussenegger/nvim-dap',
|
||||
|
@ -100,11 +102,13 @@ return {
|
|||
|
||||
-- Dap UI setup
|
||||
-- For more information, see |:help nvim-dap-ui|
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
dapui.setup {
|
||||
-- Set icons to characters that are more likely to work in every terminal.
|
||||
-- Feel free to remove or use ones that you like more! :)
|
||||
-- Don't feel like these are good choices.
|
||||
icons = { expanded = '▾', collapsed = '▸', current_frame = '*' },
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
controls = {
|
||||
icons = {
|
||||
pause = '⏸',
|
||||
|
|
|
@ -2,9 +2,14 @@
|
|||
-- NOTE: gitsigns is already included in init.lua but contains only the base
|
||||
-- config. This will add also the recommended keymaps.
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
---@module 'gitsigns'
|
||||
---@type Gitsigns.Config
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
opts = {
|
||||
on_attach = function(bufnr)
|
||||
local gitsigns = require 'gitsigns'
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
{ -- Add indentation guides even on blank lines
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
-- Enable `lukas-reineke/indent-blankline.nvim`
|
||||
-- See `:help ibl`
|
||||
main = 'ibl',
|
||||
---@module 'ibl'
|
||||
---@type ibl.config
|
||||
opts = {},
|
||||
},
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
|
||||
{ -- Linting
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
-- Neo-tree is a Neovim plugin to browse the file system
|
||||
-- https://github.com/nvim-neo-tree/neo-tree.nvim
|
||||
|
||||
---@module 'lazy'
|
||||
---@type LazySpec
|
||||
return {
|
||||
'nvim-neo-tree/neo-tree.nvim',
|
||||
version = '*',
|
||||
|
@ -13,6 +15,8 @@ return {
|
|||
keys = {
|
||||
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
|
||||
},
|
||||
---@module 'neo-tree'
|
||||
---@type neotree.Config
|
||||
opts = {
|
||||
filesystem = {
|
||||
window = {
|
||||
|
|
Loading…
Reference in New Issue