60 lines
1.8 KiB
Lua
60 lines
1.8 KiB
Lua
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
|
if not null_ls_status_ok then
|
|
return
|
|
end
|
|
|
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
|
local formatting = null_ls.builtins.formatting
|
|
-- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
|
local diagnostics = null_ls.builtins.diagnostics
|
|
|
|
-- https://github.com/prettier-solidity/prettier-plugin-solidity
|
|
-- npm install --save-dev prettier prettier-plugin-solidity
|
|
null_ls.setup {
|
|
debug = false,
|
|
sources = {
|
|
formatting.prettier.with {
|
|
extra_filetypes = { "toml", "solidity" },
|
|
extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" },
|
|
},
|
|
formatting.black.with { extra_args = { "--fast" } },
|
|
formatting.stylua,
|
|
-- formatting.shfmt,
|
|
formatting.google_java_format,
|
|
formatting.bibclean,
|
|
formatting.beautysh,
|
|
-- diagnostics.flake8,
|
|
diagnostics.shellcheck,
|
|
},
|
|
}
|
|
|
|
local unwrap = {
|
|
method = null_ls.methods.DIAGNOSTICS,
|
|
filetypes = { "rust" },
|
|
generator = {
|
|
fn = function(params)
|
|
local diagnostics = {}
|
|
-- sources have access to a params object
|
|
-- containing info about the current file and editor state
|
|
for i, line in ipairs(params.content) do
|
|
local col, end_col = line:find "unwrap()"
|
|
if col and end_col then
|
|
-- null-ls fills in undefined positions
|
|
-- and converts source diagnostics into the required format
|
|
table.insert(diagnostics, {
|
|
row = i,
|
|
col = col,
|
|
end_col = end_col,
|
|
source = "unwrap",
|
|
message = "hey " .. os.getenv("USER") .. ", don't forget to handle this" ,
|
|
severity = 2,
|
|
})
|
|
end
|
|
end
|
|
return diagnostics
|
|
end,
|
|
},
|
|
}
|
|
|
|
null_ls.register(unwrap)
|