I’m giving helix a spin. I’ve got Julia configured with:
$ cat ~/.config/helix/languages.toml
[[language]]
name = "julia"
auto-format = true
formatter = { command = "/home/kousu/src/jlfmt", args = ["-"] }
[language-server.julia]
timeout = 20
command = "julia"
[[language]]
name = "typst"
auto-format = true
formatter = { command = "typstyle" }
It’s slow to start up every time so I went digging for ways to improve that. If I watch the log (tail -f ~/.cache/helix/helix.log), every single launch it says this:
...
helix_lsp::transport [ERROR] julia err <- "[ Info: Downloading cache files... (72%)\n"
helix_lsp::transport [ERROR] julia err <- "[ Info: Downloading cache files... (73%)\n"
helix_lsp::transport [ERROR] julia err <- "[ Info: Downloading cache files... (74%)\n"
...
If I understand correctly, under vscode, LanguageServer is supposed to cache – and it does seem so – to,
~/.config/Code - OSS/User/globalStorage/julialang.language-julia/lsdepot
I used lsof to try to find where helix was caching; during the download I saw several connections to GitHub
$ pgrep julia | xargs -n1 sudo ls -p | grep -i tcp
# ...
julia 3083397 kousu 131u IPv6 12458767 0t0 TCP allium:49192->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 134u IPv6 12458768 0t0 TCP allium:49208->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 136u IPv6 12458769 0t0 TCP allium:49210->[2606:50c0:8003::153]:https (ESTABLISHED)
# ...
$ whois '2606:50c0:8003::153' | grep -C 2 CustName
CustName: GitHub, Inc.
Address: 88 Colin P Kelly Jr Street
City: San Francisco
So that all checks out. But with the same lsof I can’t see anything that looks like a cache.
lsof
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
julia 3083397 kousu cwd DIR 253,4 20480 25035119 /home/kousu/src/testjl
julia 3083397 kousu rtd DIR 253,2 4096 2 /
julia 3083397 kousu txt REG 253,2 14552 1248119 /usr/bin/julia
julia 3083397 kousu mem REG 253,4 12873128 28468132 /home/kousu/.julia/compiled/v1.12/LanguageServer/ite7n_OwB7W.so
julia 3083397 kousu mem REG 253,4 74838176 28468117 /home/kousu/.julia/compiled/v1.12/SymbolServer/355ac_OwB7W.so
julia 3083397 kousu mem REG 253,2 3338432 1966100 /usr/share/julia/compiled/v1.12/REPLExt/m7ggP_mAJqa.so
julia 3083397 kousu mem REG 253,4 932448 28468129 /home/kousu/.julia/compiled/v1.12/StaticLint/FgruE_OwB7W.so
julia 3083397 kousu mem REG 253,2 69250832 1863064 /usr/share/julia/compiled/v1.12/Pkg/tUTdb_mAJqa.so
julia 3083397 kousu mem REG 253,2 2666416 1862944 /usr/share/julia/compiled/v1.12/Downloads/eiA4B_mAJqa.so
julia 3083397 kousu mem REG 253,2 1976368 1199010 /usr/lib/libunistring.so.5.2.0
julia 3083397 kousu mem REG 253,2 2276176 1862994 /usr/share/julia/compiled/v1.12/LibGit2/xrYJZ_mAJqa.so
julia 3083397 kousu mem REG 253,2 1954088 1862909 /usr/share/julia/compiled/v1.12/ArgTools/aGHFV_mAJqa.so
julia 3083397 kousu mem REG 253,2 5704872 1188417 /usr/lib/libcrypto.so.3
julia 3083397 kousu mem REG 253,2 379936 1196367 /usr/lib/libnss_mymachines.so.2
julia 3083397 kousu mem REG 253,4 12068440 25559653 /home/kousu/.julia/compiled/v1.12/JuliaFormatter/OWZnm_OwB7W.so
julia 3083397 kousu mem REG 253,2 211304 1196368 /usr/lib/libnss_resolve.so.2
julia 3083397 kousu mem REG 253,2 809032 1195425 /usr/lib/libkrb5.so.3.3
julia 3083397 kousu mem REG 253,4 6561968 25441771 /home/kousu/.julia/compiled/v1.12/CommonMark/LZtHZ_OwB7W.so
julia 3083397 kousu mem REG 253,4 308832 25429168 /home/kousu/.julia/compiled/v1.12/URIs/eec2u_BREcB.so
julia 3083397 kousu mem REG 253,4 203136 28468120 /home/kousu/.julia/compiled/v1.12/JSONRPC/Gwkvk_OwB7W.so
julia 3083397 kousu mem REG 253,4 2324248 25441779 /home/kousu/.julia/compiled/v1.12/DataStructures/xKiwJ_OwB7W.so
julia 3083397 kousu mem REG 253,2 448408 1966145 /usr/share/julia/compiled/v1.12/Tar/G9ZYP_mAJqa.so
julia 3083397 kousu mem REG 253,2 1349104 1248011 /usr/lib/libgit2.so.1.9.1
julia 3083397 kousu mem REG 253,4 4671408 28468123 /home/kousu/.julia/compiled/v1.12/CSTParser/R4aS6_OwB7W.so
julia 3083397 kousu mem REG 253,2 595376 1862984 /usr/share/julia/compiled/v1.12/LibCURL/ht49g_mAJqa.so
julia 3083397 kousu mem REG 253,4 2073656 28468114 /home/kousu/.julia/compiled/v1.12/Tokenize/7Oi97_OwB7W.so
julia 3083397 kousu mem REG 253,2 32770232 1966095 /usr/share/julia/compiled/v1.12/REPL/u0gqU_mAJqa.so
julia 3083397 kousu mem REG 253,2 4755480 1863029 /usr/share/julia/compiled/v1.12/Markdown/AREjX_mAJqa.so
julia 3083397 kousu mem REG 253,2 43064 1195725 /usr/lib/libcap.so.2.77
julia 3083397 kousu mem REG 253,4 34208 28468126 /home/kousu/.julia/compiled/v1.12/TestItemDetection/gEFYI_OwB7W.so
julia 3083397 kousu mem REG 253,2 946880 1202178 /usr/lib/libcurl.so.4.8.0
julia 3083397 kousu mem REG 253,2 141264 1201832 /usr/lib/libbrotlicommon.so.1.1.0
julia 3083397 kousu mem REG 253,2 182320 1195405 /usr/lib/libk5crypto.so.3.1
julia 3083397 kousu mem REG 253,2 946136 1188419 /usr/lib/libssl.so.3
julia 3083397 kousu mem REG 253,2 32190344 1247984 /usr/lib/libopenblas_64.so.0.3
julia 3083397 kousu mem REG 253,2 748224 1862959 /usr/share/julia/compiled/v1.12/InteractiveUtils/0TrXF_mAJqa.so
julia 3083397 kousu mem REG 253,2 1845696 1862964 /usr/share/julia/compiled/v1.12/JuliaSyntaxHighlighting/8OCEv_mAJqa.so
julia 3083397 kousu mem REG 253,2 8925272 1966130 /usr/share/julia/compiled/v1.12/StyledStrings/UcVoM_mAJqa.so
julia 3083397 kousu mem REG 253,2 67904 1183870 /usr/lib/libresolv.so.2
julia 3083397 kousu mem REG 253,2 55544 1195428 /usr/lib/libkrb5support.so.0.1
julia 3083397 kousu mem REG 253,4 6825304 25441269 /home/kousu/.julia/compiled/v1.12/Parsers/833b9_BREcB.so
julia 3083397 kousu mem REG 253,2 340240 1195399 /usr/lib/libgssapi_krb5.so.2.2
julia 3083397 kousu mem REG 253,2 132992 1201853 /usr/lib/libidn2.so.0.4.0
julia 3083397 kousu mem REG 253,2 148480 1201934 /usr/lib/libnghttp3.so.9.4.0
julia 3083397 kousu mem REG 253,4 737576 25559651 /home/kousu/.julia/compiled/v1.12/JSON/uf6oy_OwB7W.so
julia 3083397 kousu mem REG 253,2 2051472 1862929 /usr/share/julia/compiled/v1.12/Dates/p8See_mAJqa.so
julia 3083397 kousu mem REG 253,2 11745224 1184653 /usr/lib/libgfortran.so.5.0.0
julia 3083397 kousu mem REG 253,2 55168 1201835 /usr/lib/libbrotlidec.so.1.1.0
julia 3083397 kousu mem REG 253,4 548248 25430488 /home/kousu/.julia/compiled/v1.12/Crayons/TXPcU_BREcB.so
julia 3083397 kousu mem REG 253,2 22480 1188171 /usr/lib/libkeyutils.so.1.10
julia 3083397 kousu mem REG 253,2 75640 1201943 /usr/lib/libpsl.so.5.3.5
julia 3083397 kousu mem REG 253,2 28528 1863019 /usr/share/julia/compiled/v1.12/Logging/PWFjL_mAJqa.so
julia 3083397 kousu mem REG 253,2 72664 1966185 /usr/share/julia/compiled/v1.12/p7zip_jll/dfuGM_mAJqa.so
julia 3083397 kousu mem REG 253,2 26944 1863039 /usr/share/julia/compiled/v1.12/MozillaCACerts_jll/XKIUi_mAJqa.so
julia 3083397 kousu mem REG 253,2 39672 1862989 /usr/share/julia/compiled/v1.12/LibCURL_jll/9JWaY_mAJqa.so
julia 3083397 kousu mem REG 253,2 67456 1248005 /usr/lib/libllhttp.so.9.2.1
julia 3083397 kousu mem REG 253,2 1573320 1248000 /usr/lib/libblastrampoline.so.5
julia 3083397 kousu mem REG 253,2 39336 1966165 /usr/share/julia/compiled/v1.12/Zlib_jll/xjq3Q_mAJqa.so
julia 3083397 kousu mem REG 253,2 157736 1201925 /usr/lib/libnghttp2.so.14.29.2
julia 3083397 kousu mem REG 253,2 39424 1966180 /usr/share/julia/compiled/v1.12/nghttp2_jll/KTGSA_mAJqa.so
julia 3083397 kousu mem REG 253,4 365160 25428502 /home/kousu/.julia/compiled/v1.12/OrderedCollections/LtT3J_BREcB.so
julia 3083397 kousu mem REG 253,2 775744 1198259 /usr/lib/libmpfr.so.6.2.2
julia 3083397 kousu mem REG 253,2 678528 1187919 /usr/lib/libgmp.so.10.5.0
julia 3083397 kousu mem REG 253,2 301600 1201969 /usr/lib/libssh2.so.1.0.1
julia 3083397 kousu mem REG 253,2 706856 1198393 /usr/lib/libpcre2-8.so.0.15.0
julia 3083397 kousu mem REG 253,2 213599080 1348463 /usr/lib/julia/sys.so
julia 3083397 kousu mem REG 253,2 39600 1862999 /usr/share/julia/compiled/v1.12/LibGit2_jll/nfCpg_mAJqa.so
julia 3083397 kousu mem REG 253,2 103776 1863044 /usr/share/julia/compiled/v1.12/NetworkOptions/J8H6s_mAJqa.so
julia 3083397 kousu mem REG 253,2 5654208 1221096 /usr/lib/locale/locale-archive
julia 3083397 kousu mem REG 253,4 87104 25428485 /home/kousu/.julia/compiled/v1.12/Glob/3FzEV_BREcB.so
julia 3083397 kousu mem REG 253,4 202936 25431685 /home/kousu/.julia/compiled/v1.12/Preferences/pWSk8_BREcB.so
julia 3083397 kousu mem REG 253,2 1634192 1184659 /usr/lib/libgomp.so.1.0.0
julia 3083397 kousu mem REG 253,2 2178656 1348442 /usr/lib/julia/libjulia-codegen.so.1.12.1
julia 3083397 kousu mem REG 253,2 151456 1862914 /usr/share/julia/compiled/v1.12/Base64/D7K0n_mAJqa.so
julia 3083397 kousu mem REG 253,2 149880 1966140 /usr/share/julia/compiled/v1.12/TOML/mjrwE_mAJqa.so
julia 3083397 kousu mem REG 253,2 31859544 1199270 /usr/lib/libicudata.so.76.1
julia 3083397 kousu mem REG 253,2 39536 1863004 /usr/share/julia/compiled/v1.12/LibSSH2_jll/K6mup_mAJqa.so
julia 3083397 kousu mem REG 253,4 84592 25431660 /home/kousu/.julia/compiled/v1.12/Compat/GSFWK_BREcB.so
julia 3083397 kousu mem REG 253,2 179464 1863034 /usr/share/julia/compiled/v1.12/Mmap/GDYy0_mAJqa.so
julia 3083397 kousu mem REG 253,2 2095152 1199285 /usr/lib/libicuuc.so.76.1
julia 3083397 kousu mem REG 253,2 164056 1966085 /usr/share/julia/compiled/v1.12/Printf/3FQLY_mAJqa.so
julia 3083397 kousu mem REG 253,2 1260488 1199368 /usr/lib/libxml2.so.16.1.1
julia 3083397 kousu mem REG 253,2 453896 1184740 /usr/lib/libncursesw.so.6.5
julia 3083397 kousu mem REG 253,2 935880 1196333 /usr/lib/libzstd.so.1.5.7
julia 3083397 kousu mem REG 253,2 135595256 1248032 /usr/lib/libLLVM.so.18.1jl
julia 3083397 kousu mem REG 253,2 18376 1188077 /usr/lib/libcom_err.so.2.1
julia 3083397 kousu mem REG 253,2 45856 1863054 /usr/share/julia/compiled/v1.12/OpenSSL_jll/M3X35_mAJqa.so
julia 3083397 kousu mem REG 253,2 2112592 1348445 /usr/lib/julia/libjulia-internal.so.1.12.1
julia 3083397 kousu mem REG 253,4 15288 25436137 /home/kousu/.julia/compiled/v1.12/CompatLinearAlgebraExt/Zxpzq_BREcB.so
julia 3083397 kousu mem REG 253,4 53024 25437282 /home/kousu/.julia/compiled/v1.12/PrecompileTools/AQ9Mk_BREcB.so
julia 3083397 kousu mem REG 253,2 45632 1966155 /usr/share/julia/compiled/v1.12/UUIDs/SIw1t_mAJqa.so
julia 3083397 kousu mem REG 253,2 211152 1195956 /usr/lib/liblzma.so.5.8.1
julia 3083397 kousu mem REG 253,2 100368 1187933 /usr/lib/libz.so.1.3.1
julia 3083397 kousu mem REG 253,2 223344 1216824 /usr/lib/libedit.so.0.0.75
julia 3083397 kousu mem REG 253,2 78624 1966160 /usr/share/julia/compiled/v1.12/Unicode/E4Hzs_mAJqa.so
julia 3083397 kousu mem REG 0,16 12693700 anon_inode:[io_uring] (stat: No such file or directory)
julia 3083397 kousu mem REG 253,2 354176 1217216 /usr/lib/libutf8proc.so.3.1.0
julia 3083397 kousu mem REG 253,2 22480456 1184677 /usr/lib/libstdc++.so.6.0.34
julia 3083397 kousu mem REG 253,2 1100400 1183850 /usr/lib/libm.so.6
julia 3083397 kousu mem REG 253,2 47336 1201682 /usr/lib/libffi.so.8.2.0
julia 3083397 kousu mem REG 253,2 63384 1217878 /usr/lib/libunwind.so.8.2.0
julia 3083397 kousu mem REG 253,2 193096 1248035 /usr/lib/libopenlibm.so.4.0
julia 3083397 kousu mem REG 253,2 2149728 1183840 /usr/lib/libc.so.6
julia 3083397 kousu mem REG 0,16 12693699 anon_inode:[io_uring] (stat: No such file or directory)
julia 3083397 kousu mem REG 253,2 174144 1184645 /usr/lib/libatomic.so.1.2.0
julia 3083397 kousu mem REG 253,2 906056 1184647 /usr/lib/libgcc_s.so.1
julia 3083397 kousu mem REG 253,2 101560 1248122 /usr/lib/libjulia.so.1.12.1
julia 3083397 kousu mem REG 253,2 246760 1183831 /usr/lib/ld-linux-x86-64.so.2
julia 3083397 kousu 0r FIFO 0,15 0t0 12692896 pipe
julia 3083397 kousu 1w FIFO 0,15 0t0 12692897 pipe
julia 3083397 kousu 2w FIFO 0,15 0t0 12692898 pipe
julia 3083397 kousu 3u a_inode 0,16 0 111 [eventpoll:4,8,10,11,20,23]
julia 3083397 kousu 4u a_inode 0,16 0 12693699 [io_uring]
julia 3083397 kousu 5u a_inode 0,16 0 12693700 [io_uring]
julia 3083397 kousu 6r FIFO 0,15 0t0 12693701 pipe
julia 3083397 kousu 7w FIFO 0,15 0t0 12693701 pipe
julia 3083397 kousu 8r FIFO 0,15 0t0 12693702 pipe
julia 3083397 kousu 9w FIFO 0,15 0t0 12693702 pipe
julia 3083397 kousu 10u a_inode 0,16 0 111 [eventfd:155]
julia 3083397 kousu 11r FIFO 0,15 0t0 12692896 pipe
julia 3083397 kousu 12r CHR 1,3 0t0 4 /dev/null
julia 3083397 kousu 13w FIFO 0,15 0t0 12692897 pipe
julia 3083397 kousu 14w FIFO 0,15 0t0 12692898 pipe
julia 3083397 kousu 15u a_inode 0,16 0 111 [eventfd:166]
julia 3083397 kousu 16u a_inode 0,16 0 111 [eventfd:175]
julia 3083397 kousu 17u REG 0,23 0 12693704 /proc/3083397/mem
julia 3083397 kousu 18r FIFO 0,15 0t0 12458665 pipe
julia 3083397 kousu 19w FIFO 0,15 0t0 12458665 pipe
julia 3083397 kousu 20u unix 0x00000000b1783a8f 0t0 12693102 /tmp/vscjlsymserv-35904065-e27b type=STREAM (LISTEN)
julia 3083397 kousu 21r REG 253,2 226607 1863083 /etc/ca-certificates/extracted/tls-ca-bundle.pem
julia 3083397 kousu 22u a_inode 0,16 0 111 [eventfd:35]
julia 3083397 kousu 23u unix 0x0000000081b431e3 0t0 12693110 /tmp/vscjlsymserv-35904065-e27b type=STREAM (CONNECTED)
julia 3083397 kousu 24w FIFO 0,15 0t0 12693108 pipe
julia 3083397 kousu 25r FIFO 0,15 0t0 12693109 pipe
julia 3083397 kousu 131u IPv6 12458767 0t0 TCP allium:49192->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 134u IPv6 12458768 0t0 TCP allium:49208->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 136u IPv6 12458769 0t0 TCP allium:49210->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 139u IPv6 12458770 0t0 TCP allium:49226->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 140u IPv6 12458771 0t0 TCP allium:49240->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 141u IPv6 12458772 0t0 TCP allium:49244->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 144u IPv6 12458773 0t0 TCP allium:49260->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 147u IPv6 12458758 0t0 TCP allium:49106->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 153u IPv6 12458762 0t0 TCP allium:49140->[2606:50c0:8003::153]:https (ESTABLISHED)
julia 3083397 kousu 154u IPv6 12458763 0t0 TCP allium:49148->[2606:50c0:8003::153]:https (ESTABLISHED)
So what’s up? It easily takes 10s every time I open a file. Does LanguageServer.jl need some environment variable set to tell it where to cache?
(following from Helix + LanguageServer.jl + JuliaFormatter.jl but that’s specifically about the formatter and this seems like a deeper issue)
Thank you in advance for any direction you can provide me.
Versions
$ julia --version
julia version 1.12.1
(@v1.12) pkg> st
Status `~/.julia/environments/v1.12/Project.toml`
[00ebfdb7] CSTParser v3.4.3
[31c24e10] Distributions v0.25.122
[5789e2e9] FileIO v1.17.1
[08572546] FlameGraphs v1.1.0
[82e4d734] ImageIO v0.6.9
[98e50ef6] JuliaFormatter v2.2.0
⌃ [2b0e0bc5] LanguageServer v4.1.0
[91a5bcdd] Plots v1.41.1
[132c30aa] ProfileSVG v0.2.2
[c46f51b8] ProfileView v1.10.2
[276daf66] SpecialFunctions v2.6.1
[b3cc710f] StaticLint v8.2.2
[f3b207a7] StatsPlots v0.15.8






