summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/neovim.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/apps/neovim.nix b/apps/neovim.nix
new file mode 100644
index 0000000..766d746
--- /dev/null
+++ b/apps/neovim.nix
@@ -0,0 +1,75 @@
+{ config, pkgs, ... }:
+{
+ programs.nixvim = {
+ enable = true;
+
+ keymaps = [
+ # Equivalent to nnoremap ; :
+ {
+ key = ";";
+ action = ":";
+ }
+
+ # Equivalent to nmap <silent> <buffer> <leader>gg <cmd>Man<CR>
+ {
+ key = "<leader>gg";
+ action = "<cmd>Man<CR>";
+ options = {
+ silent = true;
+ remap = false;
+ };
+ }
+ # Etc...
+ ];
+
+ # We can set the leader key:
+ globals.mapleader = " ";
+
+ # We can also set options:
+ opts = {
+ tabstop = 4;
+ shiftwidth = 4;
+ expandtab = false;
+
+ mouse = "a";
+
+ # etc...
+ };
+
+ plugins = {
+ lazy.enable = true;
+
+ telescope = {
+ enable = true;
+ keymaps = {
+ "<leader>ff" = "find_files";
+ "<leader>lg" = "live_grep";
+ };
+ };
+
+ lsp = {
+ enable = true;
+ servers = {
+ tsserver.enable = true;
+ lua-ls.enable = true;
+ bashls.enable = true;
+ html.enable = true;
+ pyright.enable = true;
+ jsonls.enable = true;
+ java-language-server.enable = true;
+ cmake.enable = true;
+ sqls.enable = true;
+ rust-analyzer = {
+ enable = true;
+ installRustc = true;
+ installCargo = true;
+ };
+ };
+ };
+ };
+
+ colorschemes.gruvbox.enable = true;
+
+ extraPlugins = with pkgs.vimPlugins; [ vim-toml ];
+ };
+}