Skip to content

Commit e13108f

Browse files
committed
do not use regex in module body
1 parent 17f3591 commit e13108f

File tree

5 files changed

+9
-15
lines changed

5 files changed

+9
-15
lines changed

apps/language_server/lib/language_server/markdown_utils.ex

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
defmodule ElixirLS.LanguageServer.MarkdownUtils do
22
alias ElixirLS.LanguageServer.DocLinks
33

4-
@hash_match ~r/(?<!\\)(?<!\w)(#+)(?=\s)/u
54
# Find the lowest heading level in the fragment
65
defp lowest_heading_level(fragment) do
7-
case Regex.scan(@hash_match, fragment) do
6+
case Regex.scan(~r/(?<!\\)(?<!\w)(#+)(?=\s)/u, fragment) do
87
[] ->
98
nil
109

@@ -22,7 +21,7 @@ defmodule ElixirLS.LanguageServer.MarkdownUtils do
2221
if min_level do
2322
level_difference = base_level + 1 - min_level
2423

25-
Regex.replace(@hash_match, fragment, fn _, capture ->
24+
Regex.replace(~r/(?<!\\)(?<!\w)(#+)(?=\s)/u, fragment, fn _, capture ->
2625
adjusted_level = String.length(capture) + level_difference
2726
String.duplicate("#", adjusted_level)
2827
end)

apps/language_server/lib/language_server/providers/code_action/helpers.ex

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,17 @@ defmodule ElixirLS.LanguageServer.Providers.CodeAction.Helpers do
2929
|> Text.fetch_line(0)
3030
end
3131

32-
@do_regex ~r/\s*do\s*/
3332
defp maybe_recover_one_line_do(updated_text, {_name, context, _children} = _updated_ast) do
3433
wrong_do_end_conditions = [
3534
not Keyword.has_key?(context, :do),
3635
not Keyword.has_key?(context, :end),
37-
Regex.match?(@do_regex, updated_text),
36+
Regex.match?(~r/\s*do\s*/, updated_text),
3837
String.ends_with?(updated_text, "\nend")
3938
]
4039

4140
if Enum.all?(wrong_do_end_conditions) do
4241
updated_text
43-
|> String.replace(@do_regex, ", do: ")
42+
|> String.replace(~r/\s*do\s*/, ", do: ")
4443
|> String.trim_trailing("\nend")
4544
else
4645
updated_text

apps/language_server/lib/language_server/providers/code_action/replace_remote_function.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ defmodule ElixirLS.LanguageServer.Providers.CodeAction.ReplaceRemoteFunction do
3737
end
3838
end
3939

40-
@function_re ~r/(\S+)\/(\d+) is undefined or private. Did you mean:.*/
4140
defp extract_function(message) do
42-
with [[_, module_and_function, arity]] <- Regex.scan(@function_re, message),
41+
with [[_, module_and_function, arity]] <-
42+
Regex.scan(~r/(\S+)\/(\d+) is undefined or private. Did you mean:.*/, message),
4343
{:ok, module, function_name} <- separate_module_from_function(module_and_function) do
4444
{:ok, module, function_name, String.to_integer(arity)}
4545
end

apps/language_server/lib/language_server/providers/code_action/replace_with_underscore.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ defmodule ElixirLS.LanguageServer.Providers.CodeAction.ReplaceWithUnderscore do
3535
end
3636
end
3737

38-
@variable_re ~r/variable "([^"]+)" is unused/
3938
defp extract_variable_name(message) do
40-
case Regex.scan(@variable_re, message) do
39+
case Regex.scan(~r/variable "([^"]+)" is unused/, message) do
4140
[[_, variable_name]] ->
4241
{:ok, String.to_atom(variable_name)}
4342

apps/language_server/lib/language_server/providers/code_mod/text.ex

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
defmodule ElixirLS.LanguageServer.Providers.CodeMod.Text do
2-
@indent_regex ~r/^\s+/
3-
@comment_regex ~r/\s*#.*/
4-
52
@spec leading_indent(String.t()) :: String.t()
63
def leading_indent(line_text) do
7-
case Regex.scan(@indent_regex, line_text) do
4+
case Regex.scan(~r/^\s+/, line_text) do
85
[indent] -> indent
96
_ -> ""
107
end
118
end
129

1310
@spec trailing_comment(String.t()) :: String.t()
1411
def trailing_comment(line_text) do
15-
case Regex.scan(@comment_regex, line_text) do
12+
case Regex.scan(~r/\s*#.*/, line_text) do
1613
[comment] -> comment
1714
_ -> ""
1815
end

0 commit comments

Comments
 (0)