• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

DanielXMoore / Civet / 24487810047
96%

Build:
DEFAULT BRANCH: main
Ran 16 Apr 2026 01:56AM UTC
Jobs 1
Files 42
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Apr 2026 01:54AM UTC coverage: 95.371% (-0.007%) from 95.378%
24487810047

push

github

web-flow
Add semantic token provider to Civet LSP (#1881)

* Add semantic token provider to the Civet LSP

- source/semantic-tokens.civet: AST walker that emits {pos, length, group} tokens
- test/semantic-tokens.civet: 13 tests covering all token groups
- source/main.civet + types/types.d.ts: export getSemanticTokens, SemanticToken, TokenGroup
- source/parser/types.civet: add optional group? to ASTLeaf
- lsp/server/source/server.civet: register semanticTokensProvider capability and
  handle textDocument/semanticTokens/full for .civet files

Rebased onto main after lsp-server/ → lsp/server/ directory reorganization.
Converted LSP handler from TypeScript to native Civet syntax.

Co-authored-by: STRd6 <STRd6@users.noreply.github.com>

* Fix comma-separated .= assignments in server.civet

Civet does not support multi-assignment with commas on one line for
mutable (.=) bindings. Split into separate lines.

Co-authored-by: Daniel X Moore <STRd6@users.noreply.github.com>

* Use TypeScript semantic classifications for LSP semantic tokens

Replace the custom Civet AST walker with TypeScript's
getEncodedSemanticClassifications, giving editors rich token types
(variable, function, parameter, property, class, type, etc.) instead
of basic syntactic groups. Positions are remapped from transpiled TS
back to Civet source via the existing sourcemap infrastructure.

- Remove source/semantic-tokens.civet and its public API exports
- Remove group field from ASTLeaf (no longer needed)
- Add e2e tests for semantic tokens in VS Code extension
- Sort tokens after remap for valid LSP delta encoding

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* service is always defined after awaiting

* compute transpiled length

* Add e2e test for semantic token length correctness

Test that token lengths don't exceed the remaining characters on
their line in the Civet source. Catches cases where transpiled
lengths leak through (e.g. @name -> this.name).

Co-Authored-By: Cl... (continued)

4270 of 4655 branches covered (91.73%)

Branch coverage included in aggregate %.

40 of 42 new or added lines in 6 files covered. (95.24%)

20452 of 21267 relevant lines covered (96.17%)

47372.1 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
98.7
-0.74% source/parser/binding.civet
Jobs
ID Job ID Ran Files Coverage
1 24487810047.1 16 Apr 2026 01:56AM UTC 42
95.37
GitHub Action Run
Source Files on build 24487810047
  • Tree
  • List 42
  • Changed 18
  • Source Changed 6
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24487810047
  • 381399e0 on github
  • Prev Build on main (#24455043415)
  • Next Build on main (#24517407859)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc