Skip to content

invakid404/celsp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

celsp

A Language Server Protocol implementation for the Common Expression Language (CEL), powered by cel-core.

Features

  • Diagnostics - Real-time parse and type checking errors as you type
  • Hover - Type information and function documentation
  • Completion - Autocompletion for variables, functions, and message fields
  • Semantic tokens - Accurate syntax highlighting
  • Protovalidate - CEL validation support in .proto files

Installation

From source

cargo install celsp

From GitHub releases

Pre-built binaries are available on the releases page for:

  • Linux (x86_64)
  • macOS (x86_64, aarch64)

Configuration

Create a settings.toml file in your project to configure the CEL environment:

[env]
variables = { x = "int", name = "string" }
extensions = ["strings", "math"]

[env.proto]
descriptors = ["path/to/descriptor.binpb"]

The language server walks the file tree upward to discover settings.toml.

Editor Setup

celsp works with any LSP-compatible editor. Configure your editor to run celsp as the language server for CEL files and .proto files.

Development

# Run all tests
mise run test

# Install locally
mise run install

License

Licensed under either of:

at your option.

About

Language Server Protocol implementation for CEL

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%