-- ref: https://github.com/delphinus/dotfiles/blob/e562d4f8e99793e6ae1cd330c9208dac1d29d407/.config/nvim/lua/modules/lsp/config.lua#L440-L665
local null_ls = require('null-ls')
null_ls.setup {
border = 'rounded',
sources = {
-- ref: https://github.com/jose-elias-alvarez/null-ls.nvim/blob/8c90ccf7ffbdeb49da415837ec45e6ac457d5c60/doc/BUILTINS.md
-- : https://github.com/jose-elias-alvarez/null-ls.nvim/blob/8c90ccf7ffbdeb49da415837ec45e6ac457d5c60/doc/BUILTIN_CONFIG.md#using-local-executables
-- : https://zenn.dev/koga1020/scraps/46a160c9aec061
-- FIXME: eslint is not working
-- null_ls.builtins.code_actions.eslint.with {
-- prefer_local = 'node_modules/.bin',
-- },
-- null_ls.builtins.diagnostics.eslint.with {
-- prefer_local = 'node_modules/.bin',
-- },
-- null_ls.builtins.formatting.eslint.with {
-- prefer_local = 'node_modules/.bin',
-- },
null_ls.builtins.diagnostics.textlint.with {
filetypes = { 'markdown' },
prefer_local = 'node_modules/.bin',
},
null_ls.builtins.formatting.textlint.with {
filetypes = { 'markdown' },
prefer_local = 'node_modules/.bin',
},
-- null_ls.builtins.formatting.yamlfmt,
null_ls.builtins.formatting.stylua, -- `brew install stylua`
-- null_ls.builtins.diagnostics.vint, -- `brew install vint`
null_ls.builtins.diagnostics.swiftlint.with {
prefer_local = '.mint/lib/packages/github.com_realm_SwiftLint/build/0.55.0', -- TODO: Make version dynamic
args = {
'--reporter',
'json',
'--use-stdin',
'--quiet',
'--config',
vim.fn.expand('~/ghq/github.com/uhooi/Loki/.swiftlint.yml'), -- TODO: Make path dynamic
},
},
null_ls.builtins.formatting.swiftlint.with {
prefer_local = '.mint/lib/packages/github.com_realm_SwiftLint/build/0.55.0', -- TODO: Make version dynamic
args = {
'--use-stdin',
'--fix',
'--format',
'--config',
vim.fn.expand('~/ghq/github.com/uhooi/Loki/.swiftlint.yml'), -- TODO: Make path dynamic
},
},
},
}