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

shexjs / shex.js / 29363108335
75%

Build:
DEFAULT BRANCH: main
Ran 14 Jul 2026 07:48PM UTC
Jobs 1
Files 61
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

14 Jul 2026 07:46PM UTC coverage: 73.356% (+0.7%) from 72.653%
29363108335

push

github

Eric Prud'hommeaux
editors: language-aware CodeMirror panes for the web apps, with error anchoring

Implements doc/editor-integration-plan.md phases 0-3 (see that doc for
architecture and remaining phase-4 items).  New code is TypeScript
(src/*.ts -> committed lib/, built by make ALL / per-package npm run
build; typescript is now a root devDependency instead of an assumed
global tsc).

parser (@shexjs/parser):
- tripleConstraint productions record identity-keyed source ranges in
  schema._exprLocations (anchored on senseFlags/predicate to dodge the
  empty-production location wart).  Validation errors reference these
  same objects, so error mapping is an identity lookup.
- addSourceMap now records the production's own location: _sourceMap
  ranges used to point at the lookahead token; @<ref> sites now cover
  the whole reference.
- _exprLocations whitelisted in the schema visitor and stripped in
  AStoShExJ/canonicalization alongside _locations/_sourceMap.

@shexjs/editor-services (new package, TypeScript):
- editor-services: parseShExC/locateInParsed/parseTurtle (millan
  github:ericprud/millan#rdfjs-interface, whose RDF/JS terms carry
  source provenance)/mapValidationErrors -- CodeMirror-ready
  {from, to, severity, message} diagnostics with paired schema/data
  anchors.  locateInParsed exists because @shexjs/loader's
  import-merging makes a new top-level Schema but shares the inner
  expression objects.
- editor-panes: CodeMirror 6 glue.  makePane replaces a textarea while
  keeping it as a live value proxy (property override), so caches,
  permalinks, drag-and-drop and tests are unaffected; panes dispatch
  both change and synthetic keyup because the apps' cache
  dirty-tracking listens for typing -- without keyup, validate re-used
  the previously parsed text while live lint squiggles stayed current.
  Stream-tokenizer ShExC mode; Turtle/JSON modes; highlight API.

web apps:
- editors are a Menu -> 'user interface' select, carried as ?editors=1
  in permalinks, ... (continued)

2238 of 3559 branches covered (62.88%)

Branch coverage included in aggregate %.

247 of 250 new or added lines in 6 files covered. (98.8%)

4901 of 6173 relevant lines covered (79.39%)

7210.27 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
94.29
packages/shex-webapp/test/editors-smoke-test.js
1
94.74
packages/shex-editor-services/test/EditorPanes-test.js
Jobs
ID Job ID Ran Files Coverage
1 29363108335.1 14 Jul 2026 07:48PM UTC 61
73.36
GitHub Action Run
Source Files on build 29363108335
  • Tree
  • List 61
  • Changed 4
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29363108335
  • 64425540 on github
  • Prev Build on main (#29320865913)
  • Next Build on main (#29367060521)
  • Delete
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