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 Code.prepend_path用法及代码示例
- Elixir Code.compiler_options用法及代码示例
- Elixir Code.quoted_to_algebra用法及代码示例
- Elixir Code.put_compiler_option用法及代码示例
- Elixir Code.ensure_compiled用法及代码示例
- Elixir Code.format_string!用法及代码示例
- Elixir Code.required_files用法及代码示例
- Elixir Code.get_compiler_option用法及代码示例
- Elixir Code.Fragment.cursor_context用法及代码示例
- Elixir Code.available_compiler_options用法及代码示例
- Elixir Code.ensure_loaded?用法及代码示例
- Elixir Code.eval_quoted用法及代码示例
- Elixir Code.require_file用法及代码示例
- Elixir Code.Fragment.container_cursor_to_quoted用法及代码示例
- Elixir Code.Fragment.surround_context用法及代码示例
- Elixir Code.delete_path用法及代码示例
- Elixir Code.append_path用法及代码示例
- Elixir Code.ensure_loaded用法及代码示例
- Elixir Code.unrequire_files用法及代码示例
- Elixir Code.fetch_docs用法及代码示例
- Elixir Code.eval_string用法及代码示例
- Elixir Code用法及代码示例
- Elixir Config.config_env用法及代码示例
- Elixir Config.config用法及代码示例
- Elixir Config.Reader用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Code.string_to_quoted_with_comments(string, opts \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。