diff --git a/config/cmp.nix b/config/cmp.nix index 06559b1..4176690 100644 --- a/config/cmp.nix +++ b/config/cmp.nix @@ -1,29 +1,29 @@ { ... }: { - plugins = { - lspkind.enable = true; - cmp-nvim-lsp-signature-help.enable = true; - cmp = { - enable = true; - autoEnableSources = true; - settings = { - sources = [ - { name = "nvim_lsp"; } - { name = "nvim_lsp_signature_help"; } - { name = "path"; } - { name = "buffer"; } - { name = "dap"; } - ]; - mapping = { - "" = "cmp.mapping.select_next_item()"; - "" = "cmp.mapping.select_prev_item()"; - "" = "cmp.mapping.scroll_docs(4)"; - "" = "cmp.mapping.scroll_docs(-4)"; - "" = "cmp.mapping.complete()"; - "" = "cmp.mapping.close()"; - "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true })"; - }; - }; - }; - }; + plugins = { + lspkind.enable = true; + cmp-nvim-lsp-signature-help.enable = true; + cmp = { + enable = true; + autoEnableSources = true; + settings = { + sources = [ + { name = "nvim_lsp"; } + { name = "nvim_lsp_signature_help"; } + { name = "path"; } + { name = "buffer"; } + { name = "dap"; } + ]; + mapping = { + "" = "cmp.mapping.select_next_item()"; + "" = "cmp.mapping.select_prev_item()"; + "" = "cmp.mapping.scroll_docs(4)"; + "" = "cmp.mapping.scroll_docs(-4)"; + "" = "cmp.mapping.complete()"; + "" = "cmp.mapping.close()"; + "" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Insert, select = true })"; + }; + }; + }; + }; } diff --git a/config/default.nix b/config/default.nix index afae90f..da46687 100644 --- a/config/default.nix +++ b/config/default.nix @@ -1,22 +1,22 @@ { pkgs, ... }: { - imports = [ - ./opts.nix - ./lsp.nix - ./cmp.nix - ./keymaps.nix - ./plugins - ]; + imports = [ + ./opts.nix + ./lsp.nix + ./cmp.nix + ./keymaps.nix + ./plugins + ]; - colorschemes.catppuccin.enable = true; - extraPackages = with pkgs; [ - wl-clipboard - ]; - clipboard = { - register = "unnamedplus"; - providers.wl-copy.enable = true; - providers.wl-copy.package = pkgs.wl-clipboard; - providers.xclip.enable = true; - providers.xclip.package = pkgs.xclip; - }; + colorschemes.catppuccin.enable = true; + extraPackages = with pkgs; [ + wl-clipboard + ]; + clipboard = { + register = "unnamedplus"; + providers.wl-copy.enable = true; + providers.wl-copy.package = pkgs.wl-clipboard; + providers.xclip.enable = true; + providers.xclip.package = pkgs.xclip; + }; } diff --git a/config/keymaps.nix b/config/keymaps.nix index d637ca9..32c3881 100644 --- a/config/keymaps.nix +++ b/config/keymaps.nix @@ -1,168 +1,174 @@ { ... }: { - keymaps = [ - { - action = ":bnext"; - key = ""; - options = { - silent = true; - desc = "Next tab"; - }; - mode = "n"; - } - { - action = ":bprevious"; - key = ""; - options = { - silent = true; - desc = "Previous tab"; - }; - mode = "n"; - } - { - action = ":bdelete"; - key = ""; - options = { - silent = true; - desc = "Next tab"; - }; - mode = "n"; - } - { - action = ""; - key = ""; - options = { - silent = true; - desc = "Exit terminal insert mode"; - }; - mode = "t"; - } - { - action = ":w"; - key = ""; - options = { - silent = true; - desc = "Save"; - }; - mode = "n"; - } - { - action = ":lua vim.lsp.buf.format()"; - key = ""; - options = { - silent = true; - desc = "Format buffer"; - }; - mode = "n"; - } - { - action = ":q"; - key = ""; - options = { - silent = true; - desc = "Quit"; - }; - mode = "n"; - } - { - action = ":wincmd l"; - key = "wl"; - options = { - silent = true; - desc = "Go to left panel"; - }; - mode = "n"; - } - { - action = ":wincmd k"; - key = "wk"; - options = { - silent = true; - desc = "Go to upper panel"; - }; - mode = "n"; - } - { - action = ":wincmd j"; - key = "wj"; - options = { - silent = true; - desc = "Go to down panel"; - }; - mode = "n"; - } - { - action = ":wincmd h"; - key = "wh"; - options = { - silent = true; - desc = "Go to left panel"; - }; - mode = "n"; - } - { - action = "$"; - key = "gl"; - options = { - silent = true; - desc = "Go to end line"; - }; - mode = [ "n" "v" ]; - } - { - action = "^"; - key = "gh"; - options = { - silent = true; - desc = "Go to start line"; - }; - mode = [ "n" "v" ]; - } - { - action = ":lua Snacks.explorer()"; - key = "e"; - options = { - silent = true; - desc = "Toggle file explorer"; - }; - mode = "n"; - } - # ToggleTerm - { - action = ":ToggleTerm direction=float"; - key = "t"; - options = { - silent = true; - desc = "Toggle terminal"; - }; - mode = "n"; - } - # Dap - { - action.__raw = '' - function() - require("dap").toggle_breakpoint() - end - ''; - key = "b"; - mode = "n"; - options = { - silent = true; - desc = "Toggle breakpoint"; - }; - } - { - action.__raw = '' - function() - require("dapui").toggle() - end - ''; - key = "y"; - mode = "n"; - options = { - silent = true; - desc = "Toggle debugger"; - }; - } - ]; + keymaps = [ + { + action = ":bnext"; + key = ""; + options = { + silent = true; + desc = "Next tab"; + }; + mode = "n"; + } + { + action = ":bprevious"; + key = ""; + options = { + silent = true; + desc = "Previous tab"; + }; + mode = "n"; + } + { + action = ":bdelete"; + key = ""; + options = { + silent = true; + desc = "Next tab"; + }; + mode = "n"; + } + { + action = ""; + key = ""; + options = { + silent = true; + desc = "Exit terminal insert mode"; + }; + mode = "t"; + } + { + action = ":w"; + key = ""; + options = { + silent = true; + desc = "Save"; + }; + mode = "n"; + } + { + action = ":lua vim.lsp.buf.format()"; + key = ""; + options = { + silent = true; + desc = "Format buffer"; + }; + mode = "n"; + } + { + action = ":q"; + key = ""; + options = { + silent = true; + desc = "Quit"; + }; + mode = "n"; + } + { + action = ":wincmd l"; + key = "wl"; + options = { + silent = true; + desc = "Go to left panel"; + }; + mode = "n"; + } + { + action = ":wincmd k"; + key = "wk"; + options = { + silent = true; + desc = "Go to upper panel"; + }; + mode = "n"; + } + { + action = ":wincmd j"; + key = "wj"; + options = { + silent = true; + desc = "Go to down panel"; + }; + mode = "n"; + } + { + action = ":wincmd h"; + key = "wh"; + options = { + silent = true; + desc = "Go to left panel"; + }; + mode = "n"; + } + { + action = "$"; + key = "gl"; + options = { + silent = true; + desc = "Go to end line"; + }; + mode = [ + "n" + "v" + ]; + } + { + action = "^"; + key = "gh"; + options = { + silent = true; + desc = "Go to start line"; + }; + mode = [ + "n" + "v" + ]; + } + { + action = ":lua Snacks.explorer()"; + key = "e"; + options = { + silent = true; + desc = "Toggle file explorer"; + }; + mode = "n"; + } + # ToggleTerm + { + action = ":ToggleTerm direction=float"; + key = "t"; + options = { + silent = true; + desc = "Toggle terminal"; + }; + mode = "n"; + } + # Dap + { + action.__raw = '' + function() + require("dap").toggle_breakpoint() + end + ''; + key = "b"; + mode = "n"; + options = { + silent = true; + desc = "Toggle breakpoint"; + }; + } + { + action.__raw = '' + function() + require("dapui").toggle() + end + ''; + key = "y"; + mode = "n"; + options = { + silent = true; + desc = "Toggle debugger"; + }; + } + ]; } diff --git a/config/lsp.nix b/config/lsp.nix index 76231bc..0287ec7 100644 --- a/config/lsp.nix +++ b/config/lsp.nix @@ -1,36 +1,36 @@ { ... }: { - plugins.lsp = { - enable = true; - servers = { - clangd.enable = true; - nil_ls.enable = true; - gopls.enable = true; - jdtls.enable = true; - lua_ls.enable = true; - rust_analyzer = { - enable = true; - installCargo = false; - installRustc = false; - installRustfmt = false; - }; - zls.enable = true; - nim_langserver.enable = true; - pyright.enable = true; - emmet_language_server.enable = true; - ts_ls.enable = true; - docker_compose_language_service.enable = true; - jsonls.enable = true; - phpactor.enable = true; - gleam.enable = true; - elixirls.enable = true; - }; - keymaps = { - lspBuf = { - "k" = "hover"; - "r" = "rename"; - "a" = "code_action"; - }; - }; - }; + plugins.lsp = { + enable = true; + servers = { + clangd.enable = true; + nil_ls.enable = true; + gopls.enable = true; + jdtls.enable = true; + lua_ls.enable = true; + rust_analyzer = { + enable = true; + installCargo = false; + installRustc = false; + installRustfmt = false; + }; + zls.enable = true; + nim_langserver.enable = true; + pyright.enable = true; + emmet_language_server.enable = true; + ts_ls.enable = true; + docker_compose_language_service.enable = true; + jsonls.enable = true; + phpactor.enable = true; + gleam.enable = true; + elixirls.enable = true; + }; + keymaps = { + lspBuf = { + "k" = "hover"; + "r" = "rename"; + "a" = "code_action"; + }; + }; + }; } diff --git a/config/opts.nix b/config/opts.nix index c7e760f..a95dbc5 100644 --- a/config/opts.nix +++ b/config/opts.nix @@ -1,17 +1,17 @@ { ... }: { - opts = { - number = true; - relativenumber = true; - signcolumn = "yes"; - splitright = true; - splitbelow = true; - cursorline = true; - scrolloff = 5; - undofile = true; - ignorecase = true; - smartcase = true; - gdefault = true; - termguicolors = true; - }; + opts = { + number = true; + relativenumber = true; + signcolumn = "yes"; + splitright = true; + splitbelow = true; + cursorline = true; + scrolloff = 5; + undofile = true; + ignorecase = true; + smartcase = true; + gdefault = true; + termguicolors = true; + }; } diff --git a/config/plugins/comment.nix b/config/plugins/comment.nix index a35d73b..a2ba163 100644 --- a/config/plugins/comment.nix +++ b/config/plugins/comment.nix @@ -1,14 +1,14 @@ { ... }: { - plugins.comment = { - enable = true; - settings = { - sticky = true; + plugins.comment = { + enable = true; + settings = { + sticky = true; - toggler = { - block = ""; - line = ""; - }; - }; - }; + toggler = { + block = ""; + line = ""; + }; + }; + }; } diff --git a/config/plugins/dap.nix b/config/plugins/dap.nix index b99d762..99c524e 100644 --- a/config/plugins/dap.nix +++ b/config/plugins/dap.nix @@ -1,66 +1,66 @@ { pkgs, ... }: { - plugins = { - dap = { - enable = true; - adapters = { - executables = { - gdb = { - command = "gdb"; - args = [ - "-i" - "dap" - ]; - }; - lldb = { - command = "lldb"; - }; - }; - servers = { - codelldb = { - port = 13000; - executable = { - command = "${pkgs.vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb"; - args = [ - "--port" - "13000" - ]; - }; - }; - }; - }; - configurations = { - cpp = [ - { - name = "Launch GDB"; - type = "gdb"; - request = "launch"; - program.__raw = '' - function() - return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") - end''; - } - { - name = "Launch LLDB"; - type = "lldb"; - request = "launch"; - program.__raw = '' - function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end''; - } - { - name = "Launch CodeLLDB"; - type = "codelldb"; - request = "launch"; - program.__raw = '' - function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end''; - } - ]; - }; - }; - dap-ui.enable = true; - }; + plugins = { + dap = { + enable = true; + adapters = { + executables = { + gdb = { + command = "gdb"; + args = [ + "-i" + "dap" + ]; + }; + lldb = { + command = "lldb"; + }; + }; + servers = { + codelldb = { + port = 13000; + executable = { + command = "${pkgs.vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb"; + args = [ + "--port" + "13000" + ]; + }; + }; + }; + }; + configurations = { + cpp = [ + { + name = "Launch GDB"; + type = "gdb"; + request = "launch"; + program.__raw = '' + function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end''; + } + { + name = "Launch LLDB"; + type = "lldb"; + request = "launch"; + program.__raw = '' + function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end''; + } + { + name = "Launch CodeLLDB"; + type = "codelldb"; + request = "launch"; + program.__raw = '' + function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end''; + } + ]; + }; + }; + dap-ui.enable = true; + }; } diff --git a/config/plugins/dashboard.nix b/config/plugins/dashboard.nix index 1f1f67c..825dc6b 100644 --- a/config/plugins/dashboard.nix +++ b/config/plugins/dashboard.nix @@ -1,20 +1,20 @@ { ... }: { - plugins.dashboard = { - enable = true; - settings.config = { - header = [ - " ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓" - " ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒" - "▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░" - "▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ " - "▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒" - "░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░" - "░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░" - " ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ " - " ░ ░ ░ ░ ░ ░ ░ ░ " - ]; - footer = [ "Made with ❤️" ]; - }; - }; + plugins.dashboard = { + enable = true; + settings.config = { + header = [ + " ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓" + " ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒" + "▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░" + "▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ " + "▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒" + "░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░" + "░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░" + " ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ " + " ░ ░ ░ ░ ░ ░ ░ ░ " + ]; + footer = [ "Made with ❤️" ]; + }; + }; } diff --git a/config/plugins/default.nix b/config/plugins/default.nix index 3f7f2ea..c04cde2 100644 --- a/config/plugins/default.nix +++ b/config/plugins/default.nix @@ -1,27 +1,27 @@ -{ pkgs, ... }: +{ ... }: { - imports = [ - ./comment.nix - ./dap.nix - ./dashboard.nix - ./fidget.nix - ./guess-indent.nix - ./lualine.nix - ./snacks.nix - ./telescope.nix - ./treesitter.nix - ./vimwiki.nix - ]; + imports = [ + ./comment.nix + ./dap.nix + ./dashboard.nix + ./fidget.nix + ./guess-indent.nix + ./lualine.nix + ./snacks.nix + ./telescope.nix + ./treesitter.nix + ./vimwiki.nix + ]; - plugins = { - autoclose.enable = true; - bufferline.enable = true; - colorful-menu.enable = true; - gitsigns.enable = true; - nix-develop.enable = true; - nvim-surround.enable = true; - toggleterm.enable = true; - web-devicons.enable = true; - which-key.enable = true; - }; + plugins = { + autoclose.enable = true; + bufferline.enable = true; + colorful-menu.enable = true; + gitsigns.enable = true; + nix-develop.enable = true; + nvim-surround.enable = true; + toggleterm.enable = true; + web-devicons.enable = true; + which-key.enable = true; + }; } diff --git a/config/plugins/fidget.nix b/config/plugins/fidget.nix index 366ee17..bfde202 100644 --- a/config/plugins/fidget.nix +++ b/config/plugins/fidget.nix @@ -1,10 +1,10 @@ { - plugins.fidget = { - enable = true; - settings.progress = { - suppress_on_insert = true; - ignore_done_already = true; - poll_rate = 1; - }; - }; + plugins.fidget = { + enable = true; + settings.progress = { + suppress_on_insert = true; + ignore_done_already = true; + poll_rate = 1; + }; + }; } diff --git a/config/plugins/guess-indent.nix b/config/plugins/guess-indent.nix index 1d47019..87c3b74 100644 --- a/config/plugins/guess-indent.nix +++ b/config/plugins/guess-indent.nix @@ -1,6 +1,6 @@ -{ ... }: +{ ... }: { - plugins.guess-indent = { - enable = true; - }; + plugins.guess-indent = { + enable = true; + }; } diff --git a/config/plugins/lualine.nix b/config/plugins/lualine.nix index 14b72ec..0f8c01b 100644 --- a/config/plugins/lualine.nix +++ b/config/plugins/lualine.nix @@ -1,6 +1,6 @@ { ... }: { - plugins.lualine = { - enable = true; - }; + plugins.lualine = { + enable = true; + }; } diff --git a/config/plugins/snacks.nix b/config/plugins/snacks.nix index 56166b5..cb1c007 100644 --- a/config/plugins/snacks.nix +++ b/config/plugins/snacks.nix @@ -1,11 +1,11 @@ { ... }: { - plugins.snacks = { - enable = true; - settings = { - explorer = { - enabled = true; - }; - }; - }; + plugins.snacks = { + enable = true; + settings = { + explorer = { + enabled = true; + }; + }; + }; } diff --git a/config/plugins/telescope.nix b/config/plugins/telescope.nix index baacccb..0ef8395 100644 --- a/config/plugins/telescope.nix +++ b/config/plugins/telescope.nix @@ -1,10 +1,10 @@ { ... }: -{ - plugins.telescope = { - enable = true; - keymaps = { - "f" = "find_files"; - "g" = "live_grep"; - }; - }; +{ + plugins.telescope = { + enable = true; + keymaps = { + "f" = "find_files"; + "g" = "live_grep"; + }; + }; } diff --git a/config/plugins/treesitter.nix b/config/plugins/treesitter.nix index 6b823f0..9a25742 100644 --- a/config/plugins/treesitter.nix +++ b/config/plugins/treesitter.nix @@ -1,11 +1,11 @@ { ... }: { - plugins.treesitter = { - enable = true; - settings = { - highlight = { - enable = true; - }; - }; - }; + plugins.treesitter = { + enable = true; + settings = { + highlight = { + enable = true; + }; + }; + }; } diff --git a/config/plugins/vimwiki.nix b/config/plugins/vimwiki.nix index 524ab97..12a3b09 100644 --- a/config/plugins/vimwiki.nix +++ b/config/plugins/vimwiki.nix @@ -1,16 +1,16 @@ { ... }: { - plugins.vimwiki = { - enable = true; - settings = { - list = [ - { - path = "$HOME/.vimwiki/"; - template_path = "$HOME/.vimwiki/"; - template_default = "default"; - template_ext = "html"; - } - ]; - }; - }; + plugins.vimwiki = { + enable = true; + settings = { + list = [ + { + path = "$HOME/.vimwiki/"; + template_path = "$HOME/.vimwiki/"; + template_default = "default"; + template_ext = "html"; + } + ]; + }; + }; } diff --git a/flake.nix b/flake.nix index 24f555e..82e0d4b 100644 --- a/flake.nix +++ b/flake.nix @@ -6,9 +6,18 @@ flake-utils.url = "github:numtide/flake-utils"; }; - outputs = { self, nixpkgs, nixvim, flake-utils, ... }@inputs: - let config = import ./config; # import the module directly - in flake-utils.lib.eachDefaultSystem (system: + outputs = + { + nixpkgs, + nixvim, + flake-utils, + ... + }: + let + config = import ./config; # import the module directly + in + flake-utils.lib.eachDefaultSystem ( + system: let nixvimLib = nixvim.lib.${system}; pkgs = import nixpkgs { inherit system; }; @@ -34,5 +43,6 @@ }; devShells.default = import ./shell.nix { inherit pkgs; }; - }); + } + ); } diff --git a/shell.nix b/shell.nix index 30b4f2e..58c9388 100644 --- a/shell.nix +++ b/shell.nix @@ -6,4 +6,3 @@ pkgs.mkShell { git ]; } -