134 lines
4.0 KiB
Lua
134 lines
4.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',
|
|
'https://github.com/nvim-treesitter/nvim-treesitter-textobjects',
|
|
})
|
|
|
|
vim.treesitter.language.register('tsx', { 'typescriptreact' })
|
|
|
|
local filetypes = {
|
|
'html', 'css', 'lua', 'go', 'php', 'blade', 'sql', 'javascript',
|
|
'typescript', 'typescriptreact', '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)
|
|
|
|
-- Mason =======================================================================
|
|
Config.now_if_args(function()
|
|
vim.pack.add({ "https://github.com/mason-org/mason.nvim" })
|
|
require("mason").setup()
|
|
end)
|
|
|
|
-- LSP =========================================================================
|
|
Config.now_if_args(function()
|
|
vim.pack.add({ "https://github.com/neovim/nvim-lspconfig" })
|
|
|
|
vim.lsp.enable({
|
|
"ansiblels",
|
|
"gopls",
|
|
"intelephense",
|
|
"lua_ls",
|
|
"tailwindcss",
|
|
"tsc",
|
|
"dartls"
|
|
})
|
|
end)
|
|
|
|
-- Formatting ==================================================================
|
|
Config.now_if_args(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" },
|
|
},
|
|
})
|
|
end)
|
|
|
|
-- DAP =========================================================================
|
|
function Config.setup_dap()
|
|
Config.setup_dap = nil
|
|
vim.pack.add({ "https://github.com/mfussenegger/nvim-dap" })
|
|
|
|
local dap = require("dap")
|
|
dap.adapters.php = {
|
|
type = "executable",
|
|
command = "node",
|
|
args = { vim.fn.stdpath("data") .. "/mason/packages/php-debug-adapter/extension/out/phpDebug.js" },
|
|
}
|
|
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
|
|
|
|
-- Laravel =====================================================================
|
|
function Config.setup_laravel()
|
|
Config.setup_laravel = nil
|
|
vim.pack.add({
|
|
"https://github.com/MunifTanjim/nui.nvim",
|
|
"https://github.com/nvim-lua/plenary.nvim",
|
|
"https://github.com/nvim-neotest/nvim-nio",
|
|
"https://github.com/adalessa/laravel.nvim",
|
|
})
|
|
|
|
require("laravel").setup({})
|
|
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', 'php', Config.setup_laravel, "Setup laravel", true)
|
|
Config.autocmd('FileType', 'dart', Config.setup_flutter, "Setup flutter", true)
|