nixos/home-manager/modules/vscode/default.nix
2025-04-17 13:36:43 -04:00

84 lines
2.3 KiB
Nix

{
config,
lib,
pkgs,
...
}: let
cfg = config.lily.vscode;
in {
options.lily.vscode = {
enable = lib.mkEnableOption "activate vscode";
};
config = lib.mkIf cfg.enable {
programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
mutableExtensionsDir = false;
package = pkgs.vscode.overrideAttrs (attrs: {
buildInputs = with pkgs;
attrs.buildInputs
++ [
bun
gcc
cmake
ninja
];
});
extensions = with pkgs.vscode-extensions; [
github.copilot
github.copilot-chat
rust-lang.rust-analyzer
svelte.svelte-vscode
bradlc.vscode-tailwindcss
ms-vsliveshare.vsliveshare
ms-vscode.cmake-tools
ms-python.python
vadimcn.vscode-lldb
bierner.markdown-preview-github-styles
bierner.markdown-checkbox
bierner.markdown-emoji
bierner.markdown-footnotes
bierner.markdown-mermaid
denoland.vscode-deno
ziglang.vscode-zig
# geequlim.godot-tools
gruntfuggly.todo-tree
mhutchie.git-graph
fill-labs.dependi
bbenoist.nix
tamasfe.even-better-toml
twxs.cmake
llvm-vs-code-extensions.vscode-clangd
mkhl.direnv
(pkgs.vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "darcula-solid";
publisher = "jussiemion";
version = "1.2.1";
hash = "sha256-tIfCkOR1Z/uRWiZhrBfOQCZT3Cu6yNjAnxjn0UJFO2U=";
};
})
];
userSettings = {
"editor.cursorSmoothCaretAnimation" = "on";
"editor.smoothScrolling" = true;
"editor.cursorBlinking" = "expand";
"workbench.colorTheme" = "Darcula Solid";
"clangd.path" = "${pkgs.clang-tools}/bin/clangd";
"clangd.arguments" = [
"--clang-tidy"
"--background-index"
"--completion-style=detailed"
"--cross-file-rename"
"--header-insertion=iwyu"
"--all-scopes-completion"
];
"editor.fontFamily" = "JetBrainsMono Nerd Font";
"zig.path" = "${pkgs.zls}/bin/zls";
};
};
};
}