當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Elixir Code.string_to_quoted_with_comments用法及代碼示例


Elixir語言中 Code.string_to_quoted_with_comments 相關用法介紹如下。

用法:

string_to_quoted_with_comments(string, opts \\ [])
(從 1.13.0 開始)
@spec string_to_quoted_with_comments(
  List.Chars.t(),
  keyword()
) ::
  {:ok, Macro.t(), [map()]} | {:error, {location :: keyword(), term(), term()}}

將給定的字符串轉換為其引用形式和注釋列表。

此函數在對源代碼執行文本更改時很有用,同時保留注釋和文字位置等信息。

如果成功則返回{:ok, quoted_form, comments},否則返回{:error, {line, error, token}}

注釋是具有以下字段的Map:

  • :line - 源代碼的行號

  • :text - 評論的全文,包括前導 #

  • :previous_eol_count - 注釋和前一個 AST 節點或注釋之間有多少行尾

  • :next_eol_count - 注釋和下一個 AST 節點或注釋之間有多少行尾

檢查 string_to_quoted/2 以獲取選項信息。

例子

iex> Code.string_to_quoted_with_comments("""
...> :foo
...>
...> # Hello, world!
...>
...>
...> # Some more comments!
...> """)
{:ok, :foo, [
  %{line: 3, column: 1, previous_eol_count: 2, next_eol_count: 3, text: "# Hello, world!"},
  %{line: 6, column: 1, previous_eol_count: 3, next_eol_count: 1, text: "# Some more comments!"},
]}

iex> Code.string_to_quoted_with_comments(":foo # :bar")
{:ok, :foo, [
  %{line: 1, column: 6, previous_eol_count: 0, next_eol_count: 0, text: "# :bar"}
]}

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Code.string_to_quoted_with_comments(string, opts \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。