summaryrefslogtreecommitdiff
path: root/shared/home-manager/C/default.nix
blob: c960b268381808827cd13ab9763bfb3043c9a386 (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
# 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,
    })
  '';
}