diff --git a/flake.lock b/flake.lock index ed44d5781a020ecec47655d172ecebcd88a76ea5..74e22b2ad2cb0649852ae1a9842c8baae6901f8f 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 d26d088036bab344970fc37d5d6821ecc8f202c9..fdeb33c4b0d4900c5f1589693e7fc53699625413 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 96d42dcc70b3f326a5be3332568d12017cf97bed..9f84017e23fc1cb2d20080dec950fd3b7864efa0 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 b7aa33a871043e79d1260fea86d8804401db6e76..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..bb9b9e1eed0bb5ec4b96de85c9f87161f5bb5dcb --- /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 0000000000000000000000000000000000000000..5f14cf6b2ce440133f0ac33a26ae71acb827a649 --- /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 50f89f5ffc76e1aa856994863aaeef2d8313a154..c5edf04719bed28bab7f7ec87a620e7c2635080f 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 0000000000000000000000000000000000000000..a66d96ccaba782523bfc43f4f563a7423160895c --- /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 0000000000000000000000000000000000000000..22a4f9333f6893827883278a6f481a928f73fe39 --- /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 0000000000000000000000000000000000000000..764d94202e82dcca8c598c7137c734cd8443a034 --- /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 0db6bcdc17e1909272c031c8bde68be012c1bcac..90de8d18cee1173e624e37598640cbecf5413206 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 0000000000000000000000000000000000000000..26f000ec8bb070cecfcafdabd81c82920716fca6 --- /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 0000000000000000000000000000000000000000..91fa65b0936a03878fc66b6504447a2a82a82249 --- /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 0000000000000000000000000000000000000000..61890ce6ca5adbf700705ab382f5c9ec83f8959f --- /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 0000000000000000000000000000000000000000..9448290ae6b42cdd7b911a8b5a9c2bbe42863a8d --- /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 0000000000000000000000000000000000000000..8591f95aa47052b051c8ad7b851d9a7803444cb9 --- /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 3e493859ee788780372d57e75f550b121286836b..79ae39a7d738a47e99dfb718d0ed2436a44d6c68 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 0000000000000000000000000000000000000000..6eaa143f7507509cb01dac2f01851004fc6cdbcf --- /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 0ff38d4300ea887d603dcff293542406c9d71723..3d2d603281c0b14495224d458b5cab577f14236d 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 0000000000000000000000000000000000000000..b64e884fac2e6a4e73bbd96d453a3f9c418ab3f9 --- /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 0000000000000000000000000000000000000000..28231752c58ae7a87951ef254e104594e840c033 --- /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 0000000000000000000000000000000000000000..e1e328a6053f59b0e13235581e770411c57956fc --- /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 0000000000000000000000000000000000000000..d87e5cd45c7dce4f7f531868a19b765cf0d51dc2 --- /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 0000000000000000000000000000000000000000..e18b8fca2ab4a72decc0061179cf818909aaa9f9 --- /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 62966015102d57316672a59aea6212dec97ce814..764dd34bd2d67d69a8673cb4e08ffc9a55c1bac2 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 0000000000000000000000000000000000000000..1bb7df2161007076b0bf5c7f7279462010141d14 --- /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 0000000000000000000000000000000000000000..ec4ddd5b7361e3ca60895619182a7c55071e8f14 --- /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 0000000000000000000000000000000000000000..87456e66b6f8a2cdc5fd79ae00326ce0cf782717 --- /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 0000000000000000000000000000000000000000..9cc787df8e754ac6d35f51be4c2386d416c82d64 --- /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 0000000000000000000000000000000000000000..c703627c5f3ef700930e57199577b9f8256e588e --- /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 0000000000000000000000000000000000000000..15d2085f5655a8b60d536f0d75bd807a4fcfb4a6 --- /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 65dbb18dc12466eae8bb84a51f49df2c4d6bd67a..5442dbff4ffb20bfe93715e8de11008dab9c7d63 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 0000000000000000000000000000000000000000..41c05200ee4694356a522f4b6b674f39d2979c16 --- /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 5717833acc31ee76566aa6799c10e2e565ca7678..da4362724e257752759660d47bcfea51f23ec98c 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 0000000000000000000000000000000000000000..06319c97f219691f8a269b45cdefe9fbda959976 --- /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 0000000000000000000000000000000000000000..a7172858798f869286c2cdc6d70a67d3468ef205 --- /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 0000000000000000000000000000000000000000..f441afb6ecbb378262bafd0a4084a3ddd704134c --- /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 0000000000000000000000000000000000000000..8aa8c928f6d4d57f0671224fa2ac80d24560c990 --- /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 3be763a69e09c8e3175fd27e171bf1df5b750f69..4aa3eb7538e40b7be52be883392c4ca6a2dcb097 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 0000000000000000000000000000000000000000..8bfe0217cfffa8f708ec130d429437e2b5b76d43 --- /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 0f4ca051592e55a97794b635c2c198c8e22a0e22..0000000000000000000000000000000000000000 --- 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 99673938add73a21530a2db15f59dec8054e382d..0000000000000000000000000000000000000000 --- 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 e6555ec4a8409fb00de4cc1135a2e2623ea695dc..0000000000000000000000000000000000000000 --- 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 73a8f7d140fca5e2b9d85a68ba0c2f7c0acc4a5f..0000000000000000000000000000000000000000 --- 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 4120f20223061b78bd08e6fd7eefd1fa3fbbb237..0000000000000000000000000000000000000000 --- 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 063433b187669127cc9d492a86d39becc2467df1..0000000000000000000000000000000000000000 --- 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 e75d10b6bd25745c0050036baff8bc57f3414886..0000000000000000000000000000000000000000 --- 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 4af74ab91aa8b71b9a226e43a0387e109b126501..0000000000000000000000000000000000000000 --- 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 77190192292d23124ae8061d8c6d661e64497429..0000000000000000000000000000000000000000 --- 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 41e8a4c299aec83f42d2eb794abec38d87484762..0000000000000000000000000000000000000000 --- 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 b010005dcd2c61a00221c76e7d77d275b10219c3..0000000000000000000000000000000000000000 --- 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 f1f37e9cb3ab051a61b1f459a48c68273445f4e8..0000000000000000000000000000000000000000 --- 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 7f9711f51d71829b2957a21349722bf12e4d95dc..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..bdab7dc048d94d9d8a945f35788eba3d67a0cc5d --- /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 1f3d25c9e8706b2dd5c21e48b9e66eaa907b93c8..0000000000000000000000000000000000000000 --- 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'), - }, -})