Compare commits

..

No commits in common. "750dbfaf6eb62db8e67afc03a3ae3078bfd8f098" and "a72c204d2cba61ead60bbf02bb6a6a98b9bd3721" have entirely different histories.

4 changed files with 22 additions and 149 deletions

View file

@ -208,9 +208,6 @@
- Added [`golangci-lint`](https://golangci-lint.run/) for more diagnostics. - Added [`golangci-lint`](https://golangci-lint.run/) for more diagnostics.
- Added [`gopher.nvim`](https://github.com/olexsmir/gopher.nvim) for extra
actions in `languages.go`.
- updated default filetypes for - updated default filetypes for
[harper-ls](https://github.com/Automattic/harper) to match what they are [harper-ls](https://github.com/Automattic/harper) to match what they are
supposed to be. supposed to be.

View file

@ -1,26 +0,0 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "json2go";
version = "0.1.3";
src = fetchFromGitHub {
owner = "olexsmir";
repo = "json2go";
tag = "v${finalAttrs.version}";
hash = "sha256-2QGvPLQ7CADRNURTdnHgTCK2vyRHgtdR6YFPuTL9Ymo=";
};
vendorHash = null;
meta = {
description = "convert json to go type annotations";
mainProgram = "json2go";
homepage = "https://github.com/olexsmir/json2go";
license = lib.licenses.unlicense;
changelog = "${finalAttrs.meta.homepage}/releases/tag/${finalAttrs.version}";
};
})

View file

@ -1,17 +1,16 @@
{ {
inputs,
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: let }: let
inherit (builtins) attrNames; inherit (builtins) attrNames;
inherit (lib.options) mkEnableOption mkOption literalMD literalExpression; inherit (lib.options) mkEnableOption mkOption literalMD;
inherit (lib.modules) mkIf mkMerge; inherit (lib.modules) mkIf mkMerge;
inherit (lib.meta) getExe; inherit (lib.meta) getExe;
inherit (lib.generators) mkLuaInline; inherit (lib.generators) mkLuaInline;
inherit (lib.types) bool enum package str; inherit (lib.types) bool enum package;
inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf mkPluginSetupOption; inherit (lib.nvim.types) mkGrammarOption diagnostics deprecatedSingleOrListOf;
inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.dag) entryAfter;
inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.nvim.attrsets) mapListToAttrs;
@ -65,11 +64,9 @@
gofmt = { gofmt = {
command = "${pkgs.go}/bin/gofmt"; command = "${pkgs.go}/bin/gofmt";
}; };
gofumpt = { gofumpt = {
command = getExe pkgs.gofumpt; command = getExe pkgs.gofumpt;
}; };
golines = { golines = {
command = "${pkgs.golines}/bin/golines"; command = "${pkgs.golines}/bin/golines";
}; };
@ -171,12 +168,7 @@ in {
enable = mkEnableOption "Go language support"; enable = mkEnableOption "Go language support";
treesitter = { treesitter = {
enable = enable = mkEnableOption "Go treesitter" // {default = config.vim.languages.enableTreesitter;};
mkEnableOption "Go treesitter"
// {
default = config.vim.languages.enableTreesitter;
defaultText = literalExpression "config.vim.languages.enableTreesitter";
};
goPackage = mkGrammarOption pkgs "go"; goPackage = mkGrammarOption pkgs "go";
gomodPackage = mkGrammarOption pkgs "gomod"; gomodPackage = mkGrammarOption pkgs "gomod";
@ -186,12 +178,7 @@ in {
}; };
lsp = { lsp = {
enable = enable = mkEnableOption "Go LSP support" // {default = config.vim.lsp.enable;};
mkEnableOption "Go LSP support"
// {
default = config.vim.lsp.enable;
defaultText = literalExpression "config.vim.lsp.enable";
};
servers = mkOption { servers = mkOption {
type = deprecatedSingleOrListOf "vim.language.go.lsp.servers" (enum (attrNames servers)); type = deprecatedSingleOrListOf "vim.language.go.lsp.servers" (enum (attrNames servers));
@ -211,111 +198,51 @@ in {
}; };
type = mkOption { type = mkOption {
description = "Go formatter to use";
type = deprecatedSingleOrListOf "vim.language.go.format.type" (enum (attrNames formats)); type = deprecatedSingleOrListOf "vim.language.go.format.type" (enum (attrNames formats));
default = defaultFormat; default = defaultFormat;
description = "Go formatter to use";
}; };
}; };
dap = { dap = {
enable = enable = mkOption {
mkEnableOption "Go Debug Adapter (DAP) via `nvim-dap-go" description = "Enable Go Debug Adapter via nvim-dap-go plugin";
// { type = bool;
default = config.vim.languages.enableDAP; default = config.vim.languages.enableDAP;
defaultText = literalExpression "config.vim.languages.enableDAP"; };
};
debugger = mkOption { debugger = mkOption {
description = "Go debugger to use";
type = enum (attrNames debuggers); type = enum (attrNames debuggers);
default = defaultDebugger; default = defaultDebugger;
description = "Go debugger to use";
}; };
package = mkOption { package = mkOption {
description = "Go debugger package.";
type = package; type = package;
default = debuggers.${cfg.dap.debugger}.package; default = debuggers.${cfg.dap.debugger}.package;
description = "Go debugger package.";
}; };
}; };
extraDiagnostics = { extraDiagnostics = {
enable = enable = mkEnableOption "extra Go diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;};
mkEnableOption "extra Go diagnostics"
// {
default = config.vim.languages.enableExtraDiagnostics;
defaultText = literalExpression "config.vim.languages.enableExtraDiagnostic";
};
types = diagnostics { types = diagnostics {
langDesc = "Go"; langDesc = "Go";
inherit diagnosticsProviders; inherit diagnosticsProviders;
inherit defaultDiagnosticsProvider; inherit defaultDiagnosticsProvider;
}; };
}; };
extensions = {
gopher-nvim = {
enable = mkEnableOption "Minimalistic plugin for Go development";
setupOpts = mkPluginSetupOption "gopher-nvim" {
commands = {
go = mkOption {
type = str;
default = "go";
description = "Go binary to use";
};
gomodifytags = mkOption {
type = str;
default = getExe pkgs.gomodifytags;
defaultText = literalExpression "getExe pkgs.gomodifytags";
description = "gomodifytags binary to use";
};
gotests = mkOption {
type = str;
default = getExe pkgs.gotests;
defaultText = literalExpression "getExe pkgs.gotests";
description = "gotests binary to use";
};
impl = mkOption {
type = str;
default = getExe pkgs.impl;
defaultText = literalExpression "getExe pkgs.impl";
description = "impl binary to use";
};
iferr = mkOption {
type = str;
default = getExe pkgs.iferr;
defaultText = literalExpression "getExe pkgs.iferr";
description = "iferr binary to use";
};
json2go = mkOption {
type = str;
default = getExe inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.json2go;
defaultText = literalExpression "getExe inputs.self.packages.$${pkgs.stdenv.hostPlatform.system}.json2go";
description = "json2go binary to use";
};
};
};
};
};
}; };
config = mkIf cfg.enable (mkMerge [ config = mkIf cfg.enable (mkMerge [
(mkIf cfg.treesitter.enable { (mkIf cfg.treesitter.enable {
vim.treesitter = { vim.treesitter.enable = true;
enable = true; vim.treesitter.grammars = [
grammars = [ cfg.treesitter.goPackage
cfg.treesitter.goPackage cfg.treesitter.gomodPackage
cfg.treesitter.gomodPackage cfg.treesitter.gosumPackage
cfg.treesitter.gosumPackage cfg.treesitter.goworkPackage
cfg.treesitter.goworkPackage cfg.treesitter.gotmplPackage
cfg.treesitter.gotmplPackage ];
];
};
}) })
(mkIf cfg.lsp.enable { (mkIf cfg.lsp.enable {
@ -365,14 +292,5 @@ in {
cfg.extraDiagnostics.types); cfg.extraDiagnostics.types);
}; };
}) })
(mkIf cfg.extensions.gopher-nvim.enable {
vim.lazy.plugins.gopher-nvim = {
package = "gopher-nvim";
setupModule = "gopher";
inherit (cfg.extensions.gopher-nvim) setupOpts;
ft = ["go"];
};
})
]); ]);
} }

View file

@ -656,22 +656,6 @@
"url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz", "url": "https://github.com/ellisonleao/glow.nvim/archive/5d5954b2f22e109d4a6eba8b2618c5b96e4ee7a2.tar.gz",
"hash": "sha256-CvBcmVWBgI+m+PS7p7PmsiPtTEfqx2kpIzz4mImONIc=" "hash": "sha256-CvBcmVWBgI+m+PS7p7PmsiPtTEfqx2kpIzz4mImONIc="
}, },
"gopher-nvim": {
"type": "GitRelease",
"repository": {
"type": "GitHub",
"owner": "olexsmir",
"repo": "gopher.nvim"
},
"pre_releases": false,
"version_upper_bound": null,
"release_prefix": null,
"submodules": false,
"version": "v0.6.0",
"revision": "95fdeb571d837af9efae27fea1c0131fa756ab43",
"url": "https://api.github.com/repos/olexsmir/gopher.nvim/tarball/refs/tags/v0.6.0",
"hash": "sha256-7aDjMFMCiqub/zCDJIWUIX9Zc6+vyPQOczuOFdc/6S0="
},
"grug-far-nvim": { "grug-far-nvim": {
"type": "Git", "type": "Git",
"repository": { "repository": {