LSP working for Haskell

And I even managed to dodge the absurd 30-minute compilation time that
would normally be required in order to install HIE.
This commit is contained in:
Radon Rosborough 2020-07-06 18:19:07 -06:00
parent e28e10c054
commit e47e49e353
3 changed files with 24 additions and 2 deletions

View File

@ -450,6 +450,11 @@ func main() {
repl: "ghci",
main: "Main.hs",
run: "ghci",
lspSetup: "cp /opt/haskell/hie.yaml hie.yaml",
lsp: "HIE_HOOGLE_DATABASE=/opt/haskell/hoogle.hoo hie --lsp",
lspInit: {
languageServerHaskell: {},
},
template: `module Main where
main :: IO ()
@ -519,6 +524,7 @@ PLEASE GIVE UP
main: "main.jl",
run: "julia -L main.jl",
lsp: `JULIA_DEPOT_PATH=:/opt/julia julia -e 'using LanguageServer; run(LanguageServerInstance(stdin, stdout))'`,
lspConfig: null,
template: `println("Hello, world!")
`,
},

View File

@ -191,7 +191,9 @@ async function main() {
(window as any).config = configuration;
return Array(
(configuration(params, token) as {}[]).length
).fill(config.lspConfig || null);
).fill(
config.lspConfig !== undefined ? config.lspConfig : {}
);
},
},
},

View File

@ -100,9 +100,15 @@ tar -xf swift.tar.gz -C /opt/swift --strip-components=2
ln -s /opt/swift/bin/swiftc /usr/bin/swiftc
rm swift.tar.gz
# Haskell
mkdir -p /opt/haskell
gdown "https://drive.google.com/uc?export=download&id=1GPoR_ja4ns16KCamRgwB-JVag4HK0igz" /usr/bin/hie
gdown "https://drive.google.com/uc?export=download&id=1qSxj8JjAeetAmNjUGayX0RBARgr5R4Ij" /opt/haskell/hoogle.hoo
chmod +x /usr/bin/hie
# Kalyn
cd /tmp
git clone https://github.com/raxod502/kalyn
git clone https://github.com/raxod502/kalyn.git
pushd kalyn >/dev/null
stack build kalyn
mv "$(stack exec which kalyn)" /usr/bin/kalyn
@ -217,6 +223,14 @@ tee /opt/elm/elm.json >/dev/null <<"EOF"
}
EOF
# Haskell
mkdir -p /opt/haskell
tee /opt/haskell/hie.yaml >/dev/null <<"EOF"
cradle:
direct:
arguments: []
EOF
# Unlambda
tee /usr/bin/unlambda-repl >/dev/null <<"EOF"
#!/usr/bin/env python3