feat: vscodium configuration with extensions and shared config
This commit is contained in:
parent
138fc0de19
commit
e6ca6bb25a
108
flake.lock
generated
108
flake.lock
generated
@ -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"
|
||||
]
|
||||
|
@ -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 = {
|
||||
|
@ -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;
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
34
user/modules/vscode/keybindings.json
Normal file
34
user/modules/vscode/keybindings.json
Normal 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"
|
||||
}
|
||||
]
|
164
user/modules/vscode/settings.json
Normal file
164
user/modules/vscode/settings.json
Normal 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"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user