annotate modules/neovim.nix @ 2:a2c891f7b914

Occasional commit 2
author Yasuri <yasuri@charliesmp.net>
date Sat, 03 Oct 2026 18:53:08 -0500
parents face7f4d84f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
1 { pkgs, ... }:
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
2
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
3 {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
4 programs.neovim = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
5 enable = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
6 defaultEditor = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
7 viAlias = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
8 vimAlias = true;
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
9
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
10 plugins = with pkgs.vimPlugins; [
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
11 nvim-treesitter.withAllGrammars
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
12 telescope-nvim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
13 plenary-nvim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
14 lualine-nvim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
15 gitsigns-nvim
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
16 ];
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
17
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
18 extraLuaConfig = ''
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
19 -- options
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
20 local o = vim.opt
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
21 o.number = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
22 o.relativenumber = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
23 o.termguicolors = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
24 o.expandtab = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
25 o.shiftwidth = 2
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
26 o.tabstop = 2
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
27 o.smartindent = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
28 o.ignorecase = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
29 o.smartcase = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
30 o.cursorline = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
31 o.scrolloff = 8
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
32 o.signcolumn = "yes"
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
33 o.undofile = true
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
34 o.mouse = "a"
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
35 o.clipboard = "unnamedplus"
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
36
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
37 vim.g.mapleader = " "
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
38 local map = vim.keymap.set
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
39 local tb = require("telescope.builtin")
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
40 map("n", "<leader>ff", tb.find_files)
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
41 map("n", "<leader>fg", tb.live_grep)
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
42 map("n", "<leader>fb", tb.buffers)
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
43 map("n", "<leader>w", "<cmd>w<cr>")
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
44 map("n", "<esc>", "<cmd>nohlsearch<cr>")
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
45
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
46 -- colorscheme from the wallpaper
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
47 local c = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
48 bg = "#1c1a2b", fg = "#e8e0f0", sel = "#2f2b47", gray = "#4a4668",
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
49 dim = "#7a769a", pink = "#f5b0d8", rose = "#f28fad", mint = "#8fe3c8",
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
50 peach = "#f5d5b8", blue = "#79a6f5", mag = "#e9a0e6", cyan = "#7fd6f5",
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
51 }
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
52 vim.cmd("highlight clear")
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
53 vim.g.colors_name = "wall"
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
54 local function hl(g, v) vim.api.nvim_set_hl(0, g, v) end
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
55
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
56 -- transparent bg so st shows the wallpaper through
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
57 hl("Normal", { fg = c.fg })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
58 hl("NormalFloat", { fg = c.fg, bg = c.sel })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
59 hl("SignColumn", {})
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
60 hl("CursorLine", { bg = c.sel })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
61 hl("Visual", { bg = c.gray })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
62 hl("LineNr", { fg = c.gray })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
63 hl("CursorLineNr", { fg = c.pink, bold = true })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
64 hl("WinSeparator", { fg = c.gray })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
65 hl("MatchParen", { fg = c.cyan, bold = true })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
66 hl("Search", { fg = c.bg, bg = c.peach })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
67 hl("IncSearch", { fg = c.bg, bg = c.pink })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
68 hl("Pmenu", { fg = c.fg, bg = c.sel })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
69 hl("PmenuSel", { fg = c.bg, bg = c.pink })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
70 hl("Directory", { fg = c.blue })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
71 hl("Comment", { fg = c.dim, italic = true })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
72 hl("Constant", { fg = c.peach })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
73 hl("String", { fg = c.mint })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
74 hl("Number", { fg = c.peach })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
75 hl("Identifier", { fg = c.fg })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
76 hl("Function", { fg = c.blue })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
77 hl("Statement", { fg = c.pink })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
78 hl("Type", { fg = c.cyan })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
79 hl("PreProc", { fg = c.mag })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
80 hl("Special", { fg = c.mag })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
81 hl("Error", { fg = c.rose })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
82 hl("DiagnosticError", { fg = c.rose })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
83 hl("DiagnosticWarn", { fg = c.peach })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
84 hl("DiagnosticInfo", { fg = c.cyan })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
85 hl("DiagnosticHint", { fg = c.mint })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
86
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
87 -- statusline
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
88 local function mode(bg)
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
89 return {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
90 a = { fg = c.bg, bg = bg, gui = "bold" },
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
91 b = { fg = c.fg, bg = c.sel },
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
92 c = { fg = c.dim },
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
93 }
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
94 end
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
95 require("lualine").setup({
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
96 options = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
97 theme = {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
98 normal = mode(c.pink), insert = mode(c.mint), visual = mode(c.blue),
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
99 replace = mode(c.rose), command = mode(c.peach), inactive = mode(c.gray),
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
100 },
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
101 section_separators = "",
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
102 component_separators = "|",
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
103 },
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
104 })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
105
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
106 require("gitsigns").setup()
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
107 vim.api.nvim_create_autocmd("FileType", {
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
108 callback = function(args) pcall(vim.treesitter.start, args.buf) end,
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
109 })
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
110 '';
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
111 };
face7f4d84f7 Initial commit
Yasuri <yasuri@charliesmp.net>
parents:
diff changeset
112 }