From 4a2ee1ef1048bd2438f0c3209b300035c883df1d Mon Sep 17 00:00:00 2001 From: roxwize Date: Thu, 5 Jun 2025 16:46:21 -0400 Subject: [PATCH] ~ --- configs/neovim.lua | 97 +++++++++++++++++++++++++++++++++++++++++++ nixos/home/neovim.nix | 69 ++++-------------------------- 2 files changed, 106 insertions(+), 60 deletions(-) create mode 100644 configs/neovim.lua diff --git a/configs/neovim.lua b/configs/neovim.lua new file mode 100644 index 0000000..0785b9e --- /dev/null +++ b/configs/neovim.lua @@ -0,0 +1,97 @@ +--vim.lsp.enable("ts_ls") +--vim.lsp.enable("vala_ls") + +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true +vim.opt.number = true + +-- TODO: run :Neotree on VimEnter autocmd +-- neo-tree +require("neo-tree").setup { + default_component_configs = { + git_status = { + symbols = { + added = "+", + conflict = "!" + deleted = "-", + ignored = ".", + modified = "/", + renamed = ">", + staged = "S", + unstaged = "U", + untracked = "U", + } + } + icon = { + folder_closed = "-", + folder_open = "+", + folder_empty = "-", + folder_empty_open = "-" + } + }, + sources = { + "filesystem", + "buffers", + "git_status", + "document_symbols" + }, + source_selector = { + winbar = true, + sources = { + { source = "filesystem" }, + { source = "buffers" }, + { source = "git_status" }, + { source = "document_symbols" } + } + } +} +vim.api.nvim_create_autocmd({"VimEnter"}, { + command = "Neotree action=show position=right reveal=true" +}) + +---- language servers + intellisense +-- cmp +local cmp = require("cmp") +cmp.setup { + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end + }, + mapping = { + [''] = cmp.mapping.select_prev_item(), + [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.close(), + [''] = cmp.mapping.confirm { select = true } + }, + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" } + }) +} + +local caps = vim.tbl_deep_extend( + "force", + vim.lsp.protocol.make_client_capabilities(), + require("cmp_nvim_lsp").default_capabilities(), + { workspace = { didChangeWatchedFiles = { dynamicRegistration = true } } } +) + +-- lspconfig +local lc = require("lspconfig") + +lc.clangd.setup { + autostart = true, + capabilities = caps, + cmd = { "clangd" } +} +lc.nil_ls.setup { + autostart = true, + capabilities = caps, + cmd = { "nil" } +} +lc.ts_ls.setup { capabilities = caps } +lc.vala_ls.setup { capabilities = caps } diff --git a/nixos/home/neovim.nix b/nixos/home/neovim.nix index b968ca3..56f005d 100644 --- a/nixos/home/neovim.nix +++ b/nixos/home/neovim.nix @@ -6,67 +6,16 @@ plugins = with pkgs.vimPlugins; [ cmp_luasnip cmp-nvim-lsp - luasnip - nvim-cmp + luasnip # Snippet engine + neo-tree-nvim # Filesystem tree + nvim-cmp # Code completion nvim-lspconfig - rustaceanvim - vim-just - vim-sleuth - vim-wakatime + rustaceanvim # Rust support + vim-just # Syntax [just] + vim-sleuth # Indentation detection + vim-wakatime # Wakatime support ]; - extraLuaConfig = '' - --vim.lsp.enable("ts_ls") - --vim.lsp.enable("vala_ls") - - vim.opt.tabstop = 4 - vim.opt.softtabstop = 4 - vim.opt.shiftwidth = 4 - vim.opt.expandtab = true - vim.opt.number = true - - -- cmp - local cmp = require("cmp") - cmp.setup { - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - end - }, - mapping = { - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.close(), - [''] = cmp.mapping.confirm { select = true } - }, - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "luasnip" } - }) - } - - local caps = vim.tbl_deep_extend( - "force", - vim.lsp.protocol.make_client_capabilities(), - require("cmp_nvim_lsp").default_capabilities(), - { workspace = { didChangeWatchedFiles = { dynamicRegistration = true } } } - ) - - -- lspconfig - local lc = require("lspconfig") - - lc.clangd.setup { - autostart = true, - capabilities = caps, - cmd = { "clangd" } - } - lc.nil_ls.setup { - autostart = true, - capabilities = caps, - cmd = { "nil" } - } - lc.ts_ls.setup { capabilities = caps } - lc.vala_ls.setup { capabilities = caps } - ''; + # TODO make path agnostic + extraLuaConfig = builtins.readFile /home/rae/.dotfiles/configs/neovim.lua; }; }