{ config, lib, pkgs, ... }: let cfg = config.modules.programs.vscode; in { options.modules.programs.vscode = { enable = lib.mkOption { default = false; example = true; }; }; config = lib.mkIf cfg.enable { environment.sessionVariables.NIXOS_OZONE_WL = "1"; home.programs.vscode = { enable = true; extensions = with pkgs.vscode-extensions; [ asvetliakov.vscode-neovim brettm12345.nixfmt-vscode coolbear.systemd-unit-file editorconfig.editorconfig golang.go graphql.vscode-graphql-syntax mattn.lisp # mkhl.direnv ms-python.vscode-pylance ms-vscode.cpptools ms-vscode.hexeditor piousdeer.adwaita-theme # redhat.java # sumneko.lua ]; userSettings = { "editor.renderLineHighlight" = "none"; "extensions.experimental.affinity" = { "asvetliakov.vscode-neovim" = 1; }; "files.autoSave" = "off"; "window.autoDetectColorScheme" = true; "window.commandCenter" = true; "window.titleBarStyle" = "custom"; "workbench.iconTheme" = null; "workbench.preferredDarkColorTheme" = "Adwaita Dark"; "workbench.preferredLightColorTheme" = "Adwaita Light"; "workbench.tree.indent" = 12; }; }; }; }