nix-community.nixvim/plugins/by-name/kulala/default.nix
2024-11-16 16:43:44 +00:00

190 lines
4.7 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ lib, ... }:
let
inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types;
in
lib.nixvim.neovim-plugin.mkNeovimPlugin {
name = "kulala";
originalName = "kulala.nvim";
package = "kulala-nvim";
maintainers = [ lib.maintainers.BoneyPatel ];
settingsOptions = {
curl_path = defaultNullOpts.mkStr "curl" ''
Path to the cURL binary. Set this if cURL is installed in a non-standard location.
'';
display_mode =
defaultNullOpts.mkEnumFirstDefault
[
"split"
"float"
]
''
Defines how the request/response is displayed. Options are "split" or "float".
'';
split_direction =
defaultNullOpts.mkEnumFirstDefault
[
"vertical"
"horizontal"
]
''
Defines the direction of the split window. Options are "vertical" or "horizontal".
'';
default_view =
defaultNullOpts.mkEnumFirstDefault
[
"body"
"headers"
"headers_body"
]
''
Sets the default view mode for responses. Options are "body", "headers", or "headers_body".
'';
default_env = defaultNullOpts.mkStr "dev" ''
Sets the default environment for requests. Common options are "dev", "test", or "prod".
'';
debug = defaultNullOpts.mkBool false ''
Enables or disables debug mode.
'';
contenttypes =
defaultNullOpts.mkAttrsOf types.anything
{
"application/json" = {
ft = "json";
formatter = [
"jq"
"."
];
pathresolver.__raw = "require('kulala.parser.jsonpath').parse";
};
"application/xml" = {
ft = "xml";
formatter = [
"xmllint"
"--format"
"-"
];
pathresolver = [
"xmllint"
"--xpath"
"{{path}}"
"-"
];
};
"text/html" = {
ft = "html";
formatter = [
"xmllint"
"--format"
"--html"
"-"
];
pathresolver = [ ];
};
}
''
Defines formatters and path resolvers for specific content types.
'';
show_icons =
defaultNullOpts.mkEnumFirstDefault
[
"on_request"
"above_request"
"below_request"
]
''
Determines where icons are displayed relative to requests. Options are `"on_request"`, `"above_request"`, `"below_request"`, or `{__raw = "nil";}` to disable.
'';
icons =
defaultNullOpts.mkAttrsOf types.anything
{
inlay = {
loading = "";
done = "";
error = "";
};
lualine = "🐼";
}
''
Sets default icons for loading states and lualine.
'';
scratchpad_default_contents =
defaultNullOpts.mkListOf types.anything
[
"@MY_TOKEN_NAME=my_token_value"
""
"# @name scratchpad"
"POST https://httpbin.org/post HTTP/1.1"
"accept: application/json"
"content-type: application/json"
]
''
Default contents for the scratchpad feature.
'';
winbar = defaultNullOpts.mkBool false ''
Enables or disables the winbar for displaying request status.
'';
default_winbar_panes =
defaultNullOpts.mkListOf types.str
[
"body"
"headers"
"headers_body"
]
''
Specifies which panes are displayed by default in the winbar.
'';
vscode_rest_client_environmentvars = defaultNullOpts.mkBool false ''
Enables reading environment variables from VSCodes REST client.
'';
disable_script_print_output = defaultNullOpts.mkBool false ''
Disables immediate printing of script outputs; outputs will still be written to disk.
'';
environment_scope =
defaultNullOpts.mkEnumFirstDefault
[
"b"
"g"
]
''
Sets the scope for environment and request variables. Options are "b" (buffer) or "g" (global).
'';
certificates = defaultNullOpts.mkAttrsOf types.anything { } ''
Configures SSL/TLS certificates.
'';
};
settingsExample = {
default_view = "body";
default_env = "dev";
debug = false;
icons = {
inlay = {
loading = "";
done = "";
error = "";
};
lualine = "🐼";
};
additional_curl_options = { };
environment_scope = "b";
};
}