当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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 \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。