From b238d71cda39f105d438a757a7b71efe93cd1875 Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sun, 24 Mar 2024 20:19:52 +0530 Subject: [PATCH] chore(flake): restructure the nvim.nix and update flakes --- common/home.nix | 1 + common/nvim.nix | 456 ++++++++++++++++++++++++++---------------------- flake.lock | 72 ++++---- 3 files changed, 283 insertions(+), 246 deletions(-) diff --git a/common/home.nix b/common/home.nix index e0c5ce6c..f1aac709 100644 --- a/common/home.nix +++ b/common/home.nix @@ -36,6 +36,7 @@ cmake alejandra pkg-config + devenv # Misc qmk diff --git a/common/nvim.nix b/common/nvim.nix index e311440c..b8d2f4d4 100644 --- a/common/nvim.nix +++ b/common/nvim.nix @@ -22,11 +22,175 @@ }) mappings; border = ["╭" "─" "╮" "│" "╯" "─" "╰" "│"]; + rawLua = lua: { + "__raw" = '' + ${lua} + ''; + }; in { imports = [inputs.nixvim.homeManagerModules.nixvim]; programs.nixvim = { enable = true; plugins = { + fugitive.enable = true; + oil.enable = true; + surround.enable = true; + todo-comments.enable = true; + trouble.enable = true; + ts-context-commentstring.enable = true; + navic = { + enable = true; + lsp.autoAttach = true; + }; + which-key.enable = true; + lualine = { + enable = true; + sections = { + lualine_c = [ + { + name = + rawLua + /* + lua + */ + '' + function(bufnr) + local opts = { highlight = true } + return require'nvim-navic'.get_location(opts) + end, + cond = function() + return require'nvim-navic'.is_available() + end + ''; + } + ]; + }; + }; + + mini = { + enable = true; + modules = { + ai = {}; + starter = {}; + }; + }; + + comment-nvim = { + enable = true; + preHook = '' + require('ts_context_commentstring.integrations.comment_nvim').create_pre_hook() + ''; + }; + + markdown-preview = { + enable = true; + settings.auto_start = true; + }; + # rest.enable = true; + # treesitter-context = { + # maxLines = 3; + # mode = "topline"; + # enable = true; + # }; + + noice = { + enable = true; + notify.enabled = false; + lsp.override = { + "vim.lsp.util.convert_input_to_markdown_lines" = true; + "vim.lsp.util.stylize_markdown" = true; + "cmp.entry.get_documentation" = true; + }; + presets = { + bottom_search = false; + command_palette = true; + long_message_to_split = true; + inc_rename = false; + lsp_doc_border = true; + }; + }; + + treesitter = { + enable = true; + indent = true; + folding = true; + grammarPackages = + pkgs.vimPlugins.nvim-treesitter.allGrammars + ++ (with pkgs.tree-sitter-grammars; [ + tree-sitter-just + tree-sitter-nu + tree-sitter-norg-meta + ]); + }; + + telescope = { + enable = true; + extensions = { + undo.enable = true; + ui-select.enable = true; + fzf-native.enable = true; + file_browser.enable = true; + }; + }; + + fidget = { + enable = true; + notification.overrideVimNotify = true; + }; + + dap = { + enable = true; + extensions = { + dap-ui.enable = true; + dap-virtual-text.enable = true; + }; + }; + + nvim-ufo = { + enable = true; + closeFoldKinds = null; + # providerSelector = + # /* + # lua + # */ + # '' + # function(bufnr, filetype, buftype) + # return {'treesitter', 'indent'} + # end + # ''; + }; + rustaceanvim = { + enable = true; + server = { + onAttach = + /* + lua + */ + '' + function(client, bufnr) + if client.server_capabilities.inlayHintProvider then + vim.lsp.inlay_hint.enable(bufnr, true) + end + end + ''; + settings = + /* + lua + */ + '' + function(project_root) + local ra = require('rustaceanvim.config.server') + return ra.load_rust_analyzer_settings(project_root, { + settings_file_pattern = 'rust-analyzer.json' + }) + end + ''; + }; + dap = { + autoloadConfigurations = false; + }; + }; + lsp = { enable = true; servers = { @@ -59,7 +223,6 @@ in { end ''; }; - cmp = { enable = true; settings = { @@ -116,193 +279,6 @@ in { ''; }; }; - - noice = { - enable = true; - notify.enabled = false; - lsp.override = { - "vim.lsp.util.convert_input_to_markdown_lines" = true; - "vim.lsp.util.stylize_markdown" = true; - "cmp.entry.get_documentation" = true; - }; - presets = { - bottom_search = false; - command_palette = true; - long_message_to_split = true; - inc_rename = false; - lsp_doc_border = true; - }; - }; - - fidget = { - enable = true; - notification.overrideVimNotify = true; - }; - - trouble.enable = true; - rustaceanvim = { - enable = true; - server = { - onAttach = - /* - lua - */ - '' - function(client, bufnr) - if client.server_capabilities.inlayHintProvider then - vim.lsp.inlay_hint.enable(bufnr, true) - end - client.server_capabilities.textDocument.foldingRange = { - dynamicRegistration = false, - lineFoldingOnly = true - } - end - ''; - settings = - /* - lua - */ - '' - function(project_root) - local ra = require('rustaceanvim.config.server') - return ra.load_rust_analyzer_settings(project_root, { - settings_file_pattern = 'rust-analyzer.json' - }) - end - ''; - }; - dap = { - autoloadConfigurations = false; - }; - }; - oil.enable = true; - dap = { - enable = true; - extensions = { - dap-ui.enable = true; - dap-virtual-text.enable = true; - }; - }; - todo-comments.enable = true; - lualine.enable = true; - commentary.enable = true; - surround.enable = true; - which-key.enable = true; - nvim-ufo = { - enable = true; - closeFoldKinds = null; - # providerSelector = - # /* - # lua - # */ - # '' - # function(bufnr, filetype, buftype) - # return {'treesitter', 'indent'} - # end - # ''; - }; - fugitive.enable = true; - markdown-preview = { - enable = true; - settings.auto_start = true; - }; - # rest.enable = true; - treesitter-context = { - maxLines = 3; - mode = "topline"; - enable = true; - }; - ts-context-commentstring.enable = true; - - treesitter = { - enable = true; - indent = true; - folding = true; - grammarPackages = - pkgs.vimPlugins.nvim-treesitter.allGrammars - ++ (with pkgs.tree-sitter-grammars; [ - tree-sitter-just - tree-sitter-nu - tree-sitter-norg-meta - ]); - }; - telescope = { - enable = true; - extensions = { - undo.enable = true; - ui-select.enable = true; - fzf-native.enable = true; - file_browser.enable = true; - }; - }; - - mini = { - enable = true; - modules = { - ai = {}; - starter = {}; - # pairs.enable = true; - # cursorword.enable = true; - }; - }; - }; - extraPlugins = with pkgs.vimPlugins; [ - # neorg - neorg - neorg-telescope - - # Wut - ChatGPT-nvim - - # UI and UX - vim-abolish - octo-nvim - neoscroll-nvim - - # Debuggging - nvim-dap-rr - - # Treesitter stuff - outline-nvim - - # lsp stuff - copilot-lua - crates-nvim - - # No more postman - rest-nvim - - # UI - nvim-web-devicons - - # Utils - FTerm-nvim - plenary-nvim - - pkgs.tree-sitter-grammars.tree-sitter-just - pkgs.tree-sitter-grammars.tree-sitter-nu - - # Testing - neotest - # neotest-rust - ]; - options = { - shell = "sh"; - number = true; - relativenumber = true; - tabstop = 4; - softtabstop = 4; - shiftwidth = 4; - expandtab = true; - hidden = true; - smartcase = true; - termguicolors = true; - signcolumn = "yes"; - wrap = true; - completeopt = "menu,menuone,popup,noselect"; - undodir = "${config.xdg.cacheHome}/undodir"; - undofile = true; - viewoptions = "cursor,folds"; }; globals = { mapleader = " "; @@ -505,30 +481,90 @@ in { end - do - function setup() - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities.textDocument.foldingRange = { - dynamicRegistration = false, - lineFoldingOnly = true - } - -- local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'} - local language_servers = {"nil_ls"}; - for _, ls in ipairs(language_servers) do - require('lspconfig')[ls].setup({ - capabilities = capabilities - -- you can add other fields for setting up lsp server in this table - }) - end - end - success, output = pcall(setup) - if not success then - print("Failed to setup lspconfig folds: " .. output) - end - end - require('ufo').setup() + -- do + -- function setup() + -- local capabilities = vim.lsp.protocol.make_client_capabilities() + -- capabilities.textDocument.foldingRange = { + -- dynamicRegistration = false, + -- lineFoldingOnly = true + -- } + -- -- local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'} + -- local language_servers = {"nil_ls"}; + -- for _, ls in ipairs(language_servers) do + -- require('lspconfig')[ls].setup({ + -- capabilities = capabilities + -- -- you can add other fields for setting up lsp server in this table + -- }) + -- end + -- end + -- success, output = pcall(setup) + -- if not success then + -- print("Failed to setup lspconfig folds: " .. output) + -- end + -- end require('lspconfig.ui.windows').default_options.border = 'single' + + catcher(require('nvim_context_vt').setup) ''; package = pkgs.neovim-nightly; + options = { + shell = "sh"; + number = true; + relativenumber = true; + tabstop = 4; + softtabstop = 4; + shiftwidth = 4; + expandtab = true; + hidden = true; + smartcase = true; + termguicolors = true; + signcolumn = "yes"; + wrap = true; + completeopt = "menu,menuone,popup,noselect"; + undodir = "${config.xdg.cacheHome}/undodir"; + undofile = true; + viewoptions = "cursor,folds"; + }; + extraPlugins = with pkgs.vimPlugins; [ + # neorg + neorg + neorg-telescope + + # Wut + ChatGPT-nvim + + # UI and UX + vim-abolish + octo-nvim + neoscroll-nvim + + # Debuggging + nvim-dap-rr + + # Treesitter stuff + outline-nvim + + # lsp stuff + copilot-lua + crates-nvim + + # No more postman + rest-nvim + + # UI + nvim-web-devicons + + # Utils + FTerm-nvim + plenary-nvim + + pkgs.tree-sitter-grammars.tree-sitter-just + pkgs.tree-sitter-grammars.tree-sitter-nu + + # Testing + neotest + # neotest-rust + nvim_context_vt + ]; }; } diff --git a/flake.lock b/flake.lock index 60c71952..88f7af6a 100644 --- a/flake.lock +++ b/flake.lock @@ -675,11 +675,11 @@ ] }, "locked": { - "lastModified": 1711122977, - "narHash": "sha256-EnHux7wf7/7r+YMv8d/Ym1OTllp4sqqq0Bws1a4s2Zo=", + "lastModified": 1711133180, + "narHash": "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=", "owner": "nix-community", "repo": "home-manager", - "rev": "19b87b9ae6ecfd81104a2a36ef8364f1de1b54b1", + "rev": "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb", "type": "github" }, "original": { @@ -696,11 +696,11 @@ ] }, "locked": { - "lastModified": 1710974515, - "narHash": "sha256-jZpdsypecYTOO9l12Vy77otGmh9uz8tGzcguifA30Vs=", + "lastModified": 1711133180, + "narHash": "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=", "owner": "nix-community", "repo": "home-manager", - "rev": "1c2acec99933f9835cc7ad47e35303de92d923a4", + "rev": "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb", "type": "github" }, "original": { @@ -739,11 +739,11 @@ "systems": "systems_4" }, "locked": { - "lastModified": 1711101603, - "narHash": "sha256-5/uA1LoIQ6BhvABbTy46w97vO+q5jcngZ4BOsJtKiXs=", + "lastModified": 1711228014, + "narHash": "sha256-AF5i25DEYK7bLevSivoNwyLlQ55sLgTIBJaiS8WWEvU=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "0db5afb9d618571048bc30958e10b1990130bbb4", + "rev": "2448774de3532e8fdc65b329831ff37208e20f38", "type": "github" }, "original": { @@ -762,11 +762,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1710805279, - "narHash": "sha256-C+ebLZsk+R9402NUZpcPFjGUo73+ut2EDrWGMkp41R4=", + "lastModified": 1711145371, + "narHash": "sha256-PfnORvxKgKzy7aZD2azOWBbZo7LKAsvQ3bGXJPOvNXA=", "owner": "JakeStanger", "repo": "ironbar", - "rev": "82546275959970b1dad409c03f8ad3a29e95243a", + "rev": "f9c746a7c32ae0818fade2f60adeffe8d779800a", "type": "github" }, "original": { @@ -853,11 +853,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1711063903, - "narHash": "sha256-O0xgUE0BPHiVVoHm/WnRBZMCW5qJSuqPZZhVqF6uZv8=", + "lastModified": 1711232369, + "narHash": "sha256-8e456HSCTA7IhCzxJcKoWERWpgZ624LX5E3U9Ny3vwU=", "owner": "neovim", "repo": "neovim", - "rev": "15c6909bb198ca8a1a22405a4a7e96357716e57e", + "rev": "d3e51603bc94fac68cd2c92ae7ebc90baa8471fe", "type": "github" }, "original": { @@ -878,11 +878,11 @@ ] }, "locked": { - "lastModified": 1711065810, - "narHash": "sha256-QasZbe7PZF/e0i3SAKhKoF6LCXJ2QdtAgbFAdpYCrFA=", + "lastModified": 1711238673, + "narHash": "sha256-+RQ20E5N6bQcZtSuwIx+4ELFwbfMOZ7W7tgrU9vxdA8=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "278fc96760142b5e569636776344f3af16e281ee", + "rev": "dc1d09c95137ce5b6889f4266ea7301d2af071f1", "type": "github" }, "original": { @@ -937,11 +937,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1710644923, - "narHash": "sha256-0fjbN5GYYDKPyPay0l8gYoH+tFfNqPPwP5sxxBreeA4=", + "lastModified": 1711249705, + "narHash": "sha256-h/NQECj6mIzF4XR6AQoSpkCnwqAM+ol4+qOdYi2ykmQ=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "e25efda85e39fcdc845e371971ac4384989c4295", + "rev": "34519f3bb678a5abbddf7b200ac5347263ee781b", "type": "github" }, "original": { @@ -986,11 +986,11 @@ }, "nixpkgs-main": { "locked": { - "lastModified": 1711127751, - "narHash": "sha256-AnIoFk9LTj+z1QRvKGrbucIL1AFElQZYfamyInBB1Gs=", + "lastModified": 1711291124, + "narHash": "sha256-YX5pyNBBQCIIaap3D58aE41qTwdzIzDaViIapO30S9g=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d089679c701bd6de3785d7ebfda68c0ba36221f7", + "rev": "c5dd6acd6c243bcf29d0c5e54733bb3576f28c2e", "type": "github" }, "original": { @@ -1047,11 +1047,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1710451336, - "narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=", + "lastModified": 1711163522, + "narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d691274a972b3165335d261cc4671335f5c67de9", + "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", "type": "github" }, "original": { @@ -1063,11 +1063,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1711001935, - "narHash": "sha256-URtGpHue7HHZK0mrHnSf8wJ6OmMKYSsoLmJybrOLFSQ=", + "lastModified": 1711163522, + "narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "20f77aa09916374aa3141cbc605c955626762c9a", + "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", "type": "github" }, "original": { @@ -1090,11 +1090,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1711124705, - "narHash": "sha256-vgFQxvs6T9RcaV9sd9Io+RxQuRKovauMvueGajWWanw=", + "lastModified": 1711284540, + "narHash": "sha256-DTzi4ujZoxM3ZXStCwD6Lph3FdGtkBlvfYsDCRITjfA=", "owner": "nix-community", "repo": "nixvim", - "rev": "822ec15646b8f7b621468b503118921d644acf39", + "rev": "e7a3461fefd983ae3443e9aa849e9d1566ab47e4", "type": "github" }, "original": { @@ -1105,11 +1105,11 @@ }, "nur": { "locked": { - "lastModified": 1711124939, - "narHash": "sha256-IBXc/O+T5ZLBrC6ognGgaDDVOkN0rXHYk2DXmy6OP6o=", + "lastModified": 1711290879, + "narHash": "sha256-VSDs6VjMZx/ZucNE/mogKuiZQb1HflbEaT/yiTuJ+oQ=", "owner": "nix-community", "repo": "nur", - "rev": "f9e330219c525b46c8bdf71996a5f45310c741bc", + "rev": "0e2ba010cca9f9001f904b5a23de4c84cdc3bec9", "type": "github" }, "original": {