Home

Awesome

Language Server for the C3 language.

Go

WIP LSP for C3 language

Table of Contents

Features

Supported Language server features:

Furthermore, the LSP is able to resolve stdlib symbols information (for supported C3c versions), allowing to use this in completion and hover functionalities.

Usage

Usage with text editors / IDE's

Usually you'll use a plugin for your editor that will automatically run the server with the required arguments.
Some plugins/extensions might already include the binaries, check their documentation.
If they don't include it, they might allow you to specify the path to the lsp binary, so download the lsp binary and configure the plugin/extension to its location.

Read more in the wiki.

Standalone usage

Simply run c3lsp to start the server.
It supports the following options:

Installation

Project is written in Golang, so in theory it could be built to any OS supported by Golang.
Precompiled binaries for the following operating systems are available: Linux, Windows 11 and MacOs.

Find latest built binaries in the releases page

You can also build from source:

Project Goals

Writing a Language Server Protocol (LSP) can be a complex and challenging task. To manage this complexity, our initial focus is on covering the basic yet essential needs of a typical LSP implementation.

Current target

The main current target, is to cover the most essential feature which is to scan precise information about symbols used within the source code of a project.
This information can then be used by an IDE to enable the following features:

These features will significantly improve the developer experience by providing accurate and efficient code navigation and assistance.

Future plans

Once these initial objectives are completed, we will explore additional functionalities that can be added to the project, further enhancing its capabilities and usefulness.

Useful links: