{ config, pkgs, ... }:
{
home.packages = with pkgs; [
gofumpt
gopls
gotools
golines
delve
gomodifytags
golangci-lint
golangci-lint-langserver
];
programs.go = {
enable = true;
env = {
GOTOOLCHAIN = "local"; # use installed go tools
GOPATH = "${config.home.homeDirectory}/projects/go";
};
};
home.sessionPath = [ (config.programs.go.env.GOPATH + "/bin") ];
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"
];
}
user/settings/development/golang.nix (view raw)