From 313d7ad739882693cf91555d93b19ef883ff549a Mon Sep 17 00:00:00 2001 From: schererleander Date: Wed, 30 Jul 2025 20:54:30 +0200 Subject: chore: cleanup --- modules/home-manager/init.lua | 95 -------------- modules/home-manager/neovim.nix | 31 ----- modules/home-manager/neovim/default.nix | 39 ++++++ modules/home-manager/neovim/init.lua | 212 ++++++++++++++++++++++++++++++++ 4 files changed, 251 insertions(+), 126 deletions(-) delete mode 100644 modules/home-manager/init.lua delete mode 100644 modules/home-manager/neovim.nix create mode 100644 modules/home-manager/neovim/default.nix create mode 100644 modules/home-manager/neovim/init.lua (limited to 'modules/home-manager') diff --git a/modules/home-manager/init.lua b/modules/home-manager/init.lua deleted file mode 100644 index ddd4a0d..0000000 --- a/modules/home-manager/init.lua +++ /dev/null @@ -1,95 +0,0 @@ -vim.o.number = true -vim.o.relativenumber = true -vim.o.signcolumn = "yes" -vim.o.termguicolors = true -vim.o.wrap = false -vim.o.tabstop = 2 -vim.o.shiftwidth = 2 -vim.o.swapfile = false -vim.g.mapleader = " " -vim.o.winborder = "rounded" -vim.o.clipboard = "unnamedplus" - -local map = vim.keymap.set -map('n', 'o', 'updatesource %', { desc = 'Save & reload init.lua' }) -map('n', 'w', 'write') -map('n', 'q', 'quit') - -map({ 'n', 'v', 'x' }, 'y', '"+y', { desc = 'Yank to system clipboard' }) -map({ 'n', 'v', 'x' }, 'd', '"+d', { desc = 'Delete to system clipboard' }) - -vim.pack.add({ - { src = "https://github.com/ellisonleao/gruvbox.nvim" }, --- { src = "https://github.com/nyoom-engineering/oxocarbon.nvim" }, - { src = "https://github.com/echasnovski/mini.pick" }, - { src = "https://github.com/lewis6991/gitsigns.nvim" }, - { src = "https://github.com/nvim-treesitter/nvim-treesitter" }, - { src = "https://github.com/neovim/nvim-lspconfig" }, -}) - -require("nvim-treesitter.configs").setup({ - ensure_installed = { "lua", "nix" }, - highlight = { enable = true }, -}) - -vim.diagnostic.config({ - virtual_text = { - source = "if_many", - }, - underline = true, - severity_sort = true, -}) - -vim.api.nvim_create_autocmd('LspAttach', { - callback = function(ev) - local client = vim.lsp.get_client_by_id(ev.data.client_id) - if client:supports_method('textDocument/completion') then - vim.lsp.completion.enable(true, client.id, ev.buf, { autotrigger = true }) - end - end, -}) -vim.o.completeopt = "menu,menuone,noselect" - -require("gitsigns").setup() - -require("lspconfig").nixd.setup({ - settings = { - nixd = { - formatting = { - command = { "nixfmt" }, - }, - }, - }, -}) - -require("lspconfig").lua_ls.setup({ - settings = { - lua_ls = { - formatting = { - command = { "luaformatter" }, - }, - }, - }, -}) - -vim.lsp.enable({ "lua_ls", "pyright" }) -vim.keymap.set('n', 'lf', vim.lsp.buf.format) - - -require("mini.pick").setup() - -vim.cmd("colorscheme gruvbox") - -local hl = vim.api.nvim_set_hl -hl(0, 'Normal', { bg = 'none' }) -hl(0, 'NormalFloat', { bg = 'none' }) -hl(0, 'NormalNC', { bg = 'none' }) -hl(0, 'StatusLine', { bg = 'none' }) -hl(0, 'SignColumn', { bg = 'none' }) - --- LSP diagnostics -hl(0, "DiagnosticError", { bg = "none" }) -hl(0, "DiagnosticSignError", { bg = "none" }) -hl(0, "DiagnosticSignHint", { bg = "none" }) -hl(0, "DiagnosticSignInfo", { bg = "none" }) -hl(0, "DiagnosticSignWarn", { bg = "none" }) diff --git a/modules/home-manager/neovim.nix b/modules/home-manager/neovim.nix deleted file mode 100644 index f1fe165..0000000 --- a/modules/home-manager/neovim.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: - -{ - options.neovim.enable = lib.mkEnableOption "Setup neovim"; - config = lib.mkIf config.neovim.enable { - programs.neovim = { - enable = true; - package = pkgs.neovim; - extraConfig = '' - luafile ${./init.lua} - ''; - }; - home.packages = with pkgs; [ - # language servers - lua-language-server - nixd - pyright - java-language-server - typescript-language-server - - # formatter - nixfmt-rfc-style - luaformatter - ]; - }; -} diff --git a/modules/home-manager/neovim/default.nix b/modules/home-manager/neovim/default.nix new file mode 100644 index 0000000..230d27e --- /dev/null +++ b/modules/home-manager/neovim/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + options.neovim.enable = lib.mkEnableOption "Setup neovim"; + config = lib.mkIf config.neovim.enable { + programs.neovim = { + enable = true; + package = pkgs.neovim; + extraConfig = '' + luafile ${./init.lua} + ''; + }; + home.packages = with pkgs; [ + ripgrep + + # github pilot + nodejs + + # language servers + lua-language-server + nixd + pyright + gopls + java-language-server + typescript-language-server + rust-analyzer + tailwindcss-language-server + + # formatter + nixfmt-rfc-style + luaformatter + ]; + }; +} diff --git a/modules/home-manager/neovim/init.lua b/modules/home-manager/neovim/init.lua new file mode 100644 index 0000000..dc4e4c6 --- /dev/null +++ b/modules/home-manager/neovim/init.lua @@ -0,0 +1,212 @@ +-- General settings +vim.g.mapleader = " " +vim.o.number = true +vim.o.relativenumber = true +vim.o.signcolumn = "yes" +vim.o.termguicolors = true +vim.o.wrap = false +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 +vim.o.updatetime = 250 +vim.o.timeoutlen = 300 +vim.o.swapfile = false +vim.o.ignorecase = true +vim.o.smartcase = true +vim.o.winborder = "rounded" +vim.o.clipboard = "unnamedplus" + +local map = vim.keymap.set +map('n', 'o', 'updatesource %', { desc = 'Save & reload init.lua' }) +map('n', 'w', 'write') +map('n', 'q', 'quit') + +vim.pack.add({ + { src = "https://github.com/ellisonleao/gruvbox.nvim" }, + { src = "https://github.com/echasnovski/mini.starter" }, + { src = "https://github.com/lewis6991/gitsigns.nvim" }, + { src = "https://github.com/windwp/nvim-autopairs" }, + { src = "https://github.com/zbirenbaum/copilot.lua" }, + { src = "https://github.com/nvim-telescope/telescope.nvim" }, + { src = "https://github.com/j-hui/fidget.nvim" }, + { src = "https://github.com/nvim-lua/plenary.nvim" }, + { src = "https://github.com/nvim-treesitter/nvim-treesitter" }, + { src = "https://github.com/neovim/nvim-lspconfig" }, + { src = "https://github.com/hrsh7th/nvim-cmp" }, + { src = "https://github.com/hrsh7th/cmp-nvim-lsp" }, + { src = "https://github.com/hrsh7th/cmp-buffer" }, + { src = "https://github.com/hrsh7th/cmp-path" }, + { src = "https://github.com/hrsh7th/cmp-cmdline" }, + { src = "https://github.com/L3MON4D3/LuaSnip" }, + { src = "https://github.com/saadparwaiz1/cmp_luasnip" }, + { src = "https://github.com/onsails/lspkind-nvim" } +}) + +require("nvim-treesitter.configs").setup({ + ensure_installed = { "lua", "nix" }, + highlight = { enable = true }, +}) + +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, { desc = 'Telescope find files' }) +vim.keymap.set('n', 'fg', builtin.live_grep, { desc = 'Telescope live grep' }) +vim.keymap.set('n', 'fb', builtin.buffers, { desc = 'Telescope buffers' }) +vim.keymap.set('n', 'fh', builtin.help_tags, { desc = 'Telescope help tags' }) + + +local cmp = require("cmp") +cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping(function(fallback) + local copilot = require('copilot.suggestion') + if copilot.is_visible() then + copilot.accept() + elseif cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, { 'i', 's' }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) +}) + +-- Add parentheses after selecting function or method +local cmp_autopairs = require('nvim-autopairs.completion.cmp') +cmp.event:on( + 'confirm_done', + cmp_autopairs.on_confirm_done() +) + +local capabilities = require('cmp_nvim_lsp').default_capabilities() + +require("lspconfig").nixd.setup({ + capabilities = capabilities, + settings = { + nixd = { + formatting = { + command = { "nixfmt" }, + }, + }, + }, +}) + +require("lspconfig").lua_ls.setup({ + capabilities = capabilities, + settings = { + lua_ls = { + formatting = { + command = { "luaformatter" }, + }, + }, + Lua = { + runtime = { + version = 'LuaJIT', + }, + diagnostics = { + globals = { + 'vim', 'require' + }, + }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + }, + telemetry = { + enable = false, + }, + }, + }, +}) + +require("lspconfig").pyright.setup({ + capabilities = capabilities, +}) + +require("lspconfig").ts_ls.setup({ + capabilities = capabilities, +}) + +require("lspconfig").tailwind.setup({ + capabilities = capabilities, +}) + +require("lspconfig").gopls.setup({ + capabilities = capabilities, + settings = { + gopls = { + analyses = { + unusedparams = true, + unusedwrite = true, + }, + staticcheck = true, + }, + }, +}) + +require("lspconfig").rust_analyzer.setup({ + capabilities = capabilities, +}) + +vim.diagnostic.config({ + virtual_text = { source = "if_many" }, + underline = true, + severity_sort = true, +}) + +vim.lsp.enable({ "lua_ls", "pyright" }) +vim.keymap.set('n', 'lf', vim.lsp.buf.format) + +require("mini.starter").setup({ + header = table.concat({ + " /l、 ", + "(゚、 。 7 ", + " l ~ ヽ ", + " じしf_,)ノ ", + }, "\n"), + footer = "", + content_hooks = { + require("mini.starter").gen_hook.adding_bullet("» "), + require("mini.starter").gen_hook.aligning("center", "center"), + }, +}) + + +require("gitsigns").setup() +require("nvim-autopairs").setup() +require("fidget").setup() +require("copilot").setup() + +vim.cmd("colorscheme gruvbox") + +local hl = vim.api.nvim_set_hl +hl(0, 'Normal', { bg = 'none' }) +hl(0, 'NormalFloat', { bg = 'none' }) +hl(0, 'NormalNC', { bg = 'none' }) +hl(0, 'StatusLine', { bg = 'none' }) +hl(0, 'SignColumn', { bg = 'none' }) +hl(0, "DiagnosticError", { bg = "none" }) +hl(0, "DiagnosticSignError", { bg = "none" }) +hl(0, "DiagnosticSignHint", { bg = "none" }) +hl(0, "DiagnosticSignInfo", { bg = "none" }) +hl(0, "DiagnosticSignWarn", { bg = "none" }) -- cgit v1.3.1