fwcd / curry-language-server

IDE support for the functional logic language Curry
BSD 3-Clause "New" or "Revised" License
27 stars 2 forks source link
curry functional-programming haskell language-server-protocol logic-programming

Curry Language Server

Build Haskell BSD3 License

An experimental language server providing IDE support for the functional logic programming language Curry.

Screenshot

Building

To build the language server, you will need the build tool Haskell Stack. Once installed, you can run stack build to build the language server.

The final executable will be located in $(stack path --dist-dir)/build/curry-language-server.

If you wish to use the language server in an editor, you can also use stack install to install the binary into ~/.local/bin. By adding this directory to your PATH, invoking curry-language-server will work from any directory.

Editor Integration

To use the language server, you will need an editor that supports LSP. This usually involves pointing the LSP client towards the built executable and setting the transport method to stdio.

For Visual Studio Code, this extension can be used.

Known Issues

If the language server has trouble locating an interface for the Prelude, you may need to add your Curry compiler's lib directory to your import paths, e.g. in your config under curry.languageServer.importPaths or in <your project path>/.curry/language-server/paths.json (which is a string array of import paths). Alternatively, you may also place a compiled version (Prelude.icurry) in the folder <your workspace path>/.curry/language-server.