Skip to content

Commit

Permalink
plugins/gitlab: init
Browse files Browse the repository at this point in the history
  • Loading branch information
GaetanLepage authored and nix-infra-bot committed Nov 30, 2024
1 parent 880a570 commit 09dfa03
Show file tree
Hide file tree
Showing 2 changed files with 215 additions and 0 deletions.
137 changes: 137 additions & 0 deletions plugins/by-name/gitlab/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
{
lib,
pkgs,
...
}:
let
inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types;
in
lib.nixvim.neovim-plugin.mkNeovimPlugin {
name = "gitlab";
originalName = "gitlab.vim";
package = "gitlab-vim";

maintainers = [ lib.maintainers.GaetanLepage ];

extraOptions = {
nodePackage = lib.mkPackageOption pkgs "nodejs" {
nullable = true;
default = null;
};
};

extraConfig = cfg: {
extraPackages = [ cfg.nodePackage ];
};

settingsOptions = {
gitlab_url = defaultNullOpts.mkStr "https://gitlab.com" ''
The GitLab instance url to use if not `https://gitlab.com`.
'';

statuslines = {
enable = defaultNullOpts.mkBool true ''
Whether to enable statuslines.
'';
};

resource_editing = {
enable = defaultNullOpts.mkBool false ''
Whether to enable resource editing.
'';
};

minimal_message_level = defaultNullOpts.mkUnsignedInt 0 ''
Minimal message level for logs.
'';

code_suggestions = {
auto_filetypes =
defaultNullOpts.mkListOf types.str
[
"c"
"cpp"
"csharp"
"go"
"java"
"javascript"
"javascriptreact"
"kotlin"
"markdown"
"objective-c"
"objective-cpp"
"php"
"python"
"ruby"
"rust"
"scala"
"sql"
"swift"
"terraform"
"typescript"
"typescriptreact"
"sh"
"html"
"css"
]
''
Filetypes to automatically invoke `|gitlab.code_suggestions.start()|`.
'';

enabled = defaultNullOpts.mkBool true ''
Whether to enable `|gitlab-code-suggestions|` via the LSP binary.
'';

fix_newlines = defaultNullOpts.mkBool true ''
Whether to replace newlines that have become null-byte due to switching between encodings.
'';

lsp_binary_path = defaultNullOpts.mkStr' {
pluginDefault = "node";
example = lib.literalExpression "lib.getExe pkgs.nodejs";
description = ''
The path where the `node` executable is available.
By default, this option is set to `"node"` which will look for nodejs in your `$PATH`.
To ensure that `node` will always be in your `$PATH`, you may set the `nodePackage` option.
Alternatively, you can set this option to `lib.getExe pkgs.nodejs` (or any other package).
'';
};

offset_encoding = defaultNullOpts.mkStr "utf-16" ''
Which offset encoding to use.
'';

redact_secrets = defaultNullOpts.mkBool true ''
Whether to redact secrets.
'';
};

language_server = {
workspace_settings = {
codeCompletion = {
enableSecretRedaction = defaultNullOpts.mkBool true ''
Whether to enable secret redactions in completion.
'';
};
telemetry = {
enabled = defaultNullOpts.mkBool true ''
Whether to enable telemetry.
'';

trackingUrl = defaultNullOpts.mkStr null ''
URL of the telemetry service.
'';
};
};
};
};

settingsExample = {
code_suggestions = {
auto_filetypes = [ "ruby" ];
};
};
}
78 changes: 78 additions & 0 deletions tests/test-sources/plugins/by-name/gitlab/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{
empty = {
plugins.gitlab.enable = true;
};

defaults = {
plugins.gitlab = {
enable = true;

settings = {
gitlab_url = "https://gitlab.com";
statuslines = {
enable = true;
};
resource_editing = {
enable = false;
};
minimal_message_level = 0;
code_suggestions = {
auto_filetypes = [
"c"
"cpp"
"csharp"
"go"
"java"
"javascript"
"javascriptreact"
"kotlin"
"markdown"
"objective-c"
"objective-cpp"
"php"
"python"
"ruby"
"rust"
"scala"
"sql"
"swift"
"terraform"
"typescript"
"typescriptreact"
"sh"
"html"
"css"
];
enabled = true;
fix_newlines = true;
lsp_binary_path = "node";
offset_encoding = "utf-16";
redact_secrets = true;
};
language_server = {
workspace_settings = {
codeCompletion = {
enableSecretRedaction = true;
};
telemetry = {
enabled = true;
trackingUrl = null;
};
};
};
};
};
};

example = {
plugins.gitlab = {
enable = true;

settings = {
code_suggestions = {
auto_filetypes = [ "ruby" ];
};
};
};
};
}

0 comments on commit 09dfa03

Please sign in to comment.