Files
neovim-config/plugin/40_plugins.lua
T
2026-09-03 19:17:30 +02:00

120 lines
3.8 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' })
vim.treesitter.language.register('tsx', { 'typescriptreact' })
local filetypes = {
'html', 'css', 'lua', 'go', 'php', 'blade', 'sql', 'javascript',
'typescript', 'typescriptreact', 'svelte', 'dockerfile', 'yaml', 'markdown', 'dart',
'json', 'xml', 'toml', 'sh', 'bash', 'zsh', 'gitcommit', 'diff', 'regex', 'http'
}
Config.autocmd('FileType', filetypes, function(ev)
if pcall(vim.treesitter.start, ev.buf) then
if vim.bo[ev.buf].filetype == 'php' then
-- Fixes broken indentation on `o` in php buffers
vim.bo[ev.buf].indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
end
end
end, 'Start tree-sitter')
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.later(function()
vim.pack.add({ "https://github.com/neovim/nvim-lspconfig" })
vim.lsp.enable({
"ansiblels",
"gopls",
"intelephense",
"lua_ls",
"svelte",
"tailwindcss",
"tsc",
"dartls"
})
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 =========================================================================
function Config.setup_dap()
Config.setup_dap = nil
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
local dap = require("dap")
dap.adapters.go = { type = "server", host = "127.0.0.1", port = "${port}" }
end
-- Kulala ======================================================================
function Config.setup_kulala()
Config.setup_kulala = nil
vim.pack.add({ "https://github.com/mistweaverco/kulala.nvim" })
require("kulala").setup({ default_env = "dev" })
end
-- Flutter =====================================================================
function Config.setup_flutter()
Config.setup_flutter = nil
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
Config.autocmd('FileType', 'dart', Config.setup_flutter, "Setup flutter", true)