eastwood


Package info
Description

A linter and language server.

Readme
# Eastwood linter and language server Eastwood is a linter and language server for the functional programming language [Clean][]. Neovim and VS Code are the currently supported IDEs. Other IDEs will need to be configured manually. ## The project configuration file (Eastwood.yml) Eastwood requires a project configuration file `Eastwood.yml` in the current working directory. This is a YAML file with the following fields: - `compiler`: compiler executable (usually `cocl`) - `paths`: Relative or absolute paths in which included modules are located An example Eastwood.yml file: ``` compiler: cocl paths: [] ``` It is required to specify a compiler. It is required to specify a YAML list for the paths key (use "paths: []" for an empty list). ## Usage in Neovim The configuration below assumes you have neovim 0.5 or greater with lsp-config installed. Simply add the following to your vimrc: ```lua lua << EOF local lspconfig = require'lspconfig' local util = require'lspconfig/util' local configs = require'lspconfig/configs' if not lspconfig.eastwood then configs.eastwood = { default_config = { cmd = {'eastwood-cls'}; filetypes = {'clean'}; root_dir = util.root_pattern 'Eastwood.yml', settings = {}; }; } end lspconfig.eastwood.setup{} EOF ``` ## Usage in VS Code Use the [Eastwood extension for VS Code](https://gitlab.com/top-software/eastwood-vs-code). ## Installation Binaries are available at the [Clean package registry](https://clean-lang.org/pkg/eastwood/). Eastwood should be installed using [Nitrile][]: ``` nitrile global install eastwood ``` If Eastwood is used as linter within a Nitrile project, it should be added as [dependency with `Test` scope](https://clean-and-itasks.gitlab.io/nitrile/nitrile-yml/reference/#dependenciesscope). ## Building Eastwood can be built and tested using [Nitrile][]. The sources can be compiled as follows: ```bash nitrile build ``` ## Running tests The tests can be run as follows: ```bash nitrile test ``` ## Documentation Further documentation can be found [here](https://gitlab.com/top-software/eastwood/-/tree/main/docs). ## Copyright &amp; License Eastwood is copyright &copy; 2021 TOP Software Technology B.V. This software is licensed under the GPL 3.0 or later license. For details, see the [LICENSE](/LICENSE) file. [Clean]: https://clean-lang.org [Nitrile]: https://clean-lang.org/about.html#install
Changelog
### 2.3.0 - Feature: support syntax introduced with `base-compiler` `4.1`. #### 2.2.1 - Fix: do no longer abort when module could not be parsed when checking dcl documentation as this causes the language server to crash. ### 2.2.0 - Feature: the validity of .dcl documentation syntax (see: https://gitlab.com/clean-and-itasks/clean-platform/-/blob/master/doc/DOCUMENTATION.md) is now automatically checked when using the Eastwood language server or linter. #### 2.1.3 - Fix: prevent `bad file descriptor` crashes when using `eastwood-cls` for some time. #### 2.1.2 - Fix: prevent linter crashes for expressions with types. #### 2.1.1 - Fix: prevent deadlocks while reading large compiler outputs. ## 2.1.0 - Feature: support syntax introduced with `base-compiler` `4.0`. #### 2.0.0 - Remove: Removed root directory from default search paths to improve performance for finding definitions/declarations in case there are subdirectories which do not contain relevant source files. (e.g when including repositories in repositories to build with local dependency). #### 1.1.3 - Fix: Add timeout for grep in case it takes too long to return all results. Do no longer allow to go to the declaration or definition of import as grep would not return. #### 1.1.2 - Fix: show stdout of compiler if compiler crashes, compiler sometimes prints errors to stdout instead of stderr. Therefore, the errors would not end up being shown to the user by Eastwood. #### 1.1.1 - Fix: incorrect character range for the CAF linter warnings. ### 1.1.0 - Feature: the language server now includes linter output. #### 1.0.2 - Fix: make compiler option in Eastwood.yml work again. #### 1.0.1 - Fix: include fixes of the YAML parser (see yaml v1.1.2). ## 1.0.0 - Initial version using nitrile semantic versioning.
Versions