nix-managed-macbook/programs/vscode.nix

197 lines
5.3 KiB
Nix
Raw Normal View History

2022-09-28 17:50:47 +05:30
{ config, pkgs, ... }:
let
marketplaceExtensions = [
2024-02-17 16:09:46 +05:30
"cs128/cs128-clang-tidy"
"dawhite/mustache"
2024-08-31 10:51:38 +05:30
"donjayamanne/githistory"
"ivandemchenko/roc-lang-unofficial"
"kirozen/wordcounter"
"pedrorgirardi/vscode-cljfmt"
2024-08-31 10:51:38 +05:30
"viablelab/capitaliz"
];
in {
2022-09-28 17:50:47 +05:30
programs.vscode = {
enable = true;
2024-08-31 10:51:38 +05:30
mutableExtensionsDir = false;
2022-09-28 17:50:47 +05:30
extensions = with pkgs.vscode-extensions;
[
2024-08-31 10:51:38 +05:30
pkgs.vscode-extensions."13xforever".language-x86-64-assembly
2022-09-28 17:50:47 +05:30
bierner.markdown-mermaid
davidanson.vscode-markdownlint
2022-10-18 09:33:51 +05:30
dotjoshjohnson.xml
2022-09-28 17:50:47 +05:30
esbenp.prettier-vscode
2023-04-27 19:32:40 +05:30
golang.go
2022-09-28 17:50:47 +05:30
haskell.haskell
jdinhlife.gruvbox
jebbs.plantuml
2022-09-28 17:50:47 +05:30
jnoortheen.nix-ide
justusadam.language-haskell
kamikillerto.vscode-colorize
2024-02-17 16:09:46 +05:30
llvm-vs-code-extensions.vscode-clangd
2024-08-31 10:51:38 +05:30
mesonbuild.mesonbuild
2024-02-17 16:09:46 +05:30
mkhl.direnv
2024-08-31 10:51:38 +05:30
ms-python.black-formatter
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
2023-10-19 20:09:04 +05:30
rust-lang.rust-analyzer
2022-09-28 17:50:47 +05:30
skellock.just
streetsidesoftware.code-spell-checker
2024-02-17 16:09:46 +05:30
tamasfe.even-better-toml
2022-09-28 17:50:47 +05:30
timonwong.shellcheck
2024-02-17 16:09:46 +05:30
twxs.cmake
2022-09-28 17:50:47 +05:30
tyriar.sort-lines
2024-08-31 10:51:38 +05:30
vadimcn.vscode-lldb
wmaurer.change-case
2022-09-28 17:50:47 +05:30
zhuangtongfa.material-theme
2024-08-31 10:51:38 +05:30
ziglang.vscode-zig
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace (builtins.filter
({ publisher, name, ... }: builtins.elem (publisher + "/" + name) marketplaceExtensions)
(import ./vscode/extensions.nix).extensions);
2022-09-28 17:50:47 +05:30
userSettings = {
debug.console.fontSize = 13;
diffEditor.ignoreTrimWhitespace = true;
editor = {
accessibilitySupport = "off";
bracketPairColorization.enabled = true;
folding = false;
fontFamily = "'DM Mono', NanumGothicCoding, Menlo, Monaco, 'Courier New', monospace";
fontLigatures = true;
fontSize = 13;
2023-06-11 10:43:58 +05:30
guides = {
indentation = false;
bracketPairs = true;
};
2022-09-28 17:50:47 +05:30
inlineSuggest.enabled = true;
minimap.enabled = false;
renderControlCharacters = true;
renderWhitespace = "none";
rulers = [ 100 ];
tabSize = 2;
};
explorer.confirmDragAndDrop = false;
extensions.ignoreRecommendations = false;
files = {
associations = {
"*.co" = "javascript";
"*.rkt" = "clojure";
".envrc*" = "shellscript";
};
autoSave = "afterDelay";
autoSaveDelay = 60000;
2022-09-28 17:50:47 +05:30
exclude = {
"**/.git" = true;
"**/.svn" = true;
"**/.hg" = true;
"**/CVS" = true;
"**/.DS_Store" = true;
"**/Thumbs.db" = true;
"**/dist-newstyle" = true;
"**/node_modules" = true;
"**/.hie" = true;
"**/.direnv" = true;
};
insertFinalNewline = true;
trimFinalNewlines = true;
trimTrailingWhitespace = true;
};
haskell = {
manageHLS = "PATH";
plugin.tactics.config.timeout_duration = 5;
};
2024-04-22 19:42:58 +05:30
roc-lang.language-server.exe = "/nix/store/1m7xfjx1b79s39cxl52aq77z22yffs4a-roc-0.0.1/bin/roc_language_server";
2022-09-28 17:50:47 +05:30
nix = {
formatterPath = "${pkgs.nixfmt}/bin/nixfmt";
2024-08-30 12:18:11 +05:30
enableLanguageServer = true;
serverPath = "nixd";
serverSettings = {
nixd = {
formatting.command = [ "nixfmt" ];
};
};
2022-09-28 17:50:47 +05:30
};
oneDarkPro = {
editorTheme = "Shadow";
vivid = true;
};
spellright = {
documentTypes = [ "markdown" "latex" ];
language = [ "en" ];
};
telemetry = {
enableCrashReporter = false;
enableTelemetry = false;
};
terminal.integrated = {
copyOnSelection = true;
fontFamily = "'DM Mono', NanumGothicCoding, Menlo, Monaco, 'Courier New', monospace";
scrollback = 10000;
shell.osx = "${pkgs.fish}/bin/fish";
shellIntegration.enabled = true;
};
window.autoDetectColorScheme = true;
workbench = {
2023-12-14 09:07:10 +05:30
activityBar = {
visible = false;
location = "hidden";
};
2022-09-28 17:50:47 +05:30
colorTheme = "Gruvbox Dark Hard";
editor.highlightModifiedTabs = true;
preferredDarkColorTheme = "Gruvbox Dark Hard";
startupEditor = "none";
};
update.mode = "none";
"[haskell]" = { editor.defaultFormatter = "haskell.haskell"; };
"[javascript]" = { editor.defaultFormatter = "esbenp.prettier-vscode"; };
2022-12-07 11:32:44 +05:30
"[json]" = { editor.defaultFormatter = "esbenp.prettier-vscode"; };
2023-03-03 16:45:10 +05:30
"[python]" = { editor.defaultFormatter = "ms-python.black-formatter"; };
2024-01-31 19:23:23 +05:30
black-formatter.args = [ "--line-length" "100" ];
2022-09-28 17:50:47 +05:30
};
keybindings = [
{
key = "ctrl+shift+up";
command = "editor.action.insertCursorAbove";
when = "editorTextFocus";
}
{
key = "alt+cmd+up";
command = "-editor.action.insertCursorAbove";
when = "editorTextFocus";
}
{
key = "ctrl+shift+down";
command = "editor.action.insertCursorBelow";
when = "editorTextFocus";
}
{
key = "alt+cmd+down";
command = "-editor.action.insertCursorBelow";
when = "editorTextFocus";
}
{
key = "ctrl+cmd+t";
command = "terminal.focus";
}
];
};
}