Current section

Files

Jump to
glap src glap@help_settings.erl
Raw

src/glap@help_settings.erl

-module(glap@help_settings).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-define(FILEPATH, "src/glap/help_settings.gleam").
-export([default_help_settings/0, format_argument_without_desc/1, get_tabdesc_string_length/1]).
-export_type([help_settings/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type help_settings() :: {help_settings,
boolean(),
binary(),
boolean(),
integer()}.
-file("src/glap/help_settings.gleam", 45).
-spec default_help_settings() -> help_settings().
default_help_settings() ->
{help_settings, false, <<" "/utf8>>, true, 1}.
-file("src/glap/help_settings.gleam", 56).
?DOC(false).
-spec format_argument_without_desc(glap@arguments:argument()) -> binary().
format_argument_without_desc(Argument) ->
case Argument of
{flag, Short, Long, _, false, false} ->
glap@utils:strformat(
<<"[{}|{}]{}{}"/utf8>>,
[Short, Long, <<""/utf8>>, <<""/utf8>>]
);
{flag, Short@1, Long@1, _, false, true} ->
glap@utils:strformat(
<<"[{}|{}] [VALUE...]{}{}"/utf8>>,
[Short@1, Long@1, <<""/utf8>>, <<""/utf8>>]
);
{flag, Short@2, Long@2, _, true, false} ->
glap@utils:strformat(
<<"({}|{}){}{}"/utf8>>,
[Short@2, Long@2, <<""/utf8>>, <<""/utf8>>]
);
{flag, Short@3, Long@3, _, true, true} ->
glap@utils:strformat(
<<"({}|{}) [VALUE...]{}{}"/utf8>>,
[Short@3, Long@3, <<""/utf8>>, <<""/utf8>>]
);
{command, Name, _, true, _} ->
glap@utils:strformat(
<<"{}{}{}"/utf8>>,
[Name, <<""/utf8>>, <<""/utf8>>]
);
{command, Name@1, _, false, _} ->
glap@utils:strformat(
<<"{}{}{}"/utf8>>,
[Name@1, <<""/utf8>>, <<""/utf8>>]
);
{unnamed_argument, Name@2, _} ->
glap@utils:strformat(
<<"[{}...]{}{}"/utf8>>,
[Name@2, <<""/utf8>>, <<""/utf8>>]
)
end.
-file("src/glap/help_settings.gleam", 69).
?DOC(false).
-spec get_tabdesc_string_length(list(glap@arguments:argument())) -> integer().
get_tabdesc_string_length(Args) ->
gleam@bool:guard(
Args =:= [],
0,
fun() ->
Result@1 = case begin
_pipe = Args,
_pipe@4 = gleam@list:map(
_pipe,
fun(Argument) -> case Argument of
{command, _, _, _, Subcommands} ->
gleam@int:max(
begin
_pipe@1 = format_argument_without_desc(
Argument
),
string:length(_pipe@1)
end,
get_tabdesc_string_length(Subcommands)
);
{flag, _, _, _, _, _} ->
_pipe@2 = format_argument_without_desc(Argument),
string:length(_pipe@2);
{unnamed_argument, _, _} ->
_pipe@3 = format_argument_without_desc(Argument),
string:length(_pipe@3)
end end
),
gleam@list:max(_pipe@4, fun gleam@int:compare/2)
end of
{ok, Result} -> Result;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"glap/help_settings"/utf8>>,
function => <<"get_tabdesc_string_length"/utf8>>,
line => 72,
value => _assert_fail,
start => 2019,
'end' => 2468,
pattern_start => 2030,
pattern_end => 2040})
end,
Result@1
end
).