blob: e0ca68bd5773129f81a5ef6d9ea6c499fcd261eb (
plain) (
tree)
|
|
{ pkgs
, config
, ...
}:
let
pythonEnv = pkgs.python3.withPackages (p:
with p; [
black
click
isort
pylsp-mypy
requests
types-requests
pip
ipython
virtualenv
]);
in
{
programs.go = {
enable = true;
goPath = ".local/share/pkg.go";
goBin = ".local/bin.go";
package = pkgs.go_1_21;
};
home.packages = with pkgs; [
go-tools
golangci-lint
gopls
dive # explore layers in docker images
pythonEnv
kubectl
google-cloud-sdk
rnix-lsp
alejandra
nil
];
home.sessionPath = [
config.home.sessionVariables.GOBIN
];
programs.zsh.shellAliases = {
kc = "kubectl";
};
programs.vscode = {
enable = true;
# Workaround https://github.com/nix-community/home-manager/issues/3507
mutableExtensionsDir = false;
extensions = with pkgs.vscode-extensions; [
#go
golang.go
# nix
arrterian.nix-env-selector
bbenoist.nix
jnoortheen.nix-ide
# python
ms-python.python
ms-python.vscode-pylance
ms-python.black-formatter
# shell
mads-hartmann.bash-ide-vscode
# utils
ms-vscode.makefile-tools # Makefile support
mkhl.direnv # direnv
editorconfig.editorconfig # editor config for vscode
tamasfe.even-better-toml # better TOML mode
streetsidesoftware.code-spell-checker # code spell checker
github.vscode-github-actions # GHA
];
userSettings = {
# editor
editor.fontSize = 15;
"editor.formatOnSave" = true;
"editor.minimap.enabled" = false;
"editor.fontFamily" = "Monaspace Neon";
"editor.fontLigatures" = true;
"editor.rulers" = [ 80 120 ];
"editor.folding" = false;
"editor.foldingHighlight" = false;
# explorer
"explorer.sortOrder" = "default";
"explorer.autoRevealExcludes" = {
"**/result" = true;
};
# extensions
"extensions.ignoreRecommendations" = true;
"extensions.autoCheckUpdates" = false;
"extensions.autoUpdate" = false;
# files
"files.trimFinalNewLines" = true;
"files.insertFinalNewLine" = true;
"files.autoSave" = "afterDelay";
"files.autoSaveDelay" = 100; # in milliseconds
"files.exclude" = {
"**/.direnv" = true;
"**/result" = true;
};
# formatter
formatter = {
"[python]"."editor.defaultFormatter" = "ms-python.black-formatter";
};
# workbench
workbench.colorTheme = "Default Light Modern";
workbench.sideBar.location = "right";
# telemetry
"telemetry.telemetryLevel" = "off";
# terminal
"terminal.integrated.fontFamily" = "Monaspace Xenon";
"terminal.integrated.fontSize" = 13;
# go
"go.lintTool" = "golangci-lint";
"go.toolsManagemenent.checkForUpdates" = "off";
"go.toolsManagemenent.autoUpdate" = false;
"gopls" = {
"format.gofumpt" = true;
"ui.semanticTokens" = true;
};
# shell
bash = {
"bashIde.shellcheckPath" = "${pkgs.shellcheck}/bin/shellcheck";
"shfmt.executablePath" = "${pkgs.shfmt}/bin/shfmt";
};
# nix
"nix.serverPath" = "nil";
"nix.serverSettings" = {
"nil" = {
"formatting" = {
"command" = [ "nixpkgs-fmt" ];
};
};
};
"nix.enableLanguageServer" = true;
};
};
home.sessionVariables = with config.xdg; {
IPYTHONDIR = "${cacheHome}/ipython";
PIP_LOG = "${cacheHome}/pip/pip.log";
PYLINTHOME = "${cacheHome}/pylint";
PYTHON_EGG_CACHE = "${cacheHome}/python-eggs";
MYPY_CACHE_DIR = "${cacheHome}/mypy";
};
}
|