expand(Bef0) -> {Res, Completion, Matches}
OTP 26.0expand(Bef0, Opts) -> {Res, Completion, Matches}
OTP 26.0Bef0 = string()
Opts = [Option]
Option = {legacy_output, boolean()}
Res = yes | no
Completion = string()
Matches = [Element] | [Section]
Element = {string(), [ElementOption]}
ElementOption = {ending, string()}
Section =
#{title := string(),
elems := Matches,
options := SectionOption}
SectionOption =
{highlight_all} |
{highlight, string()} |
{highlight_param, integer()} |
{hide, title} |
{hide, result} |
{separator, string()}
标准扩展函数能够将字符串扩展为有效的 erlang 术语。这包括模块名称:
1> erla
modules
erlang:
函数名称:
1> is_ato
functions
is_atom(
2> erlang:is_ato
functions
is_atom(
函数类型:
1> erlang:is_atom(
typespecs
erlang:is_atom(Term)
any()
并在无法进行其他有效扩展时自动添加 , 或右括号。扩展函数还完成:shell 绑定、记录名称、记录字段和映射键。
如下所示,如果函数头有相同的扩展建议,则它们会被分组在一起,在这种情况下,所有函数头都有相同的建议,即'}'。对于过滤掉与提示中术语的类型不匹配的函数类型规范也有有限的支持。下面只显示了 4 个建议,但 erlang:system_info
还存在更多类型规范。
1> erlang:system_info({allocator, my_allocator
typespecs
erlang:system_info(wordsize | {wordsize, ...} | {wordsize, ...})
erlang:system_info({allocator, ...})
erlang:system_info({allocator_sizes, ...})
erlang:system_info({cpu_topology, ...})
}
expand
函数的返回类型指定 Element
元组列表或 Section
映射列表。引入部分概念是为了为扩展结果提供更多格式选项。例如,shell 扩展支持突出显示文本和隐藏建议。还有一个 {highlight, Text}
突出显示标题中所有出现的 Text
,还有一个 highlight_all
为简单起见突出显示整个标题,如上面的 functions
和 typespecs
所示。
通过设置 {hide, result}
或 {hide, title}
选项,您可以隐藏建议。有时标题没有用,只会产生文本噪音,在上面的示例中, any()
结果是标题为 Types
的部分的一部分。目前未使用隐藏结果,但其想法是可以在展开区域中选择一个部分,并且应折叠所有其他部分条目。
可以在标题和结果之间设置自定义分隔符。这可以通过 {separator, Separator}
来完成。默认情况下,其设置为 \n
,某些结果显示 type_name() ::
,后跟定义 type_name()
的所有类型。
{ending, Text}
ElementOption 只是将 Text 附加到 Element
。
相关用法
- erlang expand(Expansions, ListIn)用法及代码示例
- erlang exp用法及代码示例
- erlang extension(Filename)用法及代码示例
- erlang exit(Reason)用法及代码示例
- erlang external_size(Term)用法及代码示例
- erlang external_size(Term, Options)用法及代码示例
- erlang extension(BinRel1, Set, AnySet)用法及代码示例
- erlang equal用法及代码示例
- erlang element用法及代码示例
- erlang element(N, Tuple)用法及代码示例
- erlang erase()用法及代码示例
- erlang erase(Key)用法及代码示例
- erlang error(Reason)用法及代码示例
- erlang error(Reason, Args)用法及代码示例
- erlang erase(Key, Orddict1)用法及代码示例
- erlang erf(X)用法及代码示例
- erlang encode_unsigned(Unsigned, Endianness)用法及代码示例
- erlang encode_hex(Bin)用法及代码示例
- erlang error_msg(Format)用法及代码示例
- erlang error_report(Report)用法及代码示例
- erlang equal(A, B)用法及代码示例
- erlang enumerate(List1)用法及代码示例
- erlang e(QH)用法及代码示例
- erlang sin用法及代码示例
- erlang cos用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 expand(Bef0) -> {Res, Completion, Matches}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。