dotfiles/bin/neovim/add_dependencies.jl

33 lines
1 KiB
Julia
Raw Permalink Normal View History

# Add dependencies to Language Server project
# TODO: automatically list up necessary packages
using Pkg
@info "project path" Pkg.project().path
# add LanguageServer.jl
Pkg.add("LanguageServer")
# add dependencies of LanguageServer.jl
pkg_ls = Pkg.project().dependencies["LanguageServer"]
pkg_ls_deps = Pkg.dependencies()[pkg_ls].dependencies |> keys
foreach(Pkg.add, pkg_ls_deps)
# add extra dependencies
# these packages are manually collected
pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads", "TOML"]
foreach(Pkg.add, pkg_extra)
@info "dependency added"
# save pkgs to be used for precompile functions with traced script
out_path = joinpath(Pkg.project().path |> dirname, "precompile_exec_head.jl")
@info "writing $(out_path)"
open(out_path, "w") do io
println(io, "using LanguageServer")
println(io, "using " * join(pkg_ls_deps, ", "))
println(io, "using " * join(pkg_extra, ", "))
if Sys.iswindows()
println(io, "import FileWatching")
end
end
@info "finished writing precompile head file"