diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 6e68c33..3771290 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -1,10 +1,21 @@ { + "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, "auto-pairs": { "branch": "master", "commit": "39f06b873a8449af8ff6a3eee716d3da14d63a76" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, + "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "gitsigns.nvim": { "branch": "main", "commit": "2ff0c29f2a6b1247d96cc59535d53e5589fb50b6" }, "kanagawa.nvim": { "branch": "master", "commit": "988082eb00b845e4afbcaa4fd8e903da8a3ab3b9" }, "lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "e942edf5c85b6a2ab74059ea566cac5b3e1514a4" }, + "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "e6645ecfcba3e064446a6def1c10d788c9873f51" }, "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, + "nvim-cmp": { "branch": "main", "commit": "8c82d0bd31299dbff7f8e780f5e06d2283de9678" }, + "nvim-lspconfig": { "branch": "master", "commit": "d1871c84b218931cc758dbbde1fec8e90c6d465c" }, "nvim-treesitter": { "branch": "master", "commit": "0c94de7e9792cf89c14a865ab819ad5c6e6a7f77" }, "nvim-web-devicons": { "branch": "master", "commit": "aafa5c187a15701a7299a392b907ec15d9a7075f" }, "plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" }, diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua new file mode 100644 index 0000000..1778b96 --- /dev/null +++ b/.config/nvim/lua/plugins/lsp.lua @@ -0,0 +1,87 @@ +return { + { + "williamboman/mason.nvim", + opts = {} + }, + { + "williamboman/mason-lspconfig.nvim", + opts = { + ensure_installed = {"lua-ls", "clangd", "ts_ls", "pyright", "zls", "hls", "bashls"} + } + }, + { + "neovim/nvim-lspconfig", + config = function() + require("lspconfig").lua_ls.setup({}) + require("lspconfig").clangd.setup({}) + require("lspconfig").ts_ls.setup({}) + require("lspconfig").eslint.setup({}) + require("lspconfig").pyright.setup({}) + require("lspconfig").zls.setup({}) + require("lspconfig").hls.setup({}) + end + }, + { + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-cmdline', + 'saadparwaiz1/cmp_luasnip', + }, + { + 'L3MON4D3/LuaSnip', + dependencies = {'rafamadriz/friendly-snippets'}, + }, + { + 'hrsh7th/nvim-cmp', + config = function() + local cmp = require('cmp') + local cmp_select = {behavior = cmp.SelectBehavior.Select} + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + require('luasnip.loaders.from_vscode').lazy_load() + end, + }, + window = { + + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }), + }) + local capabilities = require('cmp_nvim_lsp').default_capabilities() + require("lspconfig").lua_ls.setup({ + capabilities = capabilities + }) + require("lspconfig").clangd.setup({ + capabilities = capabilities + }) + require("lspconfig").ts_ls.setup({ + capabilities = capabilities + }) + require("lspconfig").eslint.setup({ + capabilities = capabilities + }) + require("lspconfig").pyright.setup({ + capabilities = capabilities + }) + require("lspconfig").zls.setup({ + capabilities = capabilities + }) + require("lspconfig").hls.setup({ + capabilities = capabilities + }) + end + } + + +} diff --git a/.zshrc b/.zshrc index cfe328c..c8dd296 100644 --- a/.zshrc +++ b/.zshrc @@ -3,3 +3,5 @@ export XDG_RUNTIME_DIR=/run/user/$(id -u) export PATH="$PATH:$HOME/.local/bin" eval "$(starship init zsh)" + +[ -f "/home/cfigueroa/.ghcup/env" ] && . "/home/cfigueroa/.ghcup/env" # ghcup-env \ No newline at end of file diff --git a/install.sh b/install.sh index 288509b..83283e5 100755 --- a/install.sh +++ b/install.sh @@ -18,8 +18,10 @@ mkdir --parents ~/projects/javascript chsh -s $(which zsh) sudo xbps-install -y font-firacode river wezterm firefox dbus elogind pipewire wireplumber ffmpeg eww rofi -sudo xbps-install -y stc syncthing -sudo xbps-install -y rustup ghc openjdk21 apache-maven gradle nodejs +sudo xbps-install -y rustup openjdk21 apache-maven gradle nodejs unzip +sudo xbps-install -y binutils curl gcc gmp-devel glibc-devel libffi-devel make ncurses-devel ncurses-libtinfo-libs perl pkg-config tar xz +sudo xbps-install -y lua-language-server +sudo npm i -g typescript typescript-language-server # Setup river sudo ln -s /etc/sv/dbus /var/service