From a46896bf4f53992f010de2f835ed056112e3aacb Mon Sep 17 00:00:00 2001 From: Eduardo Trujillo <ed@chromabits.com> Date: Mon, 15 Jan 2024 16:19:52 -0800 Subject: [PATCH] refactor(nix): Drop use of Lazy.nvim --- flake.lock | 16 +- flake.nix | 14 +- home-manager/default.nix | 45 ++++-- home-manager/lazy-nvim.nix | 14 -- home-manager/plugins/barbar/config.lua | 3 + home-manager/plugins/barbar/default.nix | 12 ++ .../plugins/cmp/config.lua | 4 +- home-manager/plugins/cmp/default.nix | 22 +++ home-manager/plugins/dap-ui/config.lua | 1 + home-manager/plugins/dap-ui/default.nix | 11 ++ .../plugins/dap/config.lua | 4 +- home-manager/plugins/dap/default.nix | 11 ++ home-manager/plugins/gitsigns/config.lua | 1 + home-manager/plugins/gitsigns/default.nix | 11 ++ .../plugins/indent-blankline/config.lua | 8 + .../plugins/indent-blankline/default.nix | 11 ++ .../plugins/lsp-status/config.lua | 4 +- home-manager/plugins/lsp-status/default.nix | 11 ++ .../plugins/lspconfig/config.lua | 4 +- home-manager/plugins/lspconfig/default.nix | 11 ++ home-manager/plugins/lualine/config.lua | 13 ++ home-manager/plugins/lualine/default.nix | 12 ++ home-manager/plugins/null-ls/config.lua | 1 + home-manager/plugins/null-ls/default.nix | 12 ++ .../plugins/nvim-tree/config.lua | 6 +- home-manager/plugins/nvim-tree/default.nix | 12 ++ .../plugins/nvim-treesitter/config.lua | 5 + .../plugins/nvim-treesitter/default.nix | 25 +++ .../one-small-step-for-vimkind/default.nix | 21 +++ home-manager/plugins/prettier/config.lua | 29 ++++ home-manager/plugins/prettier/default.nix | 22 +++ .../plugins/scrollbar/config.lua | 4 +- home-manager/plugins/scrollbar/default.nix | 11 ++ .../plugins/telescope/config.lua | 4 +- home-manager/plugins/telescope/default.nix | 12 ++ home-manager/plugins/toggleterm/config.lua | 6 + home-manager/plugins/toggleterm/default.nix | 11 ++ home-manager/plugins/tokyonight/default.nix | 27 ++++ .../plugins/trouble/config.lua | 4 +- home-manager/plugins/trouble/default.nix | 12 ++ src/init.lua | 16 -- src/lazy-lock.initial.json | 30 ---- src/lua/config/barbar.lua | 7 - src/lua/config/dapui.lua | 3 - src/lua/config/gitsigns.lua | 3 - src/lua/config/indent-blankline.lua | 10 -- src/lua/config/lspfuzzy.lua | 3 - src/lua/config/lualine.lua | 17 --- src/lua/config/null-ls.lua | 5 - src/lua/config/prettier.lua | 21 --- src/lua/config/toggleterm.lua | 8 - src/lua/config/tokyonight.lua | 17 --- src/lua/config/treesitter.lua | 18 --- src/lua/lib/lazyhooks.lua | 12 ++ src/lua/plugins.lua | 144 ------------------ 55 files changed, 431 insertions(+), 350 deletions(-) delete mode 100644 home-manager/lazy-nvim.nix create mode 100644 home-manager/plugins/barbar/config.lua create mode 100644 home-manager/plugins/barbar/default.nix rename src/lua/config/cmp.lua => home-manager/plugins/cmp/config.lua (97%) create mode 100644 home-manager/plugins/cmp/default.nix create mode 100644 home-manager/plugins/dap-ui/config.lua create mode 100644 home-manager/plugins/dap-ui/default.nix rename src/lua/config/dap.lua => home-manager/plugins/dap/config.lua (97%) create mode 100644 home-manager/plugins/dap/default.nix create mode 100644 home-manager/plugins/gitsigns/config.lua create mode 100644 home-manager/plugins/gitsigns/default.nix create mode 100644 home-manager/plugins/indent-blankline/config.lua create mode 100644 home-manager/plugins/indent-blankline/default.nix rename src/lua/config/lspstatus.lua => home-manager/plugins/lsp-status/config.lua (88%) create mode 100644 home-manager/plugins/lsp-status/default.nix rename src/lua/config/lspconfig.lua => home-manager/plugins/lspconfig/config.lua (98%) create mode 100644 home-manager/plugins/lspconfig/default.nix create mode 100644 home-manager/plugins/lualine/config.lua create mode 100644 home-manager/plugins/lualine/default.nix create mode 100644 home-manager/plugins/null-ls/config.lua create mode 100644 home-manager/plugins/null-ls/default.nix rename src/lua/config/tree.lua => home-manager/plugins/nvim-tree/config.lua (95%) create mode 100644 home-manager/plugins/nvim-tree/default.nix create mode 100644 home-manager/plugins/nvim-treesitter/config.lua create mode 100644 home-manager/plugins/nvim-treesitter/default.nix create mode 100644 home-manager/plugins/one-small-step-for-vimkind/default.nix create mode 100644 home-manager/plugins/prettier/config.lua create mode 100644 home-manager/plugins/prettier/default.nix rename src/lua/config/scrollbar.lua => home-manager/plugins/scrollbar/config.lua (88%) create mode 100644 home-manager/plugins/scrollbar/default.nix rename src/lua/config/telescope.lua => home-manager/plugins/telescope/config.lua (87%) create mode 100644 home-manager/plugins/telescope/default.nix create mode 100644 home-manager/plugins/toggleterm/config.lua create mode 100644 home-manager/plugins/toggleterm/default.nix create mode 100644 home-manager/plugins/tokyonight/default.nix rename src/lua/config/trouble.lua => home-manager/plugins/trouble/config.lua (93%) create mode 100644 home-manager/plugins/trouble/default.nix delete mode 100644 src/init.lua delete mode 100644 src/lazy-lock.initial.json delete mode 100644 src/lua/config/barbar.lua delete mode 100644 src/lua/config/dapui.lua delete mode 100644 src/lua/config/gitsigns.lua delete mode 100644 src/lua/config/indent-blankline.lua delete mode 100644 src/lua/config/lspfuzzy.lua delete mode 100644 src/lua/config/lualine.lua delete mode 100644 src/lua/config/null-ls.lua delete mode 100644 src/lua/config/prettier.lua delete mode 100644 src/lua/config/toggleterm.lua delete mode 100644 src/lua/config/tokyonight.lua delete mode 100644 src/lua/config/treesitter.lua create mode 100644 src/lua/lib/lazyhooks.lua delete mode 100644 src/lua/plugins.lua diff --git a/flake.lock b/flake.lock index ed44d57..74e22b2 100644 --- a/flake.lock +++ b/flake.lock @@ -25,32 +25,32 @@ ] }, "locked": { - "lastModified": 1694465129, - "narHash": "sha256-8BQiuobMrCfCbGM7w6Snx+OBYdtTIm0+cGVaKwQ5BFg=", + "lastModified": 1705273357, + "narHash": "sha256-JAlkxgJbWh7+auiT0rJL3IUXXtkULRqygfxQA6mvLgc=", "owner": "nix-community", "repo": "home-manager", - "rev": "9787dffff5d315c9593d3f9fb0f9bf2097e1b57b", + "rev": "924d91e1e4c802fd8e60279a022dbae5acb36f2d", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.05", + "ref": "release-23.11", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1694499547, - "narHash": "sha256-R7xMz1Iia6JthWRHDn36s/E248WB1/je62ovC/dUVKI=", + "lastModified": 1705183652, + "narHash": "sha256-rnfkyUH0x72oHfiSDhuCHDHg3gFgF+lF8zkkg5Zihsw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e5f018cf150e29aac26c61dac0790ea023c46b24", + "rev": "428544ae95eec077c7f823b422afae5f174dee4b", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-23.05", + "ref": "nixos-23.11", "type": "indirect" } }, diff --git a/flake.nix b/flake.nix index d26d088..fdeb33c 100644 --- a/flake.nix +++ b/flake.nix @@ -1,9 +1,9 @@ { inputs = { - nixpkgs.url = "nixpkgs/nixos-23.05"; + nixpkgs.url = "nixpkgs/nixos-23.11"; flake-utils.url = "github:numtide/flake-utils"; home-manager = { - url = "github:nix-community/home-manager/release-23.05"; + url = "github:nix-community/home-manager/release-23.11"; inputs.nixpkgs.follows = "nixpkgs"; }; }; @@ -35,7 +35,7 @@ modules = [ home-manager.nixosModules.home-manager ({pkgs, ...}: { - system.stateVersion = "22.11"; + system.stateVersion = "23.11"; services.getty.autologinUser = "neovim"; @@ -61,13 +61,13 @@ useGlobalPkgs = true; useUserPackages = true; - users.neovim = ({...}: { + users.neovim = {...}: { imports = [self.nixosModules.home-manager.neovim-config]; config = { home = { homeDirectory = "/home/neovim"; - stateVersion = "22.11"; + stateVersion = "23.11"; }; programs.bash = { @@ -77,7 +77,7 @@ ''; }; }; - }); + }; }; }) ]; @@ -97,5 +97,3 @@ nixosModules.home-manager.neovim-config = import ./home-manager; }; } - - diff --git a/home-manager/default.nix b/home-manager/default.nix index 96d42dc..9f84017 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -4,7 +4,25 @@ ... }: { imports = [ - ./lazy-nvim.nix + ./plugins/barbar + ./plugins/cmp + ./plugins/dap + ./plugins/dap-ui + ./plugins/gitsigns + ./plugins/indent-blankline + ./plugins/lsp-status + ./plugins/lspconfig + ./plugins/lualine + ./plugins/null-ls + ./plugins/nvim-tree + ./plugins/nvim-treesitter + ./plugins/one-small-step-for-vimkind + ./plugins/prettier + ./plugins/scrollbar + ./plugins/telescope + ./plugins/toggleterm + ./plugins/tokyonight + ./plugins/trouble ]; config = { @@ -12,16 +30,25 @@ enable = true; defaultEditor = true; - }; - home.file.".config/nvim/init.lua" = { - source = ../src/init.lua; - target = ".config/nvim/init.lua"; - }; - home.file.".config/nvim/lazy-lock.initial.json" = { - source = ../src/lazy-lock.initial.json; - target = ".config/nvim/lazy-lock.initial.json"; + extraLuaConfig = '' + vim.g.mapleader = "," + + -- Options + require('options') + + -- Mappings + require('mappings') + + -- Misc + vim.api.nvim_command("syntax on") + vim.api.nvim_command("filetype plugin indent on") + + -- Hooks + local lazyhooks = require('lib.lazyhooks'); + ''; }; + home.file.".config/nvim/after" = { source = ../src/after; target = ".config/nvim/after"; diff --git a/home-manager/lazy-nvim.nix b/home-manager/lazy-nvim.nix deleted file mode 100644 index b7aa33a..0000000 --- a/home-manager/lazy-nvim.nix +++ /dev/null @@ -1,14 +0,0 @@ -{pkgs, ...}: { - config = { - home.file.".local/share/nvim/lazy/lazy.nvim" = { - source = pkgs.fetchFromGitHub { - owner = "folke"; - repo = "lazy.nvim"; - rev = "690f9e88e2a7dc92bcb0cca85f778a3e99fe1f7e"; - sha256 = "Sg5dVBtU+o80qzNdhmPCN7viVfEcH5jCYCCTEKzdfAg="; - }; - target = ".local/share/nvim/lazy/lazy.nvim"; - }; - }; -} - diff --git a/home-manager/plugins/barbar/config.lua b/home-manager/plugins/barbar/config.lua new file mode 100644 index 0000000..bb9b9e1 --- /dev/null +++ b/home-manager/plugins/barbar/config.lua @@ -0,0 +1,3 @@ +require('barbar').setup { + icons = { filetype = { enabled = true } }, +} diff --git a/home-manager/plugins/barbar/default.nix b/home-manager/plugins/barbar/default.nix new file mode 100644 index 0000000..5f14cf6 --- /dev/null +++ b/home-manager/plugins/barbar/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.barbar-nvim; + } + pkgs.vimPlugins.nvim-web-devicons + ]; + }; +} diff --git a/src/lua/config/cmp.lua b/home-manager/plugins/cmp/config.lua similarity index 97% rename from src/lua/config/cmp.lua rename to home-manager/plugins/cmp/config.lua index 50f89f5..c5edf04 100644 --- a/src/lua/config/cmp.lua +++ b/home-manager/plugins/cmp/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_cmp = function() local cmp = require 'cmp' local luasnip = require 'luasnip' @@ -62,3 +62,5 @@ return function() }) }) end + +setup_cmp() diff --git a/home-manager/plugins/cmp/default.nix b/home-manager/plugins/cmp/default.nix new file mode 100644 index 0000000..a66d96c --- /dev/null +++ b/home-manager/plugins/cmp/default.nix @@ -0,0 +1,22 @@ +{pkgs, ...}: let + subplugins = with pkgs.vimPlugins; [ + cmp-nvim-lsp + cmp-buffer + cmp-path + cmp-cmdline + cmp_luasnip + luasnip + ]; +in { + config = { + programs.neovim.plugins = + [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-cmp; + } + ] + ++ subplugins; + }; +} diff --git a/home-manager/plugins/dap-ui/config.lua b/home-manager/plugins/dap-ui/config.lua new file mode 100644 index 0000000..22a4f93 --- /dev/null +++ b/home-manager/plugins/dap-ui/config.lua @@ -0,0 +1 @@ +require('dapui').setup() diff --git a/home-manager/plugins/dap-ui/default.nix b/home-manager/plugins/dap-ui/default.nix new file mode 100644 index 0000000..764d942 --- /dev/null +++ b/home-manager/plugins/dap-ui/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-dap-ui; + } + ]; + }; +} diff --git a/src/lua/config/dap.lua b/home-manager/plugins/dap/config.lua similarity index 97% rename from src/lua/config/dap.lua rename to home-manager/plugins/dap/config.lua index 0db6bcd..90de8d1 100644 --- a/src/lua/config/dap.lua +++ b/home-manager/plugins/dap/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_dap = function() local dap = require "dap" local map = require('lib.utils').map @@ -50,3 +50,5 @@ return function() map('n', '<leader>dr', dap.repl.open, { noremap = true }) map('n', '<leader>dl', dap.run_last, { noremap = true }) end + +setup_dap() diff --git a/home-manager/plugins/dap/default.nix b/home-manager/plugins/dap/default.nix new file mode 100644 index 0000000..26f000e --- /dev/null +++ b/home-manager/plugins/dap/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-dap; + } + ]; + }; +} diff --git a/home-manager/plugins/gitsigns/config.lua b/home-manager/plugins/gitsigns/config.lua new file mode 100644 index 0000000..91fa65b --- /dev/null +++ b/home-manager/plugins/gitsigns/config.lua @@ -0,0 +1 @@ +require('gitsigns').setup() diff --git a/home-manager/plugins/gitsigns/default.nix b/home-manager/plugins/gitsigns/default.nix new file mode 100644 index 0000000..61890ce --- /dev/null +++ b/home-manager/plugins/gitsigns/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.gitsigns-nvim; + } + ]; + }; +} diff --git a/home-manager/plugins/indent-blankline/config.lua b/home-manager/plugins/indent-blankline/config.lua new file mode 100644 index 0000000..9448290 --- /dev/null +++ b/home-manager/plugins/indent-blankline/config.lua @@ -0,0 +1,8 @@ +require("ibl").setup { + exclude = { + buftypes = { "terminal" }, + }, + indent = { + char = '|', + }, +} diff --git a/home-manager/plugins/indent-blankline/default.nix b/home-manager/plugins/indent-blankline/default.nix new file mode 100644 index 0000000..8591f95 --- /dev/null +++ b/home-manager/plugins/indent-blankline/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.indent-blankline-nvim; + } + ]; + }; +} diff --git a/src/lua/config/lspstatus.lua b/home-manager/plugins/lsp-status/config.lua similarity index 88% rename from src/lua/config/lspstatus.lua rename to home-manager/plugins/lsp-status/config.lua index 3e49385..79ae39a 100644 --- a/src/lua/config/lspstatus.lua +++ b/home-manager/plugins/lsp-status/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_lspstatus = function() local lsp_status = require('lsp-status') local kind_labels_mt = { @@ -20,3 +20,5 @@ return function() status_symbol = "", }) end + +setup_lspstatus() diff --git a/home-manager/plugins/lsp-status/default.nix b/home-manager/plugins/lsp-status/default.nix new file mode 100644 index 0000000..6eaa143 --- /dev/null +++ b/home-manager/plugins/lsp-status/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.lsp-status-nvim; + } + ]; + }; +} diff --git a/src/lua/config/lspconfig.lua b/home-manager/plugins/lspconfig/config.lua similarity index 98% rename from src/lua/config/lspconfig.lua rename to home-manager/plugins/lspconfig/config.lua index 0ff38d4..3d2d603 100644 --- a/src/lua/config/lspconfig.lua +++ b/home-manager/plugins/lspconfig/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_lspconfig = function() local lspconfig = require('lspconfig') local lsp_status = require('lsp-status') @@ -99,3 +99,5 @@ return function() } end end + +setup_lspconfig() diff --git a/home-manager/plugins/lspconfig/default.nix b/home-manager/plugins/lspconfig/default.nix new file mode 100644 index 0000000..b64e884 --- /dev/null +++ b/home-manager/plugins/lspconfig/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-lspconfig; + } + ]; + }; +} diff --git a/home-manager/plugins/lualine/config.lua b/home-manager/plugins/lualine/config.lua new file mode 100644 index 0000000..2823175 --- /dev/null +++ b/home-manager/plugins/lualine/config.lua @@ -0,0 +1,13 @@ +require('lualine').setup { + extensions = {'nvim-tree'}, + options = { + globalstatus = false, + theme = 'tokyonight', + }, + sections = { + lualine_c = { + 'file', + "require'lsp-status'.status()", + } + } +} diff --git a/home-manager/plugins/lualine/default.nix b/home-manager/plugins/lualine/default.nix new file mode 100644 index 0000000..e1e328a --- /dev/null +++ b/home-manager/plugins/lualine/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.lualine-nvim; + } + pkgs.vimPlugins.nvim-web-devicons + ]; + }; +} diff --git a/home-manager/plugins/null-ls/config.lua b/home-manager/plugins/null-ls/config.lua new file mode 100644 index 0000000..d87e5cd --- /dev/null +++ b/home-manager/plugins/null-ls/config.lua @@ -0,0 +1 @@ +require('null-ls').setup({}); diff --git a/home-manager/plugins/null-ls/default.nix b/home-manager/plugins/null-ls/default.nix new file mode 100644 index 0000000..e18b8fc --- /dev/null +++ b/home-manager/plugins/null-ls/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.null-ls-nvim; + } + pkgs.vimPlugins.plenary-nvim + ]; + }; +} diff --git a/src/lua/config/tree.lua b/home-manager/plugins/nvim-tree/config.lua similarity index 95% rename from src/lua/config/tree.lua rename to home-manager/plugins/nvim-tree/config.lua index 6296601..764dd34 100644 --- a/src/lua/config/tree.lua +++ b/home-manager/plugins/nvim-tree/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_tree = function() require('nvim-tree').setup { update_focused_file = { enable = true, @@ -48,7 +48,7 @@ return function() -- Barbar Integration local nvim_tree_events = require('nvim-tree.events') - local bufferline_api = require('bufferline.api') + local bufferline_api = require('barbar.api') local function get_tree_size() return require 'nvim-tree.view'.View.width @@ -85,3 +85,5 @@ return function() end }) end + +setup_tree() diff --git a/home-manager/plugins/nvim-tree/default.nix b/home-manager/plugins/nvim-tree/default.nix new file mode 100644 index 0000000..1bb7df2 --- /dev/null +++ b/home-manager/plugins/nvim-tree/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-tree-lua; + } + pkgs.vimPlugins.nvim-web-devicons + ]; + }; +} diff --git a/home-manager/plugins/nvim-treesitter/config.lua b/home-manager/plugins/nvim-treesitter/config.lua new file mode 100644 index 0000000..ec4ddd5 --- /dev/null +++ b/home-manager/plugins/nvim-treesitter/config.lua @@ -0,0 +1,5 @@ +require('nvim-treesitter.configs').setup { + highlight = { + enable = true + } +} diff --git a/home-manager/plugins/nvim-treesitter/default.nix b/home-manager/plugins/nvim-treesitter/default.nix new file mode 100644 index 0000000..87456e6 --- /dev/null +++ b/home-manager/plugins/nvim-treesitter/default.nix @@ -0,0 +1,25 @@ +{pkgs, ...}: let + parsers = with pkgs.vimPlugins.nvim-treesitter-parsers; [ + python + cpp + nix + haskell + rust + typescript + markdown + ]; +in { + config = { + programs.neovim = { + plugins = + [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-treesitter; + } + ] + ++ parsers; + }; + }; +} diff --git a/home-manager/plugins/one-small-step-for-vimkind/default.nix b/home-manager/plugins/one-small-step-for-vimkind/default.nix new file mode 100644 index 0000000..9cc787d --- /dev/null +++ b/home-manager/plugins/one-small-step-for-vimkind/default.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = '' + ''; + plugin = pkgs.vimUtils.buildVimPlugin { + pname = "one-small-step-for-vimkind"; + version = "03-12-2023"; + src = pkgs.fetchFromGitHub { + owner = "jbyuki"; + repo = "one-small-step-for-vimkind"; + rev = "aaee281bdaa3141d9d0cdb3dec468532da61124f"; + sha256 = "sha256-VACSEN50FSzQmAjpFW45yXvc68wnRhzfboYvps3sOBE="; + }; + }; + } + ]; + }; +} diff --git a/home-manager/plugins/prettier/config.lua b/home-manager/plugins/prettier/config.lua new file mode 100644 index 0000000..c703627 --- /dev/null +++ b/home-manager/plugins/prettier/config.lua @@ -0,0 +1,29 @@ +local prettier_filetypes = { + "css", + "graphql", + "html", + "javascript", + "javascriptreact", + "json", + "less", + "markdown", + "scss", + "typescript", + "typescriptreact", + "yaml", +}; + +local function setup_prettier() + local prettier = require("prettier") + + prettier.setup({ + bin = 'prettierd', + filetypes = prettier_filetypes, + }) +end + +lazyhooks.load_on_filetypes( + 'prettier', + prettier_filetypes, + setup_prettier +) diff --git a/home-manager/plugins/prettier/default.nix b/home-manager/plugins/prettier/default.nix new file mode 100644 index 0000000..15d2085 --- /dev/null +++ b/home-manager/plugins/prettier/default.nix @@ -0,0 +1,22 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + optional = true; + plugin = pkgs.vimUtils.buildVimPlugin { + pname = "prettier.nvim"; + version = "16-06-2023"; + src = pkgs.fetchFromGitHub { + owner = "MunifTanjim"; + repo = "prettier.nvim"; + rev = "d98e732cb73690b07c00c839c924be1d1d9ac5c2"; + sha256 = "sha256-4xq+caprcQQotvBXnWWSsMwVB2hc5uyjrhT1dPBffXI="; + }; + }; + } + pkgs.vimPlugins.nvim-lspconfig + ]; + }; +} diff --git a/src/lua/config/scrollbar.lua b/home-manager/plugins/scrollbar/config.lua similarity index 88% rename from src/lua/config/scrollbar.lua rename to home-manager/plugins/scrollbar/config.lua index 65dbb18..5442dbf 100644 --- a/src/lua/config/scrollbar.lua +++ b/home-manager/plugins/scrollbar/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_scrollbar = function() local colors = require("tokyonight.colors").setup() require("scrollbar").setup({ @@ -15,3 +15,5 @@ return function() } }) end + +setup_scrollbar() diff --git a/home-manager/plugins/scrollbar/default.nix b/home-manager/plugins/scrollbar/default.nix new file mode 100644 index 0000000..41c0520 --- /dev/null +++ b/home-manager/plugins/scrollbar/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.nvim-scrollbar; + } + ]; + }; +} diff --git a/src/lua/config/telescope.lua b/home-manager/plugins/telescope/config.lua similarity index 87% rename from src/lua/config/telescope.lua rename to home-manager/plugins/telescope/config.lua index 5717833..da43627 100644 --- a/src/lua/config/telescope.lua +++ b/home-manager/plugins/telescope/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_telescope = function() local builtin = require('telescope.builtin') local map = require('lib.utils').map @@ -9,3 +9,5 @@ return function() map('n', '<leader>fh', builtin.help_tags, {}) map('n', '<leader>fc', builtin.commands, {}) end + +setup_telescope() diff --git a/home-manager/plugins/telescope/default.nix b/home-manager/plugins/telescope/default.nix new file mode 100644 index 0000000..06319c9 --- /dev/null +++ b/home-manager/plugins/telescope/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.telescope-nvim; + } + pkgs.vimPlugins.plenary-nvim + ]; + }; +} diff --git a/home-manager/plugins/toggleterm/config.lua b/home-manager/plugins/toggleterm/config.lua new file mode 100644 index 0000000..a717285 --- /dev/null +++ b/home-manager/plugins/toggleterm/config.lua @@ -0,0 +1,6 @@ +require("toggleterm").setup({ + open_mapping = [[<c-\>]], + winbar = { + enable = true, + } +}) diff --git a/home-manager/plugins/toggleterm/default.nix b/home-manager/plugins/toggleterm/default.nix new file mode 100644 index 0000000..f441afb --- /dev/null +++ b/home-manager/plugins/toggleterm/default.nix @@ -0,0 +1,11 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.toggleterm-nvim; + } + ]; + }; +} diff --git a/home-manager/plugins/tokyonight/default.nix b/home-manager/plugins/tokyonight/default.nix new file mode 100644 index 0000000..8aa8c92 --- /dev/null +++ b/home-manager/plugins/tokyonight/default.nix @@ -0,0 +1,27 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = '' + local tokyonight = require('tokyonight') + + vim.api.nvim_command("colorscheme tokyonight-moon") + + tokyonight.setup({ + style = "moon", + --transparent = true, + styles = { + sidebars = "dark", + floats = "dark", + }, + --dim_inactive = true, + lualine_bold = true, + use_background = false, + }) + ''; + plugin = pkgs.vimPlugins.tokyonight-nvim; + } + ]; + }; +} diff --git a/src/lua/config/trouble.lua b/home-manager/plugins/trouble/config.lua similarity index 93% rename from src/lua/config/trouble.lua rename to home-manager/plugins/trouble/config.lua index 3be763a..4aa3eb7 100644 --- a/src/lua/config/trouble.lua +++ b/home-manager/plugins/trouble/config.lua @@ -1,4 +1,4 @@ -return function() +local setup_trouble = function() local map = require('lib.utils').map local trouble = require('trouble') @@ -31,3 +31,5 @@ return function() map_opts ) end + +setup_trouble(); diff --git a/home-manager/plugins/trouble/default.nix b/home-manager/plugins/trouble/default.nix new file mode 100644 index 0000000..8bfe021 --- /dev/null +++ b/home-manager/plugins/trouble/default.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: { + config = { + programs.neovim.plugins = [ + { + type = "lua"; + config = builtins.readFile ./config.lua; + plugin = pkgs.vimPlugins.trouble-nvim; + } + pkgs.vimPlugins.nvim-web-devicons + ]; + }; +} diff --git a/src/init.lua b/src/init.lua deleted file mode 100644 index 0f4ca05..0000000 --- a/src/init.lua +++ /dev/null @@ -1,16 +0,0 @@ -vim.g.mapleader = "," - --- Options -require('options') - --- Mappings -require('mappings') - --- Plugins -require('plugins') - --- Misc -vim.api.nvim_command("syntax on") -vim.api.nvim_command("filetype plugin indent on") - - diff --git a/src/lazy-lock.initial.json b/src/lazy-lock.initial.json deleted file mode 100644 index 9967393..0000000 --- a/src/lazy-lock.initial.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "LuaSnip": { "branch": "master", "commit": "a835e3d680c5940b61780c6af07885db95382478" }, - "barbar.nvim": { "branch": "master", "commit": "1c9d324c493650667ff621c835d552e56fd229ca" }, - "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, - "cmp-cmdline": { "branch": "main", "commit": "8fcc934a52af96120fe26358985c10c035984b53" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" }, - "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, - "gitsigns.nvim": { "branch": "main", "commit": "b1f9cf7c5c5639c006c937fc1819e09f358210fc" }, - "indent-blankline.nvim": { "branch": "master", "commit": "018bd04d80c9a73d399c1061fa0c3b14a7614399" }, - "lsp-status.nvim": { "branch": "master", "commit": "54f48eb5017632d81d0fd40112065f1d062d0629" }, - "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" }, - "null-ls.nvim": { "branch": "main", "commit": "13dd1fc13063681ca7e039436c88f6eca7e3e937" }, - "nvim-cmp": { "branch": "main", "commit": "777450fd0ae289463a14481673e26246b5e38bf2" }, - "nvim-dap": { "branch": "master", "commit": "7e81998e31277c7a33b6c34423640900c5c2c776" }, - "nvim-dap-ui": { "branch": "master", "commit": "bdb94e3853d11b5ce98ec182e5a3719d5c0ef6fd" }, - "nvim-lspconfig": { "branch": "master", "commit": "0f94c5fded29c0024254259f3d8a0284bfb507ea" }, - "nvim-scrollbar": { "branch": "main", "commit": "f85b29805cf917f9b1d5ff0c9a52c5b1bdca5943" }, - "nvim-tree.lua": { "branch": "master", "commit": "a50723e35f57f89fb67019127a16d90f16edfef8" }, - "nvim-treesitter": { "branch": "master", "commit": "379305aa7f55e810950cde24a82789681478df04" }, - "nvim-web-devicons": { "branch": "master", "commit": "074e13f21f52bb45d654069bdadbcb6d7c2b65d0" }, - "one-small-step-for-vimkind": { "branch": "main", "commit": "aef1bdbb8347e6daaf33d5109002f3df243ebfe9" }, - "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" }, - "prettier.nvim": { "branch": "main", "commit": "08f7f08fae57fd970c7470d883c9127f172bd9e6" }, - "telescope.nvim": { "branch": "master", "commit": "b79cd6c88b3d96b0f49cb7d240807cd59b610cd8" }, - "toggleterm.nvim": { "branch": "main", "commit": "9a595ba699837c4333c4296634feed320f084df2" }, - "tokyonight.nvim": { "branch": "main", "commit": "edffa82026914be54c8220973b0385f61d3392f0" }, - "trouble.nvim": { "branch": "main", "commit": "7915277a259fdff5d46c6f1d2e100df2ec384d3b" } -} - diff --git a/src/lua/config/barbar.lua b/src/lua/config/barbar.lua deleted file mode 100644 index e6555ec..0000000 --- a/src/lua/config/barbar.lua +++ /dev/null @@ -1,7 +0,0 @@ -return function() - local bufferline = require('bufferline') - - bufferline.setup { - icons = { filetype = { enabled = true } }, - } -end diff --git a/src/lua/config/dapui.lua b/src/lua/config/dapui.lua deleted file mode 100644 index 73a8f7d..0000000 --- a/src/lua/config/dapui.lua +++ /dev/null @@ -1,3 +0,0 @@ -return function() - require('dapui').setup() -end diff --git a/src/lua/config/gitsigns.lua b/src/lua/config/gitsigns.lua deleted file mode 100644 index 4120f20..0000000 --- a/src/lua/config/gitsigns.lua +++ /dev/null @@ -1,3 +0,0 @@ -return function() - require('gitsigns').setup() -end diff --git a/src/lua/config/indent-blankline.lua b/src/lua/config/indent-blankline.lua deleted file mode 100644 index 063433b..0000000 --- a/src/lua/config/indent-blankline.lua +++ /dev/null @@ -1,10 +0,0 @@ -return function() - require("ibl").setup { - exclude = { - buftypes = { "terminal" }, - }, - indent = { - char = '|', - }, - } -end diff --git a/src/lua/config/lspfuzzy.lua b/src/lua/config/lspfuzzy.lua deleted file mode 100644 index e75d10b..0000000 --- a/src/lua/config/lspfuzzy.lua +++ /dev/null @@ -1,3 +0,0 @@ -return function() - require('lspfuzzy').setup {} -end diff --git a/src/lua/config/lualine.lua b/src/lua/config/lualine.lua deleted file mode 100644 index 4af74ab..0000000 --- a/src/lua/config/lualine.lua +++ /dev/null @@ -1,17 +0,0 @@ -return function() - local lualine = require('lualine'); - - lualine.setup { - extensions = {'nvim-tree'}, - options = { - globalstatus = false, - theme = 'tokyonight', - }, - sections = { - lualine_c = { - 'file', - "require'lsp-status'.status()", - } - } - } -end diff --git a/src/lua/config/null-ls.lua b/src/lua/config/null-ls.lua deleted file mode 100644 index 7719019..0000000 --- a/src/lua/config/null-ls.lua +++ /dev/null @@ -1,5 +0,0 @@ -return function() - local null_ls = require('null-ls'); - - null_ls.setup({}); -end diff --git a/src/lua/config/prettier.lua b/src/lua/config/prettier.lua deleted file mode 100644 index 41e8a4c..0000000 --- a/src/lua/config/prettier.lua +++ /dev/null @@ -1,21 +0,0 @@ -return function() - local prettier = require("prettier") - - prettier.setup({ - bin = 'prettier', -- or `'prettierd'` (v0.22+) - filetypes = { - "css", - "graphql", - "html", - "javascript", - "javascriptreact", - "json", - "less", - "markdown", - "scss", - "typescript", - "typescriptreact", - "yaml", - }, - }) -end diff --git a/src/lua/config/toggleterm.lua b/src/lua/config/toggleterm.lua deleted file mode 100644 index b010005..0000000 --- a/src/lua/config/toggleterm.lua +++ /dev/null @@ -1,8 +0,0 @@ -return function() - require("toggleterm").setup({ - open_mapping = [[<c-\>]], - winbar = { - enable = true, - } - }) -end diff --git a/src/lua/config/tokyonight.lua b/src/lua/config/tokyonight.lua deleted file mode 100644 index f1f37e9..0000000 --- a/src/lua/config/tokyonight.lua +++ /dev/null @@ -1,17 +0,0 @@ -return function() - local tokyonight = require('tokyonight') - - vim.api.nvim_command("colorscheme tokyonight-moon") - - tokyonight.setup({ - style = "moon", - --transparent = true, - styles = { - sidebars = "dark", - floats = "dark", - }, - --dim_inactive = true, - lualine_bold = true, - use_background = false, - }) -end diff --git a/src/lua/config/treesitter.lua b/src/lua/config/treesitter.lua deleted file mode 100644 index 7f9711f..0000000 --- a/src/lua/config/treesitter.lua +++ /dev/null @@ -1,18 +0,0 @@ -return function() - local ts = require 'nvim-treesitter.configs' - - ts.setup { - ensure_installed = { - 'python', - 'cpp', - 'nix', - 'haskell', - 'rust', - 'typescript', - 'markdown' - }, - highlight = { - enable = true - } - } -end diff --git a/src/lua/lib/lazyhooks.lua b/src/lua/lib/lazyhooks.lua new file mode 100644 index 0000000..bdab7dc --- /dev/null +++ b/src/lua/lib/lazyhooks.lua @@ -0,0 +1,12 @@ +local function load_on_filetypes(module, filetypes, setup) + vim.api.nvim_create_autocmd("FileType", { + pattern = table.concat(filetypes, ","), + callback = function() + vim.cmd("packadd " .. module) + end + }) +end + +return { + load_on_filetypes = load_on_filetypes +} diff --git a/src/lua/plugins.lua b/src/lua/plugins.lua deleted file mode 100644 index 1f3d25c..0000000 --- a/src/lua/plugins.lua +++ /dev/null @@ -1,144 +0,0 @@ --- If a lazy-lock.json file does not exist, but we have a --- lazy-lock.initial.json file available, create a writeable copy. --- --- This allow us to ship a lockfile with this repo, managed by home-manager, --- ensuring the environment is reproducible while also giving the end-user the --- option to update plugins manually. --- --- If something breaks during na update, the user can always rever tback to --- the state in this repo by copying the initial lockfile again. -local lockpath = vim.fn.stdpath("config") .. "/lazy-lock.json" -local initial_lockpath = vim.fn.stdpath("config") .. "/lazy-lock.initial.json" -if (not vim.loop.fs_stat(lockpath)) and vim.loop.fs_stat(initial_lockpath) then - vim.loop.fs_copyfile(initial_lockpath, lockpath) - vim.loop.fs_chmod(lockpath, tonumber("664", 8)) -end - --- Install Lazy.nvim if it's not already available. --- --- This should allow for this config to be usable even outside of a --- home-manager/Nix environment. -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release - lazypath, - }) -end -vim.opt.rtp:prepend(lazypath) - -require('lazy').setup({ - -- Prevent lazy.nvim from updating itself. The plugin will be managed - -- externally to lock down the version used. - { "folke/lazy.nvim", enabled = false }, - { - 'folke/tokyonight.nvim', - lazy = false; - priority = 1000; - config = require('config.tokyonight'), - }, - { - 'nvim-treesitter/nvim-treesitter', - config = require('config.treesitter'), - build = function() - local ts_update = require('nvim-treesitter.install') - .update({ with_sync = true }) - - ts_update() - end, - }, - { - 'nvim-lualine/lualine.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons', 'nvim-tree/nvim-tree.lua' }, - config = require('config.lualine'), - }, - { - 'nvim-tree/nvim-tree.lua', - dependencies = { 'nvim-tree/nvim-web-devicons' }, - config = require('config.tree') - }, - { - 'lewis6991/gitsigns.nvim', - dependencies = { - 'nvim-lua/plenary.nvim' - }, - config = require('config.gitsigns') - }, - { - 'romgrk/barbar.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons' }, - config = require('config.barbar') - }, - { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - config = require('config.indent-blankline') - }, - { - 'hrsh7th/nvim-cmp', - dependencies = { - 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-buffer', - 'hrsh7th/cmp-path', - 'hrsh7th/cmp-cmdline', - 'saadparwaiz1/cmp_luasnip', - 'L3MON4D3/LuaSnip', - }, - config = require('config.cmp'), - }, - { - 'nvim-lua/lsp-status.nvim', - config = require('config.lspstatus') - }, - { - 'neovim/nvim-lspconfig', - config = require('config.lspconfig'), - after = 'lsp-status.nvim' - }, - { - 'nvim-telescope/telescope.nvim', tag = '0.1.0', - dependencies = { { 'nvim-lua/plenary.nvim' } }, - config = require('config.telescope'), - }, - { - 'mfussenegger/nvim-dap', - config = require('config.dap') - }, - { - 'rcarriga/nvim-dap-ui', - dependencies = {'nvim-dap'}, - config = require('config.dapui'), - }, - 'jbyuki/one-small-step-for-vimkind', - { - 'petertriho/nvim-scrollbar', - config = require('config.scrollbar'), - }, - { - 'akinsho/toggleterm.nvim', - config = require('config.toggleterm'), - }, - { - 'folke/trouble.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons' }, - config = require('config.trouble'), - }, - { - 'jose-elias-alvarez/null-ls.nvim', - dependencies = { 'nvim-lua/plenary.nvim' }, - after = 'nvim-lspconfig', - config = require('config.null-ls'), - }, - { - 'MunifTanjim/prettier.nvim', - dependencies = { - 'neovim/nvim-lspconfig', - 'jose-elias-alvarez/null-ls.nvim', - }, - config = require('config.prettier'), - }, -}) -- GitLab