feat(nvim): bring clangd conf to hypr dev scripts and improve them
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2025-01-23 19:34:25 -05:00
parent bb830b2ceb
commit 23d80380db
2 changed files with 62 additions and 18 deletions

View file

@ -5,16 +5,11 @@
...
}: let
inherit (lib) mkIf;
inherit (pkgs.writers) writeYAML;
cfg = config.programs.neovim;
flakeEnv = config.programs.bash.sessionVariables.FLAKE;
in {
config = mkIf cfg.enable {
xdg.configFile."clangd/config.yaml".source = writeYAML "config.yaml" {
CompileFlags.Add = ["-D__cpp_concepts=202002L"];
};
programs = {
neovim = {
extraLuaConfig =

View file

@ -5,27 +5,76 @@
...
}: let
inherit (lib) mkIf;
inherit (pkgs.writers) writeJSON;
cfg = osConfig.roles.desktop;
in {
config = mkIf cfg.enable {
programs.bash.shellAliases = {
# https://wiki.hyprland.org/Contributing-and-Debugging/#lsp-and-formatting
"mkCMakeFiles" = "${pkgs.cmake}/bin/cmake -S . -B build/ -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON";
};
clangdConf = writeJSON "clangd-hypr-conf" {
CompileFlags.Add = ["-D__cpp_concepts=202002L"];
};
in {
# https://wiki.hyprland.org/Contributing-and-Debugging/#lsp-and-formatting
config = mkIf cfg.enable {
home.packages = [
(pkgs.writeShellApplication {
name = "testChanges";
runtimeInputs = [pkgs.cmake];
name = "setupDev";
runtimeInputs = [
pkgs.cmake
osConfig.programs.direnv.nix-direnv.package
osConfig.programs.git.package
];
text = ''
chmod +w -fR /home/matt/git/"$1/''${2:-"."}"/{.cache,build}
rm -r /home/matt/git/"$1/''${2:-"."}"/{.cache,build}
cd /home/matt/.nix || return
if [[ $# -gt 0 ]]; then
project="$1"
subproject="''${2:-"."}"
cd "$HOME/git/$project/$subproject" || return
fi
chmod +w -fR ./{.cache,build} || true
git clean -xdf
if [ -e .envrc ] || [ -e ../.envrc ]; then
if [[ $# -gt 0 ]]; then
nix develop -c echo "load shellHook"
else
direnv reload
fi
fi
if [ -e CMakeLists.txt ] || [ -e ../CMakeLists.txt ]; then
nix develop -c cmake -S . -B build/ -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
fi
cat ${clangdConf} > .clangd
'';
})
(pkgs.writeShellApplication {
name = "testChanges";
runtimeInputs = [
pkgs.cmake
osConfig.programs.direnv.nix-direnv.package
osConfig.programs.git.package
];
text = ''
project="$1"
subproject="''${2:-"."}"
cd "$HOME/git/$project/$subproject" || return
chmod +w -fR ./{.cache,build} || true
git clean -xdf
cd "$FLAKE" || return
nix flake update "$1"
nh os switch
cd "/home/matt/git/$1/''${2:-"."}" || return
nix develop "/home/matt/git/$1" -c cmake -S . -B build/ -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
setupDev "$project" "$subproject"
'';
})
];