summaryrefslogtreecommitdiff
path: root/home/editors/nixvim.nix
blob: b8a4e5af06015113e9d9708ceb11187e4a4d5ec1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{ pkgs,  inputs, ... }:
{
  imports = [ inputs.nixvim.homeModules.nixvim ];
  programs.nixvim = {
    enable = true;
    package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;

    viAlias = true;
    vimAlias = true;
    defaultEditor = true;
    waylandSupport = true;
    colorschemes.gruvbox.enable = true;

     plugins = {
       lualine.enable = true;
       oil.enable = true;
       lazygit.enable = true;
       persistence.enable = true;
       nvim-autopairs.enable = true;
       neoscroll.enable = true;
       bufferline.enable = true;
       web-devicons.enable = true;

       treesitter = {
         enable = true;
         settings = {
          indent.enable = true;
         };
       };

       telescope = {
         enable = true;
         extensions = {
            fzf-native = {
               enable = true;
            };
          };
        };

      notify = {
        enable = true;
        settings = {
          backgroundColour = "#1e1e2e";
          fps = 60;
          render = "default";
          timeout = 500;
          topDown = true;
        };
      };

       hardtime = {
         # enable = true;
         settings = {
           # disableMouse = true;
           # enabled = false;
           restrictionMode = "hint";
           hint = true;
           maxCount = 40;
           maxTime = 1000;
         };
       };

       nix.enable = true;
       lsp = {
         enable = true;
          servers = {
          nil_ls.enable = true;
          clangd.enable = true;
          };
       };
     };

    opts = {
      number = true;
      relativenumber = true;
      termguicolors = true;
      # mouse = "a";
      ignorecase = true;
      smartcase = true;
      expandtab = true;
      shiftwidth = 2;
      encoding = "utf-8";
      fileencoding = "utf-8";
      undofile = true;
      swapfile = true;
      backup = false;
      autoread = true;
      cursorline = true;
      ruler = true;
      gdefault = true;
      scrolloff = 5;
      clipboard = {
        providers.wl-copy.enable = true;
        register = "unnamedplus";
      };
    };
  };
}