summaryrefslogtreecommitdiff
path: root/modules/home/i3wm/original/neovim.nix
blob: e59fd3d49b7066704fb949e1650f6463cb8d48af (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
99
100
101
{ pkgs, ... }:

{
  programs.neovim = {
    enable = true;
    defaultEditor = true;
    viAlias = true;
    vimAlias = true;
    withNodeJs = true;

    # +ANT FIX 
    plugins = []; # disable HM plugin processing

    extraLuaConfig = ''
      -- LazyVim bootstrap
      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", lazypath,
        })
      end
      vim.opt.rtp:prepend(lazypath)

      require("lazy").setup({
        spec = {
          { "LazyVim/LazyVim", import = "lazyvim.plugins" },
          { import = "lazyvim.plugins.extras.lang.tex" },
          { import = "lazyvim.plugins.extras.lang.markdown" },
          { import = "lazyvim.plugins.extras.ui.mini-animate" },
          { import = "lazyvim.plugins.extras.lang.typescript" },
          { import = "lazyvim.plugins.extras.lang.python" },
          { import = "lazyvim.plugins.extras.lang.rust" },
          { import = "lazyvim.plugins.extras.lang.nix" },

          {
            "lervag/vimtex",
            lazy = false,
            init = function()
              vim.g.vimtex_view_method = "zathura"
            end
          },

          {
            "MeanderingProgrammer/render-markdown.nvim",
            opts = {
              enabled = true,
              file_types = { "markdown", "rmd" },
              colorscheme = "default",
            },
            dependencies = {
              "nvim-treesitter/nvim-treesitter",
              "nvim-tree/nvim-web-devicons",
            },
          },

          { "mracos/mermaid.vim", ft = { "mermaid" } },
        },

        defaults = { lazy = false, version = false },
        checker = { enabled = true },

        performance = {
          rtp = {
            disabled_plugins = {
              "gzip", "tarPlugin", "tohtml",
              "tutor", "zipPlugin",
            },
          },
        },
      })

      -- LaTeX wrapping
      vim.api.nvim_create_autocmd("FileType", {
        pattern = "tex",
        callback = function()
          vim.opt_local.wrap = true
          vim.opt_local.linebreak = true
          vim.opt_local.breakindent = true
          vim.opt_local.breakindentopt = "shift:2"
          vim.opt_local.textwidth = 0
        end,
      })

      -- Disable diagnostics in markdown
      vim.api.nvim_create_autocmd("FileType", {
        pattern = "markdown",
        callback = function()
          vim.diagnostic.disable(0)
        end,
      })

      -- Nix LSP
      local lspconfig = require("lspconfig")
      lspconfig.nil_ls.setup({ cmd = { "nil" } })

      vim.opt.clipboard = "unnamedplus"
    '';
  };
}