diff --git a/init.lua b/init.lua index b58786b..831e06c 100644 --- a/init.lua +++ b/init.lua @@ -9,16 +9,22 @@ require("mason-lspconfig").setup({ "clangd", "ols", "ts_ls", - "vue_ls" + "vue_ls", + "phpactor", }, }) +require("mason-nvim-dap").setup({ + ensure_installed = { "php" }, + automatic_setup = true, + handlers = {}, +}) -- My user settings: vim.opt.number = true vim.opt.relativenumber = true vim.opt.shiftwidth = 4 vim.opt.tabstop = 4 ---vim.opt.expandtab = true +vim.opt.expandtab = true vim.opt.autoindent = true vim.opt.foldmethod = "indent" vim.opt.foldenable = false @@ -47,10 +53,30 @@ vim.keymap.set("n", ";", function() harpoon:list():select(4) end) local lspconfig = vim.lsp.config local lspenable = vim.lsp.enable lspconfig("ts_ls", { - filetypes = {'js', 'ts', 'vue'}, + filetypes = {'javascript', 'typescript', 'vue', 'typescriptreact', 'javascriptreact'}, +}) +lspconfig("phpactor", { + cmd = {'phpactor', 'language-server'}, + filetypes = {'php'}, }) lspenable("pylsp") lspenable("clangd") lspenable("ols") lspenable("ts_ls") lspenable("vue_ls") +lspenable("glsl_analyzer") +lspenable("phpactor") + + +local dap = require('dap') +dap.configurations.php = { + { + type = 'php', + request = 'launch', + name = 'Listen for Apache Prestashop', + port = 9003, + pathMappings = { + ["/home/bnilsen/var/www/html/prestashop"] = vim.fn.getcwd() + } + } +} diff --git a/lua/plugins/completion.lua b/lua/plugins/completion.lua new file mode 100644 index 0000000..c2f9f3b --- /dev/null +++ b/lua/plugins/completion.lua @@ -0,0 +1,59 @@ +return { + { + 'saghen/blink.cmp', + -- optional: provides snippets for the snippet source + dependencies = { 'rafamadriz/friendly-snippets' }, + + -- use a release tag to download pre-built binaries + version = '1.*', + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) + -- 'super-tab' for mappings similar to vscode (tab to accept) + -- 'enter' for enter to accept + -- 'none' for no mappings + -- + -- All presets have the following mappings: + -- C-space: Open menu or open docs if already open + -- C-n/C-p or Up/Down: Select next/previous item + -- C-e: Hide menu + -- C-k: Toggle signature help (if signature.enabled = true) + -- + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { preset = 'default' }, + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = 'mono' + }, + + enabled = function() return not vim.tbl_contains({"markdown"}, vim.bo.filetype) end, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + signature = { enabled = true }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { 'lsp', 'path', 'snippets', 'buffer' }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" } + }, + opts_extend = { "sources.default" } + } +} diff --git a/lua/plugins/mason-nvim-dap.lua b/lua/plugins/mason-nvim-dap.lua new file mode 100644 index 0000000..cbefd6b --- /dev/null +++ b/lua/plugins/mason-nvim-dap.lua @@ -0,0 +1,3 @@ +return {{ + "jay-babu/mason-nvim-dap.nvim", +}}