diff --git a/contrib/.gitignore b/contrib/.gitignore new file mode 100644 index 00000000..e6f18159 --- /dev/null +++ b/contrib/.gitignore @@ -0,0 +1 @@ +JuliaLSP_compiled diff --git a/contrib/JuliaLSP/Project.toml b/contrib/JuliaLSP/Project.toml new file mode 100644 index 00000000..155700f6 --- /dev/null +++ b/contrib/JuliaLSP/Project.toml @@ -0,0 +1,8 @@ +name = "JuliaLSP" +uuid = "9488cb22-ff86-4d62-8f4a-077fe1791049" +authors = ["Matsievskiy S.V. "] +version = "0.1.0" + +[deps] +LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7" +SymbolServer = "cf896787-08d5-524d-9de7-132aaa0cb996" diff --git a/contrib/JuliaLSP/precompile_app.jl b/contrib/JuliaLSP/precompile_app.jl new file mode 100644 index 00000000..257d62a3 --- /dev/null +++ b/contrib/JuliaLSP/precompile_app.jl @@ -0,0 +1,4 @@ +using JuliaLSP + +push!(ARGS, "arg") +JuliaLSP.julia_main() diff --git a/contrib/JuliaLSP/src/JuliaLSP.jl b/contrib/JuliaLSP/src/JuliaLSP.jl new file mode 100644 index 00000000..d167f87b --- /dev/null +++ b/contrib/JuliaLSP/src/JuliaLSP.jl @@ -0,0 +1,12 @@ +module JuliaLSP + +using LanguageServer, LanguageServer.SymbolServer + +function julia_main()::Cint + server = LanguageServer.LanguageServerInstance(stdin, stdout) + server.runlinter = true + run(server) + return 0 # if things finished successfully +end + +end # module diff --git a/contrib/compile.sh b/contrib/compile.sh new file mode 100755 index 00000000..d3e5f297 --- /dev/null +++ b/contrib/compile.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +JULIABIN="julia" +JULIAPROJ="JuliaLSP" +JULIACOMP="JuliaLSP_compiled" + +REPO="https://github.com/julia-vscode/LanguageServer.jl" +BRANCH="master" + +HL='\033[1;4;31m' +NC='\033[0m' + +errorexit() { + echo -e ${HL}"$@"${NC} + exit 1 +} + +while [[ $# -gt 0 ]] + do + key="$1" + + case $key in + -j|--julia) + JULIABIN="$2" + shift + ;; + -b|--branch) + BRANCH="$2" + shift + ;; + -r|--repo) + REPO="$2" + shift + ;; + *) + echo -e "Usage:\ncompile.sh [-j|--julia ] [-b|--branch ]" >&2 + exit + ;; + esac + shift +done + +echo -e ${HL}Updating packages${NC} + +$JULIABIN --project=${JULIAPROJ} --startup-file=no --history-file=no -e \ + "import Pkg; + Pkg.add(Pkg.PackageSpec(url=\"${REPO}\", rev=\"${BRANCH}\")); + Pkg.update();" || errorexit Cannot update packages + +echo -e ${HL}Compiling...${NC} + +# Additional libs are needed for running tests +$JULIABIN --startup-file=no --history-file=no -e \ + "import Pkg; + Pkg.add(\"PackageCompiler\") + Pkg.add([\"Test\", \"Sockets\", \"CSTParser\", \"StaticLint\", \"JSON\", \"JSONRPC\"]) + using PackageCompiler; + Pkg.activate(\"${JULIAPROJ}\"); + create_app(\"${JULIAPROJ}\", \"${JULIACOMP}\", + force=true, precompile_execution_file=\"../test/runtests.jl\");" \ + || errorexit Cannot compile packages + +echo -e ${HL}Compiled${NC}