91 lines
3.0 KiB
Lua
91 lines
3.0 KiB
Lua
-- Colortheme
|
|
Config.now(function()
|
|
vim.pack.add({ { src = 'https://github.com/rose-pine/neovim', name = 'rose-pine' } })
|
|
require('rose-pine').setup({
|
|
enable = { terminal = false, legacy_highlights = false, migrations = false },
|
|
})
|
|
vim.cmd('colorscheme rose-pine')
|
|
end)
|
|
|
|
-- Treesitter
|
|
Config.now_if_args(function()
|
|
vim.pack.add({ 'https://github.com/nvim-treesitter/nvim-treesitter' })
|
|
|
|
local filetypes = {
|
|
'html', 'css', 'lua', 'go', 'php', 'blade', 'sql', 'javascript',
|
|
'typescript', 'typescriptreact', 'svelte', 'dockerfile', 'yaml', 'markdown', 'dart',
|
|
'json', 'xml', 'toml', 'sh', 'bash', 'zsh', 'just', 'gitcommit', 'diff', 'regex', 'http'
|
|
}
|
|
|
|
Config.on_filetype(table.concat(filetypes, ','), function()
|
|
local buf = vim.api.nvim_get_current_buf()
|
|
if pcall(vim.treesitter.start, buf) and vim.bo[buf].filetype == 'php' then
|
|
vim.bo[buf].indentexpr = 'v:lua.require"nvim-treesitter".indentexpr()'
|
|
end
|
|
end)
|
|
|
|
Config.later(function()
|
|
require('nvim-treesitter').install(vim.tbl_map(function(ft)
|
|
return vim.treesitter.language.get_lang(ft) or ft
|
|
end, filetypes))
|
|
end)
|
|
end)
|
|
|
|
-- LSP
|
|
Config.now_if_args(function()
|
|
vim.pack.add({ 'https://github.com/neovim/nvim-lspconfig' })
|
|
vim.lsp.enable({ 'ansiblels', 'gopls', 'intelephense', 'svelte', 'tailwindcss', 'tsc' })
|
|
end)
|
|
|
|
-- Formatting
|
|
Config.later(function()
|
|
vim.pack.add({ 'https://github.com/stevearc/conform.nvim' })
|
|
require('conform').setup({
|
|
default_format_opts = { lsp_format = 'fallback' },
|
|
format_on_save = { lsp_format = 'fallback', timeout_ms = 1000 },
|
|
formatters_by_ft = {
|
|
go = { 'gofumpt', 'goimports' },
|
|
php = { 'php_cs_fixer' },
|
|
json = { 'jq' },
|
|
javascript = { 'biome' },
|
|
typescript = { 'biome' },
|
|
javascriptreact = { 'biome' },
|
|
typescriptreact = { 'biome' },
|
|
svelte = { 'biome' },
|
|
},
|
|
})
|
|
end)
|
|
|
|
-- DAP
|
|
Config.later(function()
|
|
vim.pack.add({ 'https://github.com/mfussenegger/nvim-dap' })
|
|
|
|
local dap_signs = {
|
|
DapBreakpoint = { text = '', texthl = 'DapBreakpoint' },
|
|
DapBreakpointCondition = { text = '', texthl = 'DapBreakpointCondition' },
|
|
DapLogPoint = { text = '', texthl = 'DapLogPoint' },
|
|
DapStopped = { text = '', texthl = 'DapStopped', linehl = 'DapStoppedLine' },
|
|
DapBreakpointRejected = { text = '', texthl = 'DapBreakpointRejected' },
|
|
}
|
|
for name, sign in pairs(dap_signs) do
|
|
vim.fn.sign_define(name, sign)
|
|
end
|
|
|
|
require('dap').adapters.go = { type = 'server', host = '127.0.0.1', port = '${port}' }
|
|
end)
|
|
|
|
-- Kulala
|
|
Config.on_filetype('http', function()
|
|
vim.pack.add({ 'https://github.com/mistweaverco/kulala.nvim' })
|
|
require('kulala').setup({ default_env = 'dev' })
|
|
end)
|
|
|
|
-- Flutter
|
|
Config.on_filetype('dart', function()
|
|
vim.pack.add({
|
|
'https://github.com/nvim-lua/plenary.nvim',
|
|
'https://github.com/nvim-flutter/flutter-tools.nvim',
|
|
})
|
|
require('flutter-tools').setup({ lsp = { color_capabilities = true } })
|
|
end)
|