mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-30 04:14:28 +02:00
190 lines
4.6 KiB
Nix
190 lines
4.6 KiB
Nix
{ lib, ... }:
|
||
let
|
||
inherit (lib.nixvim) defaultNullOpts;
|
||
inherit (lib) types;
|
||
in
|
||
lib.nixvim.plugins.mkNeovimPlugin {
|
||
name = "kulala";
|
||
packPathName = "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 VSCode’s 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";
|
||
};
|
||
|
||
}
|