From 70d6e45fe4757c77372ce31cf2f08cd25f947eb4 Mon Sep 17 00:00:00 2001 From: schererleander Date: Tue, 29 Jul 2025 12:55:26 +0200 Subject: feat: add formatter --- modules/home-manager/init.lua | 64 ++++++++++++++++++++++++++++------------- modules/home-manager/neovim.nix | 33 ++++++++++++++------- 2 files changed, 67 insertions(+), 30 deletions(-) (limited to 'modules/home-manager') diff --git a/modules/home-manager/init.lua b/modules/home-manager/init.lua index e181993..132b7e0 100644 --- a/modules/home-manager/init.lua +++ b/modules/home-manager/init.lua @@ -3,26 +3,34 @@ vim.o.relativenumber = true vim.o.signcolumn = "yes" vim.o.termguicolors = true vim.o.wrap = false -vim.o.tabstop = 4 +vim.o.tabstop = 2 +vim.o.shiftwidth = 2 vim.o.swapfile = false vim.g.mapleader = " " vim.o.winborder = "rounded" vim.o.clipboard = "unnamedplus" -vim.keymap.set('n', 'o', ':update :source') -vim.keymap.set('n', 'w', ':write') -vim.keymap.set('n', 'q', ':quit') +local map = vim.keymap.set +map('n', 'o', 'updatesource %', { desc = 'Save & reload init.lua' }) +map('n', 'w', 'write') +map('n', 'q', 'quit') -vim.keymap.set({ 'n', 'v', 'x' }, 'y', '"+y') -vim.keymap.set({ 'n', 'v', 'x' }, 'd', '"+d') +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/vague2k/vague.nvim" }, + { src = "https://github.com/nyoom-engineering/oxocarbon.nvim" }, { src = "https://github.com/echasnovski/mini.pick" }, { 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.api.nvim_create_autocmd('LspAttach', { callback = function(ev) local client = vim.lsp.get_client_by_id(ev.data.client_id) @@ -31,21 +39,37 @@ vim.api.nvim_create_autocmd('LspAttach', { end end, }) -vim.o.completeopt = "menu,menuone,noselct" +vim.o.completeopt = "menu,menuone,noselect" + + +require("lspconfig").nixd.setup({ + settings = { + nixd = { + formatting = { + command = { "nixfmt" }, + }, + }, + }, +}) -require "mini.pick".setup() -require "nvim-treesitter.configs".setup({ - ensure_installed = { "lua" "nix" }, - highlight = { enable = true } +require("lspconfig").lua_ls.setup({ + settings = { + lua_ls = { + formatting = { + command = { "luaformatter" }, + }, + }, + }, }) -require "oil".setup() -vim.keymap.set('n', 'f', ":Pick files") -vim.keymap.set('n', 'h', ":Pick help") -vim.keymap.set('n', 'e', ":Oil") +vim.lsp.enable({ "lua_ls", "pyright" }) vim.keymap.set('n', 'lf', vim.lsp.buf.format) -vim.lsp.enable({ "lua_ls", "nixd" }) -require "vague".setup({ transparent = true }) -vim.cmd("colorscheme vague") -vim.cmd(":hi statusline guibg=NONE") + +require("mini.pick").setup() + +vim.cmd("colorscheme oxocarbon") +vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" }) +vim.cmd(":hi StatusLine guibg=NONE") diff --git a/modules/home-manager/neovim.nix b/modules/home-manager/neovim.nix index b2300b4..f1fe165 100644 --- a/modules/home-manager/neovim.nix +++ b/modules/home-manager/neovim.nix @@ -1,18 +1,31 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: { options.neovim.enable = lib.mkEnableOption "Setup neovim"; config = lib.mkIf config.neovim.enable { - programs.nixvim = { + programs.neovim = { enable = true; - colorschemes.oxocarbon.enable = true; - plugins = { - treesitter.enable = true; - lsp = { - enable = true; - servers.lua_ls.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 + ]; }; } -- cgit v1.3.1