Language server for the 12d programming language (12dPL) conforming to the Language Server Protocol (LSP).
- Go
- Make
- Python 3
Build the language server by executing make build
which will compile the
language server binary 12dls
in the current directory.
Run automated tests by executing make test
.
The language server can be configured by passing in the below options to the
12dls
command.
Option | Description | Default Value |
---|---|---|
-i | Path to includes directory. | "" |
-d | Enable debugging features like logging. | false |
- Currently the language server does not support services across multiple files. This means that it will only analyse and provide services for the current file.
- Supports stdio as IPC. stdio is the standard transport for language server IPC and is also straight forward to implement.
- Go to definition.
- Hover support.
- User defined function documentation in markdown.
- Rename symbol.
- Find references.
- Go to definition.
- Hover support.
- User defined function documentation in markdown.
- Rename symbol.
- Find references.
- Autoformatting.
- Autocompletion.
- Includes.
- Include directory references.
- Support relative path includes.
You can help the project by contributing in the following ways:
Submit a feature request through opening a Github issue.
with a [Feature Request] tag in the issue subject. e.g. [Feature Request] Autocompletion
.
Report a bug providing sample source code and a detailed description of the bug as a Github issue.
Since we get the 12dpl library documentation by parsing the 12d macro manual, there are a lot of errors in the documentation such as pdf header and footer text being included in function descriptions, inconsistent function signature styling, incorrect spacing in sentences and special symbol characters.
You can help improve the quality of the documentation by fixing the above issues by following the steps outlined in the 12d Documentation Patching.
Contribute to the project directly by fixing bugs and opening a pull request.
- Error when compiling on windows
Cgo: sorry, unimplemented: 64-bit mode not compiled in
You have a c compiler which does not support 32 and 64 bit. Install tdm-gcc. to fix.