From 8738fa3066bd75433db00f713ae651ad8db6beda Mon Sep 17 00:00:00 2001 From: Jan-Bulthuis Date: Wed, 16 Apr 2025 13:03:45 +0200 Subject: [PATCH] Fixed vscode customization --- user-modules/development/language/cpp.nix | 17 +-- user-modules/development/language/haskell.nix | 16 +-- user-modules/development/language/js.nix | 10 +- user-modules/development/language/jupyter.nix | 12 ++- user-modules/development/language/nix.nix | 24 +++-- user-modules/development/language/python.nix | 22 ++-- user-modules/development/language/rust.nix | 24 +++-- user-modules/development/language/tex.nix | 8 +- user-modules/development/utility/docker.nix | 10 +- user-modules/vscode/default.nix | 102 +++++++++--------- 10 files changed, 133 insertions(+), 112 deletions(-) diff --git a/user-modules/development/language/cpp.nix b/user-modules/development/language/cpp.nix index 633f505..7e8641b 100644 --- a/user-modules/development/language/cpp.nix +++ b/user-modules/development/language/cpp.nix @@ -33,14 +33,17 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - ms-vscode.cpptools - ms-vscode.cmake-tools - ms-vscode.cpptools-extension-pack - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + ms-vscode.cpptools + ms-vscode.cmake-tools + ms-vscode.cpptools-extension-pack + ]; - userSettings = { - # "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4 }"; + userSettings = { + # TODO: Add setting to set the compiler, it currently needs to be set for each workspace individually + # "C_Cpp.clang_format_fallbackStyle" = "{ BasedOnStyle: Google, IndentWidth: 4 }"; + }; }; }; diff --git a/user-modules/development/language/haskell.nix b/user-modules/development/language/haskell.nix index c273aae..abec7ee 100644 --- a/user-modules/development/language/haskell.nix +++ b/user-modules/development/language/haskell.nix @@ -23,14 +23,16 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - haskell.haskell - justusadam.language-haskell - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + haskell.haskell + justusadam.language-haskell + ]; - userSettings = { - "[haskell]" = { }; - # "haskell.formattingProvider" = "fourmolu"; + userSettings = { + "[haskell]" = { }; + # "haskell.formattingProvider" = "fourmolu"; + }; }; }; diff --git a/user-modules/development/language/js.nix b/user-modules/development/language/js.nix index 0905979..ff38384 100644 --- a/user-modules/development/language/js.nix +++ b/user-modules/development/language/js.nix @@ -23,11 +23,13 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - bradlc.vscode-tailwindcss - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + bradlc.vscode-tailwindcss + ]; - userSettings = { }; + userSettings = { }; + }; }; # Neovim configuration diff --git a/user-modules/development/language/jupyter.nix b/user-modules/development/language/jupyter.nix index 438528c..242bca7 100644 --- a/user-modules/development/language/jupyter.nix +++ b/user-modules/development/language/jupyter.nix @@ -28,12 +28,14 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - ms-toolsai.jupyter - ms-toolsai.jupyter-renderers - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + ms-toolsai.jupyter + ms-toolsai.jupyter-renderers + ]; - userSettings = { }; + userSettings = { }; + }; }; # Neovim configuration diff --git a/user-modules/development/language/nix.nix b/user-modules/development/language/nix.nix index 3cd9e4d..b8fb9f8 100644 --- a/user-modules/development/language/nix.nix +++ b/user-modules/development/language/nix.nix @@ -32,18 +32,20 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; - userSettings = { - "[nix]" = { - "editor.tabSize" = 2; - }; - "nix.enableLanguageServer" = true; - "nix.serverPath" = "nixd"; - "nix.serverSettings" = { - nixd = { - formatting = { - command = [ "nixfmt" ]; + userSettings = { + "[nix]" = { + "editor.tabSize" = 2; + }; + "nix.enableLanguageServer" = true; + "nix.serverPath" = "nixd"; + "nix.serverSettings" = { + nixd = { + formatting = { + command = [ "nixfmt" ]; + }; }; }; }; diff --git a/user-modules/development/language/python.nix b/user-modules/development/language/python.nix index 46a8fca..1868b86 100644 --- a/user-modules/development/language/python.nix +++ b/user-modules/development/language/python.nix @@ -34,17 +34,19 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - ms-python.python - ms-python.debugpy - ms-python.vscode-pylance - ms-python.black-formatter - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + ms-python.python + ms-python.debugpy + ms-python.vscode-pylance + ms-python.black-formatter + ]; - userSettings = { - "python.defaultInterpreterPath" = "\${env:PYTHONINTERPRETER}"; - "[python]" = { - "editor.defaultFormatter" = "ms-python.black-formatter"; + userSettings = { + "python.defaultInterpreterPath" = "\${env:PYTHONINTERPRETER}"; + "[python]" = { + "editor.defaultFormatter" = "ms-python.black-formatter"; + }; }; }; }; diff --git a/user-modules/development/language/rust.nix b/user-modules/development/language/rust.nix index ed50f25..cbe7682 100644 --- a/user-modules/development/language/rust.nix +++ b/user-modules/development/language/rust.nix @@ -31,19 +31,21 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - rust-lang.rust-analyzer - vadimcn.vscode-lldb - tamasfe.even-better-toml - serayuzgur.crates - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + rust-lang.rust-analyzer + vadimcn.vscode-lldb + tamasfe.even-better-toml + serayuzgur.crates + ]; - userSettings = { - "[rust]" = { - "editor.inlayHints.enabled" = "off"; + userSettings = { + "[rust]" = { + "editor.inlayHints.enabled" = "off"; + }; + "rust-analyzer.check.command" = "clippy"; + "rust-analyzer.showUnlinkedFileNotification" = false; }; - "rust-analyzer.check.command" = "clippy"; - "rust-analyzer.showUnlinkedFileNotification" = false; }; }; diff --git a/user-modules/development/language/tex.nix b/user-modules/development/language/tex.nix index 1c50a58..1cbe7b9 100644 --- a/user-modules/development/language/tex.nix +++ b/user-modules/development/language/tex.nix @@ -29,10 +29,12 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ jnoortheen.nix-ide ]; - userSettings = { - "[tex]" = { }; + userSettings = { + "[tex]" = { }; + }; }; }; diff --git a/user-modules/development/utility/docker.nix b/user-modules/development/utility/docker.nix index 67ba34c..5a043e8 100644 --- a/user-modules/development/utility/docker.nix +++ b/user-modules/development/utility/docker.nix @@ -27,11 +27,13 @@ in # VSCode configuration programs.vscode = { - extensions = with pkgs.vscode-extensions; [ - ms-azuretools.vscode-docker - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + ms-azuretools.vscode-docker + ]; - userSettings = { + userSettings = { + }; }; }; diff --git a/user-modules/vscode/default.nix b/user-modules/vscode/default.nix index dea277f..14b1149 100644 --- a/user-modules/vscode/default.nix +++ b/user-modules/vscode/default.nix @@ -37,63 +37,65 @@ in enable = true; mutableExtensionsDir = false; - extensions = with pkgs.vscode-extensions; [ - eamodio.gitlens - ms-vscode.hexeditor - mkhl.direnv - usernamehw.errorlens - gruntfuggly.todo-tree - github.copilot - github.copilot-chat - tomoki1207.pdf - ms-vsliveshare.vsliveshare - ]; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + eamodio.gitlens + ms-vscode.hexeditor + mkhl.direnv + usernamehw.errorlens + gruntfuggly.todo-tree + github.copilot + github.copilot-chat + tomoki1207.pdf + ms-vsliveshare.vsliveshare + ]; - userSettings = - let - font-family = mkForce "'${cfg.codeFont.name}', '${cfg.fallbackFont.name}'"; - # TODO: Move the conversion factor to theme settings - font-size = mkForce cfg.codeFont.recommendedSize; # Convert pt to px - in - { - # Font setup - "editor.fontFamily" = font-family; - "editor.inlayHints.fontFamily" = font-family; - "editor.inlineSuggest.fontFamily" = font-family; - "editor.fontSize" = font-size; - "editor.fontLigatures" = true; - "terminal.integrated.fontFamily" = font-family; - "terminal.integrated.fontSize" = font-size; - "chat.editor.fontFamily" = font-family; # TODO: Change this font to the standard UI font - "chat.editor.fontSize" = font-size; - "debug.console.fontFamily" = font-family; - "debug.console.fontSize" = font-size; - "scm.inputFontFamily" = font-family; # TODO: Change this font to the standard UI font - "scm.inputFontSize" = font-size; - "markdown.preview.fontFamily" = mkForce theme.fonts.sansSerif.name; # TODO: Change this font to the standard UI font - "markdown.preview.fontSize" = mkForce theme.fonts.sansSerif.recommendedSize; + userSettings = + let + font-family = mkForce "'${cfg.codeFont.name}', '${cfg.fallbackFont.name}'"; + # TODO: Move the conversion factor to theme settings + font-size = mkForce cfg.codeFont.recommendedSize; # Convert pt to px + in + { + # Font setup + "editor.fontFamily" = font-family; + "editor.inlayHints.fontFamily" = font-family; + "editor.inlineSuggest.fontFamily" = font-family; + "editor.fontSize" = font-size; + "editor.fontLigatures" = true; + "terminal.integrated.fontFamily" = font-family; + "terminal.integrated.fontSize" = font-size; + "chat.editor.fontFamily" = font-family; # TODO: Change this font to the standard UI font + "chat.editor.fontSize" = font-size; + "debug.console.fontFamily" = font-family; + "debug.console.fontSize" = font-size; + "scm.inputFontFamily" = font-family; # TODO: Change this font to the standard UI font + "scm.inputFontSize" = font-size; + "markdown.preview.fontFamily" = mkForce theme.fonts.sansSerif.name; # TODO: Change this font to the standard UI font + "markdown.preview.fontSize" = mkForce theme.fonts.sansSerif.recommendedSize; - # Formatting - "editor.formatOnSave" = true; - "editor.tabSize" = 4; + # Formatting + "editor.formatOnSave" = true; + "editor.tabSize" = 4; - # Layout - "window.menuBarVisibility" = "hidden"; + # Layout + "window.menuBarVisibility" = "hidden"; - # Git settings - "git.autofetch" = true; - "git.enableSmartCommit" = false; - "git.suggestSmartCommit" = false; + # Git settings + "git.autofetch" = true; + "git.enableSmartCommit" = false; + "git.suggestSmartCommit" = false; - # Disable update notifications - "update.mode" = "none"; + # Disable update notifications + "update.mode" = "none"; - # TODO: Move to direnv module - # Ignore direnv folder - "files.exclude" = { - ".direnv" = true; + # TODO: Move to direnv module + # Ignore direnv folder + "files.exclude" = { + ".direnv" = true; + }; }; - }; + }; }; }; }