-- 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" }, json = { "jq" }, javascript = { "biome" }, typescript = { "biome" }, javascriptreact = { "biome" }, typescriptreact = { "biome" }, }, }) 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)