aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2024-10-31 11:28:02 +0000
committerLewis Russell <me@lewisr.dev>2024-10-31 11:55:23 +0000
commit1d4ba8c1edba064421b34c1197c3470a09798218 (patch)
treedf78030ef12f7c275b6c4a888c96032db9b0dfd4
parent0ab4d362549399c79f662ca635839dafe6c974db (diff)
downloadrneovim-1d4ba8c1edba064421b34c1197c3470a09798218.tar.gz
rneovim-1d4ba8c1edba064421b34c1197c3470a09798218.tar.bz2
rneovim-1d4ba8c1edba064421b34c1197c3470a09798218.zip
fix: another round of type annotation fixes
-rw-r--r--runtime/lua/vim/diagnostic.lua48
-rw-r--r--runtime/lua/vim/filetype/detect.lua3
-rw-r--r--runtime/lua/vim/glob.lua2
-rw-r--r--runtime/lua/vim/shared.lua20
-rw-r--r--runtime/lua/vim/termcap.lua2
-rw-r--r--runtime/lua/vim/treesitter.lua2
-rw-r--r--runtime/lua/vim/ui.lua8
7 files changed, 49 insertions, 36 deletions
diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua
index 299f34c921..4fb8c6a686 100644
--- a/runtime/lua/vim/diagnostic.lua
+++ b/runtime/lua/vim/diagnostic.lua
@@ -282,6 +282,11 @@ M.severity = {
[2] = 'WARN',
[3] = 'INFO',
[4] = 'HINT',
+ --- Mappings from qflist/loclist error types to severities
+ E = 1,
+ W = 2,
+ I = 3,
+ N = 4,
}
--- @alias vim.diagnostic.SeverityInt 1|2|3|4
@@ -289,12 +294,6 @@ M.severity = {
--- See |diagnostic-severity| and |vim.diagnostic.get()|
--- @alias vim.diagnostic.SeverityFilter vim.diagnostic.Severity|vim.diagnostic.Severity[]|{min:vim.diagnostic.Severity,max:vim.diagnostic.Severity}
--- Mappings from qflist/loclist error types to severities
-M.severity.E = M.severity.ERROR
-M.severity.W = M.severity.WARN
-M.severity.I = M.severity.INFO
-M.severity.N = M.severity.HINT
-
--- @type vim.diagnostic.Opts
local global_diagnostic_options = {
signs = true,
@@ -891,14 +890,14 @@ local function next_diagnostic(search_forward, opts)
if opts.win_id then
vim.deprecate('opts.win_id', 'opts.winid', '0.13')
opts.winid = opts.win_id
- opts.win_id = nil
+ opts.win_id = nil --- @diagnostic disable-line
end
-- Support deprecated cursor_position alias
if opts.cursor_position then
vim.deprecate('opts.cursor_position', 'opts.pos', '0.13')
opts.pos = opts.cursor_position
- opts.cursor_position = nil
+ opts.cursor_position = nil --- @diagnostic disable-line
end
local winid = opts.winid or api.nvim_get_current_win()
@@ -979,7 +978,7 @@ local function goto_diagnostic(diagnostic, opts)
if opts.win_id then
vim.deprecate('opts.win_id', 'opts.winid', '0.13')
opts.winid = opts.win_id
- opts.win_id = nil
+ opts.win_id = nil --- @diagnostic disable-line
end
local winid = opts.winid or api.nvim_get_current_win()
@@ -992,8 +991,9 @@ local function goto_diagnostic(diagnostic, opts)
vim.cmd('normal! zv')
end)
- if opts.float then
- local float_opts = type(opts.float) == 'table' and opts.float or {}
+ local float_opts = opts.float
+ if float_opts then
+ float_opts = type(float_opts) == 'table' and float_opts or {}
vim.schedule(function()
M.open_float(vim.tbl_extend('keep', float_opts, {
bufnr = api.nvim_win_get_buf(winid),
@@ -1317,7 +1317,7 @@ function M.jump(opts)
if opts.cursor_position then
vim.deprecate('opts.cursor_position', 'opts.pos', '0.13')
opts.pos = opts.cursor_position
- opts.cursor_position = nil
+ opts.cursor_position = nil --- @diagnostic disable-line
end
local diag = nil
@@ -1488,14 +1488,9 @@ M.handlers.underline = {
local get_priority = severity_to_extmark_priority(vim.hl.priorities.diagnostics, opts)
for _, diagnostic in ipairs(diagnostics) do
- --- @type string?
+ -- Default to error if we don't have a highlight associated
local higroup = underline_highlight_map[assert(diagnostic.severity)]
-
- if higroup == nil then
- -- Default to error if we don't have a highlight associated
- -- TODO(lewis6991): this is always nil since underline_highlight_map only has integer keys
- higroup = underline_highlight_map.Error
- end
+ or underline_highlight_map[vim.diagnostic.severity.ERROR]
if diagnostic._tags then
-- TODO(lewis6991): we should be able to stack these.
@@ -2115,9 +2110,10 @@ function M.enable(enable, filter)
enable = enable == nil and true or enable
local bufnr = filter.bufnr
+ local ns_id = filter.ns_id
- if bufnr == nil then
- if filter.ns_id == nil then
+ if not bufnr then
+ if not ns_id then
diagnostic_disabled = (
enable
-- Enable everything by setting diagnostic_disabled to an empty table.
@@ -2131,12 +2127,12 @@ function M.enable(enable, filter)
})
)
else
- local ns = M.get_namespace(filter.ns_id)
+ local ns = M.get_namespace(ns_id)
ns.disabled = not enable
end
else
bufnr = get_bufnr(bufnr)
- if filter.ns_id == nil then
+ if not ns_id then
diagnostic_disabled[bufnr] = (not enable) and true or nil
else
if type(diagnostic_disabled[bufnr]) ~= 'table' then
@@ -2146,14 +2142,14 @@ function M.enable(enable, filter)
diagnostic_disabled[bufnr] = {}
end
end
- diagnostic_disabled[bufnr][filter.ns_id] = (not enable) and true or nil
+ diagnostic_disabled[bufnr][ns_id] = (not enable) and true or nil
end
end
if enable then
- M.show(filter.ns_id, bufnr)
+ M.show(ns_id, bufnr)
else
- M.hide(filter.ns_id, bufnr)
+ M.hide(ns_id, bufnr)
end
end
diff --git a/runtime/lua/vim/filetype/detect.lua b/runtime/lua/vim/filetype/detect.lua
index 1cc81b177f..1b9e28efad 100644
--- a/runtime/lua/vim/filetype/detect.lua
+++ b/runtime/lua/vim/filetype/detect.lua
@@ -1908,7 +1908,7 @@ local function match_from_hashbang(contents, path, dispatch_extension)
end
for k, v in pairs(patterns_hashbang) do
- local ft = type(v) == 'table' and v[1] or v
+ local ft = type(v) == 'table' and v[1] or v --[[@as string]]
local opts = type(v) == 'table' and v[2] or {}
if opts.vim_regex and matchregex(name, k) or name:find(k) then
return ft
@@ -2080,6 +2080,7 @@ local function match_from_text(contents, path)
return ft
end
else
+ --- @cast k string
local opts = type(v) == 'table' and v[2] or {}
if opts.start_lnum and opts.end_lnum then
assert(
diff --git a/runtime/lua/vim/glob.lua b/runtime/lua/vim/glob.lua
index 22073b15c8..4f86d5e1ca 100644
--- a/runtime/lua/vim/glob.lua
+++ b/runtime/lua/vim/glob.lua
@@ -48,7 +48,7 @@ function M.to_lpeg(pattern)
end
-- luacheck: push ignore s
- local function cut(s, idx, match)
+ local function cut(_s, idx, match)
return idx, match
end
-- luacheck: pop
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index 94a194cde9..1a3b33c885 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -782,7 +782,8 @@ end
do
--- @alias vim.validate.Validator
- --- | type|'callable'
+ --- | type
+ --- | 'callable'
--- | (type|'callable')[]
--- | fun(v:any):boolean, string?
@@ -1170,11 +1171,13 @@ function vim._defer_deprecated_module(old_name, new_name)
---@param k string
__index = function(_, k)
vim.deprecate(old_name, new_name, '2.0.0', nil, false)
+ --- @diagnostic disable-next-line:no-unknown
local target = require(new_name)
return target[k]
end,
__call = function(self)
vim.deprecate(old_name, new_name, '2.0.0', nil, false)
+ --- @diagnostic disable-next-line:no-unknown
local target = require(new_name)
return target(self)
end,
@@ -1217,11 +1220,14 @@ local state_restore_order = { 'bo', 'wo', 'go', 'env' }
--- @param context vim.context.mods
--- @return vim.context.state
local get_context_state = function(context)
+ --- @type vim.context.state
local res = { bo = {}, env = {}, go = {}, wo = {} }
-- Use specific order from possibly most to least intrusive
for _, scope in ipairs(scope_order) do
- for name, _ in pairs(context[scope] or {}) do
+ for name, _ in
+ pairs(context[scope] or {} --[[@as table<string,any>]])
+ do
local sc = scope == 'o' and scope_map[vim.api.nvim_get_option_info2(name, {}).scope] or scope
-- Do not override already set state and fall back to `vim.NIL` for
@@ -1315,7 +1321,10 @@ function vim._with(context, f)
-- Apply some parts of the context in specific order
-- NOTE: triggers `OptionSet` event
for _, scope in ipairs(scope_order) do
- for name, context_value in pairs(context[scope] or {}) do
+ for name, context_value in
+ pairs(context[scope] or {} --[[@as table<string,any>]])
+ do
+ --- @diagnostic disable-next-line:no-unknown
vim[scope][name] = context_value
end
end
@@ -1326,7 +1335,10 @@ function vim._with(context, f)
-- Restore relevant cached values in specific order, global scope last
-- NOTE: triggers `OptionSet` event
for _, scope in ipairs(state_restore_order) do
- for name, cached_value in pairs(state[scope]) do
+ for name, cached_value in
+ pairs(state[scope] --[[@as table<string,any>]])
+ do
+ --- @diagnostic disable-next-line:no-unknown
vim[scope][name] = cached_value
end
end
diff --git a/runtime/lua/vim/termcap.lua b/runtime/lua/vim/termcap.lua
index 2c36561587..4aa41bba9b 100644
--- a/runtime/lua/vim/termcap.lua
+++ b/runtime/lua/vim/termcap.lua
@@ -38,7 +38,7 @@ function M.query(caps, cb)
local k, rest = resp:match('^\027P1%+r(%x+)(.*)$')
if k and rest then
local cap = vim.text.hexdecode(k)
- if not pending[cap] then
+ if not cap or not pending[cap] then
-- Received a response for a capability we didn't request. This can happen if there are
-- multiple concurrent XTGETTCAP requests
return
diff --git a/runtime/lua/vim/treesitter.lua b/runtime/lua/vim/treesitter.lua
index 9f6dc53932..dca89f413c 100644
--- a/runtime/lua/vim/treesitter.lua
+++ b/runtime/lua/vim/treesitter.lua
@@ -165,7 +165,7 @@ function M.get_node_range(node_or_range)
if type(node_or_range) == 'table' then
return unpack(node_or_range)
else
- return node_or_range:range()
+ return node_or_range:range(false)
end
end
diff --git a/runtime/lua/vim/ui.lua b/runtime/lua/vim/ui.lua
index 899709d3cf..cd159f0172 100644
--- a/runtime/lua/vim/ui.lua
+++ b/runtime/lua/vim/ui.lua
@@ -43,7 +43,9 @@ function M.select(items, opts, on_choice)
opts = opts or {}
local choices = { opts.prompt or 'Select one of:' }
local format_item = opts.format_item or tostring
- for i, item in ipairs(items) do
+ for i, item in
+ ipairs(items --[[@as any[] ]])
+ do
table.insert(choices, string.format('%d: %s', i, format_item(item)))
end
local choice = vim.fn.inputlist(choices)
@@ -204,7 +206,9 @@ function M._get_urls()
if vim.treesitter.node_contains(node, range) then
local url = metadata[id] and metadata[id].url
if url and match[url] then
- for _, n in ipairs(match[url]) do
+ for _, n in
+ ipairs(match[url] --[[@as TSNode[] ]])
+ do
urls[#urls + 1] =
vim.treesitter.get_node_text(n, bufnr, { metadata = metadata[url] })
end