feat: vscodium configuration with extensions and shared config

This commit is contained in:
Michael Thomas 2023-11-13 12:43:45 -05:00
parent 138fc0de19
commit e6ca6bb25a
5 changed files with 360 additions and 21 deletions

108
flake.lock generated
View File

@ -22,6 +22,22 @@
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
@ -41,6 +57,24 @@
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
@ -55,9 +89,9 @@
"type": "github"
}
},
"flake-utils_2": {
"flake-utils_3": {
"inputs": {
"systems": "systems_2"
"systems": "systems_3"
},
"locked": {
"lastModified": 1681202837,
@ -73,9 +107,9 @@
"type": "github"
}
},
"flake-utils_3": {
"flake-utils_4": {
"inputs": {
"systems": "systems_4"
"systems": "systems_5"
},
"locked": {
"lastModified": 1681202837,
@ -112,10 +146,30 @@
"type": "github"
}
},
"nixos-wsl": {
"nix-vscode-extensions": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1698628736,
"narHash": "sha256-ua0xK8rzo6g07ZzSMmhGGzaESaxIxq6rfgWyTwXQBKY=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "6dabe9a8649863bff07d65829ab6f09ac2cf1aba",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"type": "github"
}
},
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
@ -135,6 +189,22 @@
}
},
"nixpkgs": {
"locked": {
"lastModified": 1684570954,
"narHash": "sha256-FX5y4Sm87RWwfu9PI71XFvuRpZLowh00FQpIJ1WfXqE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3005f20ce0aaa58169cdee57c8aa12e5f1b6e1b3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1698434055,
"narHash": "sha256-Phxi5mUKSoL7A0IYUiYtkI9e8NcGaaV5PJEaJApU1Ko=",
@ -149,7 +219,7 @@
"type": "indirect"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1681358109,
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
@ -184,8 +254,9 @@
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
"nix-vscode-extensions": "nix-vscode-extensions",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"rust-overlay": "rust-overlay",
"unstable": "unstable",
@ -195,8 +266,8 @@
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2"
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1698545594,
@ -272,6 +343,21 @@
"type": "github"
}
},
"systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"unstable": {
"locked": {
"lastModified": 1698318101,
@ -289,7 +375,7 @@
},
"utils": {
"inputs": {
"systems": "systems_3"
"systems": "systems_4"
},
"locked": {
"lastModified": 1694529238,
@ -307,7 +393,7 @@
},
"vscode-server": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_4",
"nixpkgs": [
"nixpkgs"
]

View File

@ -8,6 +8,7 @@
utils.url = "github:numtide/flake-utils";
rust-overlay.url = "github:oxalica/rust-overlay";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
nixos-wsl = {
url = "github:nix-community/NixOS-WSL";
@ -33,7 +34,7 @@
};
};
outputs = { self, nixpkgs, unstable, nur, utils, rust-overlay, nixos-wsl, vscode-server, darwin, home-manager, ... }@inputs: {
outputs = { self, nixpkgs, unstable, nur, utils, rust-overlay, nix-vscode-extensions, nixos-wsl, vscode-server, darwin, home-manager, ... }@inputs: {
# This repo's overlay plus any other overlays you use
# If you want to use packages from flakes that are not nixpkgs (such as NUR), add their overlays here.\
@ -46,6 +47,7 @@
}
);
rust-overlay = rust-overlay.overlays.default;
vscode-extensions = nix-vscode-extensions.overlays.default;
};
overlaysModule = {

View File

@ -1,15 +1,68 @@
{ config, pkgs, libs, ... }:
{
{ config, pkgs, ... }:
let
package = pkgs.vscodium;
vscodePname = package.pname;
configDir = {
"vscode" = "Code";
"vscode-insiders" = "Code - Insiders";
"vscodium" = "VSCodium";
}.${vscodePname};
userDir = if pkgs.stdenv.hostPlatform.isDarwin then
"Library/Application Support/${configDir}/User"
else
"${config.xdg.configHome}/${configDir}/User";
configFilePath = "${userDir}/settings.json";
keybindingsFilePath = "${userDir}/keybindings.json";
in {
xdg.configFile."${config.home.homeDirectory}/${configFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/settings.json";
xdg.configFile."${config.home.homeDirectory}/${keybindingsFilePath}".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Projects/nix-dots/user/modules/vscode/keybindings.json";
programs = {
vscode = {
enable = true;
extensions = [
# pkgs.vscode-extensions.bbenoist.Nix
inherit package;
extensions = with pkgs.open-vsx; [
# Editor
vscodevim.vim
pkgs.vscode-marketplace.miguelsolorio.min-theme
streetsidesoftware.code-spell-checker
# Git
mhutchie.git-graph
waderyan.gitblame
# Web Development
astro-build.astro-vscode
redwan-hossain.auto-rename-tag-clone
bradlc.vscode-tailwindcss
johnsoncodehk.volar
svelte.svelte-vscode
dbaeumer.vscode-eslint
esbenp.prettier-vscode
antfu.iconify
csstools.postcss
# Dart / Flutter
dart-code.dart-code
# Java
redhat.java
vscjava.vscode-java-debug
vscjava.vscode-java-test
vscjava.vscode-maven
vscjava.vscode-java-dependency
# Nix
jnoortheen.nix-ide
];
# userSettings = {
# "editor.fontFamily" = "'FiraCode Nerd Font', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'";
# "editor.tabSize" = 2;
# };
};
};
}
}

View File

@ -0,0 +1,34 @@
[
{
"key": "ctrl+alt+q",
"command": "workbench.action.quickOpenView"
},
{
"key": "ctrl+q",
"command": "-workbench.action.quickOpenView"
},
{
"key": "ctrl+shift+alt+q",
"command": "workbench.action.quickOpenNavigatePreviousInViewPicker",
"when": "inQuickOpen && inViewsPicker"
},
{
"key": "ctrl+shift+q",
"command": "-workbench.action.quickOpenNavigatePreviousInViewPicker",
"when": "inQuickOpen && inViewsPicker"
},
{
"key": "ctrl+alt+q",
"command": "workbench.action.quickOpenNavigateNextInViewPicker",
"when": "inQuickOpen && inViewsPicker"
},
{
"key": "ctrl+q",
"command": "-workbench.action.quickOpenNavigateNextInViewPicker",
"when": "inQuickOpen && inViewsPicker"
},
{
"key": "shift shift",
"command": "workbench.action.quickOpen"
}
]

View File

@ -0,0 +1,164 @@
{
"git.enableSmartCommit": true,
"git.autofetch": true,
"git.confirmSync": false,
"editor.tabSize": 2,
"editor.fontSize": 14,
"editor.fontFamily": "'CaskaydiaCove Nerd Font', 'Cascadia Code', Menlo, Monaco, 'Courier New', monospace",
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"editor.lineHeight": 20,
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
},
"explorer.confirmDragAndDrop": false,
"intelephense.stubs": [
"apache",
"bcmath",
"bz2",
"calendar",
"com_dotnet",
"Core",
"ctype",
"curl",
"date",
"dba",
"dom",
"enchant",
"exif",
"FFI",
"fileinfo",
"filter",
"fpm",
"ftp",
"gd",
"gettext",
"gmp",
"hash",
"iconv",
"imap",
"intl",
"json",
"ldap",
"libxml",
"mbstring",
"meta",
"mysqli",
"oci8",
"odbc",
"openssl",
"pcntl",
"pcre",
"PDO",
"pdo_ibm",
"pdo_mysql",
"pdo_pgsql",
"pdo_sqlite",
"pgsql",
"Phar",
"posix",
"pspell",
"readline",
"Reflection",
"session",
"shmop",
"SimpleXML",
"snmp",
"soap",
"sockets",
"sodium",
"SPL",
"sqlite3",
"standard",
"superglobals",
"sysvmsg",
"sysvsem",
"sysvshm",
"tidy",
"tokenizer",
"xml",
"xmlreader",
"xmlrpc",
"xmlwriter",
"xsl",
"Zend OPcache",
"zip",
"zlib",
"wordpress"
],
"terminal.integrated.fontFamily": "'CaskaydiaCove Nerd Font Mono', 'Cascadia Mono PL'",
"terminal.integrated.fontSize": 13,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"svelte.enable-ts-plugin": true,
"svelte.plugin.svelte.note-new-transformation": false,
"editor.accessibilitySupport": "off",
"editor.smoothScrolling": true,
"workbench.list.smoothScrolling": true,
"window.commandCenter": false,
"java.eclipse.downloadSources": true,
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/opt/homebrew/Cellar/openjdk@17/17.0.6/libexec/openjdk.jdk/Contents/Home",
"default": true
}
],
"editor.minimap.enabled": false,
"eslint.format.enable": true,
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.formatOnSave": true,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"[markdown]": {
"editor.wordWrap": "bounded"
},
"[latex]": {
"editor.wordWrap": "bounded"
},
"workbench.editor.enablePreview": false,
"typescript.updateImportsOnFileMove.enabled": "always",
"diffEditor.ignoreTrimWhitespace": false,
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[dart]": {
"editor.formatOnSave": true,
"editor.formatOnType": true,
"editor.rulers": [
80
],
"editor.selectionHighlight": false,
"editor.suggestSelection": "first",
"editor.tabCompletion": "onlySnippets",
"editor.wordBasedSuggestions": false
},
"[svelte]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"workbench.colorTheme": "Min Dark",
"nix.enableLanguageServer": true,
"nix.serverPath": "nil"
}