summaryrefslogtreecommitdiff
path: root/shared/home-manager/C/default.nix
blob: 12160176d4631f301b38a29838492f1aba12bf82 (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
# This module configures development tools for C.
{pkgs, ...}: let
  isLinux = pkgs.stdenv.isLinux;
in {
  home.packages = with pkgs;
    [
      clang
      clang-manpages
      man-pages-posix
      cscript
    ]
    ++ lib.optionals isLinux [
      man-pages
    ];

  programs.neovim.extraLuaConfig = ''
    require("lspconfig")["clangd"].setup({
      cmd = { "${pkgs.clang-tools}/bin/clangd", "--background-index", "--clang-tidy" },
      on_attach = function(_, bufnr)
        vim.keymap.set("n", "<leader>s", function()
          vim.cmd [[ClangdSwitchSourceHeader]]
        end, {
          noremap=true,
          silent=true,
          buffer=bufnr,
        })
      end,
    })
  '';
}