summaryrefslogtreecommitdiff
path: root/common/home/programs/nixvim/default.nix
blob: f8ec8c601070abbc2478d6a86b42bbb89276281a (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
{ pkgs, ... }:
{
  enable = true;
  defaultEditor = true;

  enableMan = true;

  package = pkgs.unstable.neovim-unwrapped;

  extraConfigLua = ''
    local signs = { Error = "󰀨 ", Warn = " ", Hint = " ", Info = " " }
    for type, icon in pairs(signs) do
    	local hl = "DiagnosticSign" .. type
    	vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl })
    end'';

  diagnostics = {
    virtual_text = {
      prefix = "󰬨";
    };
  };

  opts = {
    mouse = "a";
    number = true;
    softtabstop = 0;
    expandtab = false;
    tabstop = 2;
    shiftwidth = 2;
    smartindent = true;
    list = true;
    listchars = {
      tab = "> ";
      eol = "¬";
      trail = "·";
      nbsp = "•";
    };
    splitright = true;
    splitbelow = true;
    showcmd = true;
    wildmenu = true;
    hlsearch = true;
    autoread = true;
    swapfile = false;
  };

  clipboard = {
    register = "unnamedplus";
    providers.wl-copy.enable = true;
  };

  colorschemes.base16 = {
    enable = true;
    colorscheme = "gruvbox-dark-pale";
  };

  plugins = import ./plugins/default.nix;

  globals = {
    mapleader = ",";
  };

  keymaps = [
    {
      key = "<leader>tf";
      action = "<cmd>NvimTreeToggle<cr>";
      mode = "n";
    }
    {
      key = "<leader>f";
      action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
      mode = "n";
    }
    {
      key = "<space>d";
      action = "<cmd>lua vim.diagnostic.open_float()<cr>";
      mode = "n";
    }
  ];
}