user/settings/development/golang.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | {
config,
pkgs,
lib,
...
}:
{
home.packages = with pkgs; [
gofumpt
gopls
gotools
golines
delve
gomodifytags
golangci-lint
(golangci-lint-langserver.overrideAttrs (old: {
version = "0.0.11-unstable-20250719";
src = pkgs.fetchFromGitHub {
owner = "nametake";
repo = "golangci-lint-langserver";
rev = "5725c355362522eabc923ef100072fc1f3e23313";
hash = "sha256-1Ka34ohImM+sdVtYkvrZ+xzHFOmJyz8S18liS9/kdsg=";
};
vendorHash = "${old.vendorHash}";
}))
];
programs.go = {
enable = true;
env = {
GOTOOLCHAIN = "local"; # use installed go tools
GOPATH = "${config.home.homeDirectory}/projects/go";
};
};
home.shellAliases = {
gom = "go mod";
gomt = "go mod tidy";
gomd = "go mod download";
gog = "go get";
gogu = "go get -u";
};
programs.emacs.extraPackages =
epkgs:
(with epkgs; [
go-eldoc
go-tag
templ-ts-mode
(treesit-grammars.with-grammars (
grammars: with grammars; [
tree-sitter-go
tree-sitter-gowork
tree-sitter-gomod
tree-sitter-templ
]
))
]);
programs.nixvim.plugins.lsp.servers = {
gopls.enable = true;
golangci_lint_ls.enable = true;
};
programs.zed-editor.extensions = [
"live-template"
"golangci-lint"
"gosum"
];
}
|