-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 => <>, 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 ).