diff --git a/lib/spitfire.ex b/lib/spitfire.ex index 55c0a34..666d673 100644 --- a/lib/spitfire.ex +++ b/lib/spitfire.ex @@ -1792,7 +1792,8 @@ defmodule Spitfire do case code |> String.to_charlist() |> :elixir_tokenizer.tokenize( - 1, + opts[:line] || 1, + opts[:column] || 1, opts |> Keyword.put(:check_terminators, false) |> Keyword.put(:cursor_completion, false) ) do {:ok, _, _, _, tokens} -> diff --git a/test/spitfire_test.exs b/test/spitfire_test.exs index 83206ad..0487937 100644 --- a/test/spitfire_test.exs +++ b/test/spitfire_test.exs @@ -1815,6 +1815,12 @@ defmodule SpitfireTest do assert Spitfire.parse(code) == s2q(code) end end + + test "line and column opt" do + code = "foo" + + assert Spitfire.parse(code, line: 12, column: 7) == s2q(code, line: 12, column: 7) + end end describe "code with errors" do @@ -2317,7 +2323,9 @@ defmodule SpitfireTest do end end - defp s2q(code), do: Code.string_to_quoted(code, columns: true, token_metadata: true, emit_warnings: false) + defp s2q(code, opts \\ []) do + Code.string_to_quoted(code, Keyword.merge([columns: true, token_metadata: true, emit_warnings: false], opts)) + end def print(ast) do ast |> Macro.to_string() |> IO.puts()