Skip to content

Commit bef542e

Browse files
authored
Create .gitignore before trigger build (#232)
Create a .gitignore file by using project_dir in server state before trigger build to make sure it create in the right place. Close #206
1 parent ec4bc16 commit bef542e

File tree

1 file changed

+21
-0
lines changed
  • apps/language_server/lib/language_server

1 file changed

+21
-0
lines changed

apps/language_server/lib/language_server/server.ex

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,7 @@ defmodule ElixirLS.LanguageServer.Server do
723723
|> set_project_dir(project_dir)
724724
|> set_dialyzer_enabled(enable_dialyzer)
725725

726+
state = create_gitignore(state)
726727
trigger_build(%{state | settings: settings})
727728
end
728729

@@ -789,4 +790,24 @@ defmodule ElixirLS.LanguageServer.Server do
789790
defp set_project_dir(state, _) do
790791
state
791792
end
793+
794+
defp create_gitignore(%{project_dir: project_dir} = state) do
795+
with gitignore_path <- Path.join([project_dir, ".elixir_ls", ".gitignore"]),
796+
false <- File.exists?(gitignore_path),
797+
:ok <- gitignore_path |> Path.dirname() |> File.mkdir_p(),
798+
:ok <- File.write(gitignore_path, "*", [:write]) do
799+
state
800+
else
801+
true ->
802+
state
803+
804+
{:error, err} ->
805+
JsonRpc.log_message(
806+
:warning,
807+
"Cannot create .elixir_ls/.gitignore, cause: #{Atom.to_string(err)}"
808+
)
809+
810+
state
811+
end
812+
end
792813
end

0 commit comments

Comments
 (0)