Reafactor
This commit is contained in:
parent
ea9c42e1e4
commit
f3710a46b7
108 changed files with 462 additions and 884 deletions
8
.idea/.gitignore
vendored
Normal file
8
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
6
.idea/misc.xml
Normal file
6
.idea/misc.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="22" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/nvim.iml" filepath="$PROJECT_DIR$/.idea/nvim.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
9
.idea/nvim.iml
Normal file
9
.idea/nvim.iml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,3 +1,4 @@
|
|||
require('core.keymap')
|
||||
require('toolchain').init()
|
||||
require('core.editor')
|
||||
require('core.package_manager')
|
||||
|
|
|
@ -11,9 +11,9 @@ if not vim.loop.fs_stat(lazypath) then
|
|||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
local plugins = require('toolchain').plugins
|
||||
local plugins = require('toolchain').get_plugins()
|
||||
table.insert(plugins, 1, { import = 'editor' })
|
||||
|
||||
require('lazy').setup({
|
||||
spec = plugins,
|
||||
spec = plugins
|
||||
})
|
||||
|
|
|
@ -8,7 +8,7 @@ return {
|
|||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
ensure_installed = require('toolchain').highlighters,
|
||||
ensure_installed = require('toolchain').get_highlighter_autoinstalls(),
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ return {
|
|||
},
|
||||
config = function()
|
||||
require('mason-lspconfig').setup({
|
||||
ensure_installed = TOOLCHAIN.lsp_requriemts,
|
||||
ensure_installed = TOOLCHAIN.get_lsp_autoinstalls(),
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
@ -26,9 +26,7 @@ return {
|
|||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local lspconfig = require('lspconfig')
|
||||
|
||||
for _, lsp in ipairs(TOOLCHAIN.language_servers) do
|
||||
lsp.setup(lspconfig, capabilities)
|
||||
end
|
||||
TOOLCHAIN.setup_lsps(lspconfig, capabilities)
|
||||
|
||||
-- Keybinding --
|
||||
vim.keymap.set(
|
||||
|
@ -67,18 +65,8 @@ return {
|
|||
-- Setup --
|
||||
local null_ls = require('null-ls')
|
||||
|
||||
local null_ls_sources = {}
|
||||
for _, setup_function in ipairs(TOOLCHAIN.diagnostics) do
|
||||
local conf = setup_function(null_ls)
|
||||
if #conf ~= 0 then
|
||||
for _, _conf in pairs(conf) do
|
||||
table.insert(null_ls_sources, _conf)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
null_ls.setup({
|
||||
sources = null_ls_sources,
|
||||
sources = TOOLCHAIN.get_null_ls_source(null_ls),
|
||||
})
|
||||
|
||||
-- Keybinding --
|
||||
|
|
41
lua/toolchain/config.lua
Normal file
41
lua/toolchain/config.lua
Normal file
|
@ -0,0 +1,41 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('json', 'xml', 'yaml', 'toml')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.spectral,
|
||||
--null_ls.builtins.diagnostics.vacuum --Pure Openapi linter
|
||||
}
|
||||
end)
|
||||
|
||||
T.add_lsp_autoinstalls('jsonls', 'lemminx', 'yamlls', 'taplo')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.jsonls.setup(config)
|
||||
lspconfig.lemminx.setup(config)
|
||||
lspconfig.yamlls.setup(config)
|
||||
lspconfig.taplo.setup(config)
|
||||
end)
|
||||
|
||||
T.add_plugins(
|
||||
{
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
opts = {
|
||||
library = {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/neoconf.nvim",
|
||||
priority = 100,
|
||||
config = function()
|
||||
require('neoconf').setup()
|
||||
end
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.spectral,
|
||||
--null_ls.builtins.diagnostics.vacuum --Pure Openapi linter
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.config.requirements'),
|
||||
language_servers = require('toolchain.config.language_server'),
|
||||
formatters = require('toolchain.config.formatter'),
|
||||
actions = require('toolchain.config.actions'),
|
||||
diagnostics = require('toolchain.config.diagnostics'),
|
||||
debuggers = require('toolchain.config.debugger'),
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'jsonls',
|
||||
'lemminx',
|
||||
'yamlls',
|
||||
'taplo',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.jsonls.setup(config)
|
||||
lspconfig.lemminx.setup(config)
|
||||
lspconfig.yamlls.setup(config)
|
||||
lspconfig.taplo.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
return {
|
||||
{
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
opts = {
|
||||
library = {},
|
||||
},
|
||||
},
|
||||
{
|
||||
"folke/neoconf.nvim",
|
||||
priority = 100,
|
||||
config = function ()
|
||||
require('neoconf').setup()
|
||||
end
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.config.formatter').plugins),
|
||||
table.unpack(require('toolchain.config.actions').plugins),
|
||||
table.unpack(require('toolchain.config.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.config.debugger').plugins),
|
||||
table.unpack(require('toolchain.config.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'json',
|
||||
'xml',
|
||||
'yaml',
|
||||
'toml',
|
||||
},
|
||||
language_servers = require('toolchain.config.language_server').requirements,
|
||||
}
|
13
lua/toolchain/database.lua
Normal file
13
lua/toolchain/database.lua
Normal file
|
@ -0,0 +1,13 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('sql')
|
||||
T.add_lsp_autoinstalls('sqlls')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.sqlls.setup(config)
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.database.requirements'),
|
||||
language_servers = require('toolchain.database.language_server'),
|
||||
formatters = require('toolchain.database.formatter'),
|
||||
actions = require('toolchain.database.actions'),
|
||||
diagnostics = require('toolchain.database.diagnostics'),
|
||||
debuggers = require('toolchain.database.debugger'),
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'sqlls',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.sqlls.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,14 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.database.formatter').plugins),
|
||||
table.unpack(require('toolchain.database.actions').plugins),
|
||||
table.unpack(require('toolchain.database.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.database.debugger').plugins),
|
||||
table.unpack(require('toolchain.database.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'sql',
|
||||
},
|
||||
language_servers = require('toolchain.database.language_server').requirements,
|
||||
}
|
14
lua/toolchain/frontend.lua
Normal file
14
lua/toolchain/frontend.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('svelte', 'vue')
|
||||
T.add_lsp_autoinstalls('svelte', 'volar')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.svelte.setup(config)
|
||||
lspconfig.volar.setup(config)
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.frontend.requirements'),
|
||||
language_servers = require('toolchain.frontend.language_server'),
|
||||
formatters = require('toolchain.frontend.formatter'),
|
||||
actions = require('toolchain.frontend.actions'),
|
||||
diagnostics = require('toolchain.frontend.diagnostics'),
|
||||
debuggers = require('toolchain.frontend.debugger'),
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'svelte',
|
||||
'volar',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.svelte.setup(config)
|
||||
lspconfig.volar.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,16 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.frontend.formatter').plugins),
|
||||
table.unpack(require('toolchain.frontend.actions').plugins),
|
||||
table.unpack(require('toolchain.frontend.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.frontend.debugger').plugins),
|
||||
table.unpack(require('toolchain.frontend.plugins')),
|
||||
},
|
||||
|
||||
highlighters = {
|
||||
'svelte',
|
||||
'vue',
|
||||
},
|
||||
language_servers = require('toolchain.frontend.language_server').requirements,
|
||||
}
|
13
lua/toolchain/generic.lua
Normal file
13
lua/toolchain/generic.lua
Normal file
|
@ -0,0 +1,13 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Actions
|
||||
null_ls.builtins.code_actions.refactoring,
|
||||
}
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.code_actions.refactoring,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.generic.requirements'),
|
||||
language_servers = require('toolchain.generic.language_server'),
|
||||
formatters = require('toolchain.generic.formatter'),
|
||||
actions = require('toolchain.generic.actions'),
|
||||
diagnostics = require('toolchain.generic.diagnostics'),
|
||||
debuggers = require('toolchain.generic.debugger'),
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {},
|
||||
setup = function(_lspgeneric, _capabilities) end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,12 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.generic.formatter').plugins),
|
||||
table.unpack(require('toolchain.generic.actions').plugins),
|
||||
table.unpack(require('toolchain.generic.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.generic.debugger').plugins),
|
||||
table.unpack(require('toolchain.generic.plugins')),
|
||||
},
|
||||
highlighters = {},
|
||||
language_servers = require('toolchain.generic.language_server').requirements,
|
||||
}
|
47
lua/toolchain/git.lua
Normal file
47
lua/toolchain/git.lua
Normal file
|
@ -0,0 +1,47 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('gitcommit', 'gitignore', 'gitattributes', 'git_rebase', 'git_config')
|
||||
|
||||
T.add_plugins(
|
||||
{
|
||||
'tpope/vim-fugitive',
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = function()
|
||||
-- Setup --
|
||||
require('gitsigns').setup()
|
||||
|
||||
-- Keybinding --
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>gh',
|
||||
':Gitsigns preview_hunk_inline<CR>',
|
||||
{ desc = 'Toggle Inline Git Diff' }
|
||||
)
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>gb',
|
||||
':Gitsigns toggle_current_line_blame<CR>',
|
||||
{ desc = 'Toggle Inline Git Blame' }
|
||||
)
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>go',
|
||||
':Git <CR>',
|
||||
{ desc = 'Open Git' }
|
||||
)
|
||||
end,
|
||||
},
|
||||
{
|
||||
'moyiz/git-dev.nvim',
|
||||
lazy = true,
|
||||
cmd = { 'GitDevOpen', 'GitDevCleanAll' },
|
||||
opts = {},
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.git.requirements'),
|
||||
language_servers = require('toolchain.git.language_server'),
|
||||
formatters = require('toolchain.git.formatter'),
|
||||
actions = require('toolchain.git.actions'),
|
||||
diagnostics = require('toolchain.git.diagnostics'),
|
||||
debuggers = require('toolchain.git.debugger'),
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {},
|
||||
setup = function(_lspconfig, _capabilities) end,
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
return {
|
||||
{
|
||||
'tpope/vim-fugitive',
|
||||
},
|
||||
{
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = function()
|
||||
-- Setup --
|
||||
require('gitsigns').setup()
|
||||
|
||||
-- Keybinding --
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>gh',
|
||||
':Gitsigns preview_hunk_inline<CR>',
|
||||
{ desc = 'Toggle Inline Git Diff' }
|
||||
)
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>gb',
|
||||
':Gitsigns toggle_current_line_blame<CR>',
|
||||
{ desc = 'Toggle Inline Git Blame' }
|
||||
)
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>go',
|
||||
':Git <CR>',
|
||||
{ desc = 'Open Git' }
|
||||
)
|
||||
end,
|
||||
},
|
||||
{
|
||||
'moyiz/git-dev.nvim',
|
||||
lazy = true,
|
||||
cmd = { 'GitDevOpen', 'GitDevCleanAll' },
|
||||
opts = {},
|
||||
},
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.git.formatter').plugins),
|
||||
table.unpack(require('toolchain.git.actions').plugins),
|
||||
table.unpack(require('toolchain.git.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.git.debugger').plugins),
|
||||
table.unpack(require('toolchain.git.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'gitcommit',
|
||||
'gitignore',
|
||||
'gitattributes',
|
||||
'git_rebase',
|
||||
'git_config',
|
||||
},
|
||||
language_servers = require('toolchain.git.language_server').requirements,
|
||||
}
|
38
lua/toolchain/go.lua
Normal file
38
lua/toolchain/go.lua
Normal file
|
@ -0,0 +1,38 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('go', 'gomod', 'gosum', 'gotmpl')
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Actions
|
||||
null_ls.builtins.code_actions.gomodifytags,
|
||||
null_ls.builtins.code_actions.impl,
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.golangci_lint,
|
||||
null_ls.builtins.diagnostics.staticcheck,
|
||||
-- Formatter
|
||||
null_ls.builtins.formatting.gofumpt,
|
||||
}
|
||||
end)
|
||||
T.add_lsp_autoinstalls('gopls')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
lspconfig.gopls.setup({ capabilities = capabilities })
|
||||
end)
|
||||
|
||||
T.add_plugins({
|
||||
'leoluz/nvim-dap-go',
|
||||
config = function()
|
||||
local dir = require('util.finder').find_project_dir(
|
||||
'go.mod',
|
||||
3,
|
||||
{ 'src', 'app', 'pkg' },
|
||||
{ 'test' },
|
||||
true
|
||||
)
|
||||
require('dap-go').setup({ delve = { cwd = dir } })
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.code_actions.gomodifytags,
|
||||
null_ls.builtins.code_actions.impl,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {
|
||||
{
|
||||
'leoluz/nvim-dap-go',
|
||||
config = function()
|
||||
local dir = require('util.finder').find_project_dir(
|
||||
'go.mod',
|
||||
3,
|
||||
{ 'src', 'app', 'pkg' },
|
||||
{ 'test' },
|
||||
true
|
||||
)
|
||||
require('dap-go').setup({ delve = { cwd = dir } })
|
||||
end,
|
||||
},
|
||||
},
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.golangci_lint,
|
||||
null_ls.builtins.diagnostics.staticcheck,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.formatting.gofumpt,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.go.requirements'),
|
||||
language_servers = require('toolchain.go.language_server'),
|
||||
formatters = require('toolchain.go.formatter'),
|
||||
actions = require('toolchain.go.actions'),
|
||||
diagnostics = require('toolchain.go.diagnostics'),
|
||||
debuggers = require('toolchain.go.debugger'),
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'gopls',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
lspconfig.gopls.setup({ capabilities = capabilities })
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,17 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.go.formatter').plugins),
|
||||
table.unpack(require('toolchain.go.actions').plugins),
|
||||
table.unpack(require('toolchain.go.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.go.debugger').plugins),
|
||||
table.unpack(require('toolchain.go.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'go',
|
||||
'gomod',
|
||||
'gosum',
|
||||
'gotmpl',
|
||||
},
|
||||
language_servers = require('toolchain.go.language_server').requirements,
|
||||
}
|
|
@ -1,106 +1,113 @@
|
|||
local TOOLCHAINS = {}
|
||||
|
||||
local config = require('toolchain.config')
|
||||
local database = require('toolchain.database')
|
||||
local frontend = require('toolchain.frontend')
|
||||
local generic = require('toolchain.generic')
|
||||
local git = require('toolchain.git')
|
||||
local go = require('toolchain.go')
|
||||
local lua = require('toolchain.lua')
|
||||
local php = require('toolchain.php')
|
||||
local scripts = require('toolchain.scripts')
|
||||
local text = require('toolchain.text')
|
||||
local web = require('toolchain.web')
|
||||
------------
|
||||
-- Plugins -
|
||||
------------
|
||||
|
||||
TOOLCHAINS.plugins = {
|
||||
table.unpack(config.requirements.plugins),
|
||||
table.unpack(database.requirements.plugins),
|
||||
table.unpack(frontend.requirements.plugins),
|
||||
table.unpack(generic.requirements.plugins),
|
||||
table.unpack(git.requirements.plugins),
|
||||
table.unpack(go.requirements.plugins),
|
||||
table.unpack(lua.requirements.plugins),
|
||||
table.unpack(php.requirements.plugins),
|
||||
table.unpack(scripts.requirements.plugins),
|
||||
table.unpack(text.requirements.plugins),
|
||||
table.unpack(web.requirements.plugins),
|
||||
}
|
||||
local plugins = {}
|
||||
|
||||
TOOLCHAINS.highlighters = {
|
||||
table.unpack(config.requirements.highlighters),
|
||||
table.unpack(database.requirements.highlighters),
|
||||
table.unpack(frontend.requirements.highlighters),
|
||||
table.unpack(generic.requirements.highlighters),
|
||||
table.unpack(git.requirements.highlighters),
|
||||
table.unpack(go.requirements.highlighters),
|
||||
table.unpack(lua.requirements.highlighters),
|
||||
table.unpack(php.requirements.highlighters),
|
||||
table.unpack(scripts.requirements.highlighters),
|
||||
table.unpack(text.requirements.highlighters),
|
||||
table.unpack(web.requirements.highlighters),
|
||||
}
|
||||
--- @param ... LazySpec
|
||||
TOOLCHAINS.add_plugins = function(...)
|
||||
for _, spec in ipairs({...}) do
|
||||
table.insert(plugins, spec)
|
||||
end
|
||||
end
|
||||
|
||||
TOOLCHAINS.language_servers = {
|
||||
table.unpack(config.language_servers),
|
||||
table.unpack(database.language_servers),
|
||||
table.unpack(frontend.language_servers),
|
||||
table.unpack(generic.language_servers),
|
||||
table.unpack(git.language_servers),
|
||||
table.unpack(go.language_servers),
|
||||
table.unpack(lua.language_servers),
|
||||
table.unpack(php.language_servers),
|
||||
table.unpack(scripts.language_servers),
|
||||
table.unpack(text.language_servers),
|
||||
table.unpack(web.language_servers),
|
||||
}
|
||||
TOOLCHAINS.get_plugins = function()
|
||||
return plugins
|
||||
end
|
||||
---------
|
||||
-- LSPs -
|
||||
---------
|
||||
local lsp_autoinstalls = {}
|
||||
local lsp_setups = {}
|
||||
|
||||
TOOLCHAINS.diagnostics = {
|
||||
table.unpack(config.diagnostics),
|
||||
table.unpack(database.diagnostics),
|
||||
table.unpack(frontend.diagnostics),
|
||||
table.unpack(generic.diagnostics),
|
||||
table.unpack(git.diagnostics),
|
||||
table.unpack(go.diagnostics),
|
||||
table.unpack(lua.diagnostics),
|
||||
table.unpack(php.diagnostics),
|
||||
table.unpack(scripts.diagnostics),
|
||||
table.unpack(text.diagnostics),
|
||||
table.unpack(web.diagnostics),
|
||||
}
|
||||
--- @param ... string
|
||||
TOOLCHAINS.add_lsp_autoinstalls = function(...)
|
||||
for _, lsp in ipairs({...}) do
|
||||
table.insert(lsp_autoinstalls, lsp)
|
||||
end
|
||||
end
|
||||
|
||||
TOOLCHAINS.get_lsp_autoinstalls = function()
|
||||
return lsp_autoinstalls
|
||||
end
|
||||
|
||||
--- @param setup SetupLSPs
|
||||
TOOLCHAINS.add_lsps = function(setup)
|
||||
table.insert(lsp_setups, setup)
|
||||
end
|
||||
|
||||
--- @param lspconfig any
|
||||
--- @param capabilities any
|
||||
TOOLCHAINS.setup_lsps = function(lspconfig, capabilities)
|
||||
for _, setup in ipairs(lsp_setups) do
|
||||
setup(lspconfig, capabilities)
|
||||
end
|
||||
end
|
||||
|
||||
------------
|
||||
-- Null ls -
|
||||
------------
|
||||
|
||||
local null_ls_setups = {}
|
||||
|
||||
--- @param setup SetupNullLsModule
|
||||
TOOLCHAINS.add_null_ls_module = function(setup)
|
||||
table.insert(null_ls_setups, setup)
|
||||
end
|
||||
|
||||
|
||||
TOOLCHAINS.get_null_ls_source = function(null_ls)
|
||||
local null_ls_sources = {}
|
||||
for _, setup_function in ipairs(null_ls_setups) do
|
||||
local conf = setup_function(null_ls)
|
||||
if #conf ~= 0 then
|
||||
for _, _conf in pairs(conf) do
|
||||
table.insert(null_ls_sources, _conf)
|
||||
end
|
||||
end
|
||||
end
|
||||
return null_ls_sources
|
||||
end
|
||||
|
||||
----------------
|
||||
-- Highlighter -
|
||||
----------------
|
||||
|
||||
local highlighter_autoinstalls = {}
|
||||
|
||||
--- @param ... string
|
||||
TOOLCHAINS.add_highlighter_autoinstalls = function(...)
|
||||
for _, highlighter in ipairs({...}) do
|
||||
table.insert(highlighter_autoinstalls, highlighter)
|
||||
end
|
||||
end
|
||||
|
||||
TOOLCHAINS.get_highlighter_autoinstalls = function()
|
||||
return highlighter_autoinstalls
|
||||
end
|
||||
|
||||
----------------
|
||||
-- Init -
|
||||
----------------
|
||||
TOOLCHAINS.init = function()
|
||||
require('toolchain.config').setup()
|
||||
require('toolchain.database').setup()
|
||||
require('toolchain.frontend').setup()
|
||||
require('toolchain.generic').setup()
|
||||
require('toolchain.git').setup()
|
||||
require('toolchain.go').setup()
|
||||
require('toolchain.lua').setup()
|
||||
require('toolchain.php').setup()
|
||||
require('toolchain.scripts').setup()
|
||||
require('toolchain.text').setup()
|
||||
require('toolchain.web').setup()
|
||||
end
|
||||
return TOOLCHAINS
|
||||
|
||||
--Type Definitions
|
||||
|
||||
---@class Toolchain
|
||||
---@field requirements ToolchainRequirements
|
||||
---@field formatters ToolchainFormatters
|
||||
---@field language_servers ToolchainLanguageServers
|
||||
---@field actions ToolchainActions
|
||||
---@field diagnostics ToolchainDiagnostics
|
||||
---@field debuggers ToolchainDebuggers
|
||||
|
||||
---@class ToolchainRequirements
|
||||
---@field plugins LazySpec[]
|
||||
---@field highlighters table
|
||||
---@field language_servers table
|
||||
|
||||
---@class ToolchainLanguageServers
|
||||
---@field requirements string[]
|
||||
---@field setup fun(lspconfig:any, capabilities: any)
|
||||
|
||||
---@class ToolchainFormatters
|
||||
---@field plugins LazySpec[]
|
||||
---@field setup fun(null_ls: any):table
|
||||
|
||||
---@class ToolchainActions
|
||||
---@field plugins LazySpec[]
|
||||
---@field setup fun(null_ls: any):table
|
||||
|
||||
---@class ToolchainDiagnostics
|
||||
---@field plugins LazySpec[]
|
||||
---@field setup fun(null_ls: any):table
|
||||
|
||||
---@class ToolchainDebuggers
|
||||
---@field plugins LazySpec[]
|
||||
|
||||
---------------------
|
||||
-- Type Definitions -
|
||||
---------------------
|
||||
---@alias SetupLSPs fun(lspconfig:any, capabilities: any)
|
||||
---@alias SetupNullLsModule fun(null_ls: any):table
|
||||
|
|
31
lua/toolchain/lua.lua
Normal file
31
lua/toolchain/lua.lua
Normal file
|
@ -0,0 +1,31 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('lua','luadoc')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.selene,
|
||||
-- Formatter
|
||||
null_ls.builtins.formatting.stylua,
|
||||
}
|
||||
end)
|
||||
T.add_lsp_autoinstalls('lua_ls')
|
||||
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.selene,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.formatting.stylua,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.lua.requirements'),
|
||||
language_servers = require('toolchain.lua.language_server'),
|
||||
formatters = require('toolchain.lua.formatter'),
|
||||
actions = require('toolchain.lua.actions'),
|
||||
diagnostics = require('toolchain.lua.diagnostics'),
|
||||
debuggers = require('toolchain.lua.debugger'),
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'lua_ls',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,15 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.lua.formatter').plugins),
|
||||
table.unpack(require('toolchain.lua.actions').plugins),
|
||||
table.unpack(require('toolchain.lua.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.lua.debugger').plugins),
|
||||
table.unpack(require('toolchain.lua.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'lua',
|
||||
'luadoc',
|
||||
},
|
||||
language_servers = require('toolchain.lua.language_server').requirements,
|
||||
}
|
29
lua/toolchain/php.lua
Normal file
29
lua/toolchain/php.lua
Normal file
|
@ -0,0 +1,29 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('php', 'phpdoc', 'twig')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.phpstan,
|
||||
null_ls.builtins.diagnostics.phpcs,
|
||||
null_ls.builtins.diagnostics.twigcs,
|
||||
-- Formatter
|
||||
null_ls.builtins.formatting.phpcsfixer.with({
|
||||
prefer_local = 'vendor/bin/php-cs-fixer',
|
||||
args = { 'fix', '--allow-risky=yes', '$FILENAME' },
|
||||
}),
|
||||
}
|
||||
end)
|
||||
|
||||
T.add_lsp_autoinstalls('phpactor', 'twiggy_language_server', 'stimulus_ls')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.phpactor.setup(config)
|
||||
lspconfig.stimulus_ls.setup(config)
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.phpstan,
|
||||
null_ls.builtins.diagnostics.phpcs,
|
||||
null_ls.builtins.diagnostics.twigcs,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.formatting.phpcsfixer.with({
|
||||
prefer_local = 'vendor/bin/php-cs-fixer',
|
||||
args = { 'fix', '--allow-risky=yes', '$FILENAME' },
|
||||
}),
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.php.requirements'),
|
||||
language_servers = require('toolchain.php.language_server'),
|
||||
formatters = require('toolchain.php.formatter'),
|
||||
actions = require('toolchain.php.actions'),
|
||||
diagnostics = require('toolchain.php.diagnostics'),
|
||||
debuggers = require('toolchain.php.debugger'),
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'phpactor',
|
||||
'twiggy_language_server',
|
||||
'stimulus_ls',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.phpactor.setup(config)
|
||||
lspconfig.stimulus_ls.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,16 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.php.formatter').plugins),
|
||||
table.unpack(require('toolchain.php.actions').plugins),
|
||||
table.unpack(require('toolchain.php.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.php.debugger').plugins),
|
||||
table.unpack(require('toolchain.php.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'php',
|
||||
'phpdoc',
|
||||
'twig',
|
||||
},
|
||||
language_servers = require('toolchain.php.language_server').requirements,
|
||||
}
|
26
lua/toolchain/scripts.lua
Normal file
26
lua/toolchain/scripts.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('bash', 'dockerfile', 'make', 'just')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.actionlint,
|
||||
null_ls.builtins.diagnostics.checkmake,
|
||||
null_ls.builtins.diagnostics.dotenv_linter,
|
||||
-- Formatter
|
||||
null_ls.builtins.formatting.shfmt,
|
||||
null_ls.builtins.formatting.shellharden,
|
||||
}
|
||||
end)
|
||||
|
||||
T.add_lsp_autoinstalls('bashls')
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.bashls.setup(config)
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,5 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(_null_ls) return {} end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.actionlint,
|
||||
null_ls.builtins.diagnostics.checkmake,
|
||||
null_ls.builtins.diagnostics.dotenv_linter,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.formatting.shfmt,
|
||||
null_ls.builtins.formatting.shellharden,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.scripts.requirements'),
|
||||
language_servers = require('toolchain.scripts.language_server'),
|
||||
formatters = require('toolchain.scripts.formatter'),
|
||||
actions = require('toolchain.scripts.actions'),
|
||||
diagnostics = require('toolchain.scripts.diagnostics'),
|
||||
debuggers = require('toolchain.scripts.debugger'),
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'bashls',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.bashls.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
return {}
|
|
@ -1,17 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.scripts.formatter').plugins),
|
||||
table.unpack(require('toolchain.scripts.actions').plugins),
|
||||
table.unpack(require('toolchain.scripts.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.scripts.debugger').plugins),
|
||||
table.unpack(require('toolchain.scripts.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'bash',
|
||||
'make',
|
||||
'just',
|
||||
'dockerfile',
|
||||
},
|
||||
language_servers = require('toolchain.scripts.language_server').requirements,
|
||||
}
|
|
@ -1,5 +1,30 @@
|
|||
return {
|
||||
{
|
||||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('markdown')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Actions
|
||||
null_ls.builtins.code_actions.proselint,
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.alex,
|
||||
null_ls.builtins.diagnostics.codespell,
|
||||
null_ls.builtins.diagnostics.trail_space,
|
||||
-- Formatter
|
||||
null_ls.builtins.diagnostics.markdownlint,
|
||||
}
|
||||
end)
|
||||
|
||||
T.add_lsp_autoinstalls('marksman')
|
||||
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.marksman.setup(config)
|
||||
end)
|
||||
|
||||
T.add_plugins({
|
||||
'mrjones2014/mdpreview.nvim',
|
||||
ft = 'markdown',
|
||||
dependencies = {
|
||||
|
@ -32,5 +57,7 @@ return {
|
|||
{ desc = 'Show Markdown Preview' }
|
||||
)
|
||||
end,
|
||||
},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainActions
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.code_actions.proselint,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
---@type ToolchainDebuggers
|
||||
return {
|
||||
plugins = {},
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
---@type ToolchainDiagnostics
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.alex,
|
||||
null_ls.builtins.diagnostics.codespell,
|
||||
null_ls.builtins.diagnostics.trail_space,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type ToolchainFormatters
|
||||
return {
|
||||
plugins = {},
|
||||
setup = function(null_ls)
|
||||
return {
|
||||
null_ls.builtins.diagnostics.markdownlint,
|
||||
}
|
||||
end,
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
---@type Toolchain
|
||||
return {
|
||||
requirements = require('toolchain.text.requirements'),
|
||||
language_servers = require('toolchain.text.language_server'),
|
||||
formatters = require('toolchain.text.formatter'),
|
||||
actions = require('toolchain.text.actions'),
|
||||
diagnostics = require('toolchain.text.diagnostics'),
|
||||
debuggers = require('toolchain.text.debugger'),
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
---@type ToolchainLanguageServers
|
||||
return {
|
||||
requirements = {
|
||||
'marksman',
|
||||
},
|
||||
setup = function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.marksman.setup(config)
|
||||
end,
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
---@type ToolchainRequirements
|
||||
return {
|
||||
plugins = {
|
||||
table.unpack(require('toolchain.text.formatter').plugins),
|
||||
table.unpack(require('toolchain.text.actions').plugins),
|
||||
table.unpack(require('toolchain.text.diagnostics').plugins),
|
||||
table.unpack(require('toolchain.text.debugger').plugins),
|
||||
table.unpack(require('toolchain.text.plugins')),
|
||||
},
|
||||
highlighters = {
|
||||
'markdown',
|
||||
},
|
||||
language_servers = require('toolchain.text.language_server').requirements,
|
||||
}
|
31
lua/toolchain/web.lua
Normal file
31
lua/toolchain/web.lua
Normal file
|
@ -0,0 +1,31 @@
|
|||
local T = require('toolchain')
|
||||
local M = {}
|
||||
|
||||
M.setup = function()
|
||||
T.add_highlighter_autoinstalls('html', 'css', 'scss', 'javascript', 'typescript')
|
||||
|
||||
T.add_null_ls_module(function(null_ls)
|
||||
return {
|
||||
-- Diagnostics
|
||||
null_ls.builtins.diagnostics.stylelint,
|
||||
-- Formatter
|
||||
null_ls.builtins.formatting.prettier.with({
|
||||
command = 'prettierd',
|
||||
}),
|
||||
}
|
||||
end)
|
||||
|
||||
T.add_lsp_autoinstalls('html', 'emmet_ls', 'cssls', 'tailwindcss', 'eslint', 'tsserver')
|
||||
|
||||
T.add_lsps(function(lspconfig, capabilities)
|
||||
local config = { capabilities = capabilities }
|
||||
lspconfig.html.setup(config)
|
||||
lspconfig.emmet_ls.setup(config)
|
||||
lspconfig.cssls.setup(config)
|
||||
lspconfig.tailwindcss.setup(config)
|
||||
lspconfig.tsserver.setup(config)
|
||||
lspconfig.eslint.setup(config)
|
||||
end)
|
||||
end
|
||||
|
||||
return M
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue