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}。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。