Skip to content

Commit e48a5eb

Browse files
authored
Merge pull request #1126 from mhanberg/fix-debugger-columns
2 parents c0b82e4 + 199eca4 commit e48a5eb

File tree

5 files changed

+60
-14
lines changed

5 files changed

+60
-14
lines changed

lib/credo/check/readability/function_names.ex

+8-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,14 @@ defmodule Credo.Check.Readability.FunctionNames do
149149
issues
150150
end
151151

152-
defp issues_for_name("sigil_" <> sigil_letters = name, args, meta, issues, issue_meta, _allow_acronyms?) do
152+
defp issues_for_name(
153+
"sigil_" <> sigil_letters = name,
154+
args,
155+
meta,
156+
issues,
157+
issue_meta,
158+
_allow_acronyms?
159+
) do
153160
multi_letter_sigil? = String.match?(sigil_letters, ~r/^[A-Z]+$/)
154161

155162
if multi_letter_sigil? do

lib/credo/check/warning/dbg.ex

+9-8
Original file line numberDiff line numberDiff line change
@@ -32,59 +32,60 @@ defmodule Credo.Check.Warning.Dbg do
3232
issues,
3333
issue_meta
3434
) do
35-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
35+
{ast, [issue_for(issue_meta, meta) | issues]}
3636
end
3737

3838
defp traverse(
3939
{:dbg, meta, [_single_param]} = ast,
4040
issues,
4141
issue_meta
4242
) do
43-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
43+
{ast, [issue_for(issue_meta, meta) | issues]}
4444
end
4545

4646
defp traverse(
4747
{:dbg, meta, [_first_param, _second_param]} = ast,
4848
issues,
4949
issue_meta
5050
) do
51-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
51+
{ast, [issue_for(issue_meta, meta) | issues]}
5252
end
5353

5454
defp traverse(
5555
{{:., _, [{:__aliases__, _, [:"Elixir", :Kernel]}, :dbg]}, meta, _args} = ast,
5656
issues,
5757
issue_meta
5858
) do
59-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
59+
{ast, [issue_for(issue_meta, meta) | issues]}
6060
end
6161

6262
defp traverse(
6363
{{:., _, [{:__aliases__, _, [:Kernel]}, :dbg]}, meta, _args} = ast,
6464
issues,
6565
issue_meta
6666
) do
67-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
67+
{ast, [issue_for(issue_meta, meta) | issues]}
6868
end
6969

7070
defp traverse(
7171
{:|>, _, [_, {:dbg, meta, nil}]} = ast,
7272
issues,
7373
issue_meta
7474
) do
75-
{ast, [issue_for(issue_meta, meta[:line]) | issues]}
75+
{ast, [issue_for(issue_meta, meta) | issues]}
7676
end
7777

7878
defp traverse(ast, issues, _issue_meta) do
7979
{ast, issues}
8080
end
8181

82-
defp issue_for(issue_meta, line_no) do
82+
defp issue_for(issue_meta, meta) do
8383
format_issue(
8484
issue_meta,
8585
message: "There should be no calls to `dbg/1`.",
8686
trigger: "dbg",
87-
line_no: line_no
87+
line_no: meta[:line],
88+
column: meta[:column]
8889
)
8990
end
9091
end

lib/credo/check/warning/io_inspect.ex

+6-5
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ defmodule Credo.Check.Warning.IoInspect do
2323
end
2424

2525
defp traverse(
26-
{{:., _, [{:__aliases__, _, [:"Elixir", :IO]}, :inspect]}, meta, _arguments} = ast,
26+
{{:., _, [{:__aliases__, meta, [:"Elixir", :IO]}, :inspect]}, _, _arguments} = ast,
2727
issues,
2828
issue_meta
2929
) do
3030
{ast, issues_for_call(meta, issues, issue_meta)}
3131
end
3232

3333
defp traverse(
34-
{{:., _, [{:__aliases__, _, [:IO]}, :inspect]}, meta, _arguments} = ast,
34+
{{:., _, [{:__aliases__, meta, [:IO]}, :inspect]}, _meta, _arguments} = ast,
3535
issues,
3636
issue_meta
3737
) do
@@ -43,15 +43,16 @@ defmodule Credo.Check.Warning.IoInspect do
4343
end
4444

4545
defp issues_for_call(meta, issues, issue_meta) do
46-
[issue_for(issue_meta, meta[:line], @call_string) | issues]
46+
[issue_for(issue_meta, meta, @call_string) | issues]
4747
end
4848

49-
defp issue_for(issue_meta, line_no, trigger) do
49+
defp issue_for(issue_meta, meta, trigger) do
5050
format_issue(
5151
issue_meta,
5252
message: "There should be no calls to `IO.inspect/1`.",
5353
trigger: trigger,
54-
line_no: line_no
54+
line_no: meta[:line],
55+
column: meta[:column]
5556
)
5657
end
5758
end

test/credo/check/warning/dbg_test.exs

+18
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,24 @@ defmodule Credo.Check.Warning.DbgTest do
7171
|> assert_issue()
7272
end
7373

74+
test "it should report a violation with two on the same line" do
75+
"""
76+
defmodule CredoSampleModule do
77+
def some_function(parameter1, parameter2) do
78+
dbg(parameter1) + dbg(parameter2)
79+
end
80+
end
81+
"""
82+
|> to_source_file
83+
|> run_check(@described_check)
84+
|> assert_issues(fn [one, two] ->
85+
assert one.line_no == 3
86+
assert one.column == 23
87+
assert two.line_no == 3
88+
assert two.column == 5
89+
end)
90+
end
91+
7492
test "it should report a violation /2" do
7593
"""
7694
defmodule CredoSampleModule do

test/credo/check/warning/io_inspect_test.exs

+19
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,25 @@ defmodule Credo.Check.Warning.IoInspectTest do
3737
|> assert_issue()
3838
end
3939

40+
test "it should report a violation with two on the same line" do
41+
"""
42+
defmodule CredoSampleModule do
43+
def some_function(parameter1, parameter2) do
44+
foo(IO.inspect(parameter1), parameter2) |> IO.inspect()
45+
end
46+
end
47+
"""
48+
|> to_source_file
49+
|> run_check(@described_check)
50+
|> assert_issues(fn [first, second] ->
51+
assert first.line_no == 3
52+
assert first.column == 48
53+
54+
assert second.line_no == 3
55+
assert second.column == 9
56+
end)
57+
end
58+
4059
test "it should report a violation /2" do
4160
"""
4261
defmodule CredoSampleModule do

0 commit comments

Comments
 (0)