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

source-academy / py-slang / 30455928137
86%

Build:
DEFAULT BRANCH: main
Ran 29 Jul 2026 01:43PM UTC
Jobs 1
Files 133
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

29 Jul 2026 01:25PM UTC coverage: 85.655% (-0.6%) from 86.205%
30455928137

push

github

web-flow
Add Autocomplete and Syntax Highlighting (#109)

* Add basic syntax highlighting and autocomplete

* Add some more documentation

* Added keywords

* Add autocomplete for all groups based on variant + Fix bug where variables in inner scopes didn't work

* Add for statements + Fix function names and name declarations coming as their own suggestion

* Migrate to `@sourceacademy/autocomplete`

* Update `ts-node` to `tsx`

* Use `.kind` instead of `.constructor.name` to allow function name terserification

* Fix the step limit

* Refactor type narrowing

* Remove unused code

* Fix some bugs (prelude functions not working + `==` not working for expanded equality + mismatched name in Python 4 stdlib)

* Add explicit types for every evaluator + fix test cases for parser

* Fix bug regarding missing py_s1_constants.json

* feat(conductor): add per-evaluator autocomplete and syntax highlighting

Each PyCseEvaluator variant registers its own autocomplete plugin with
the correct variant number and evaluator name, so the runner emits a
unique ace mode id (ace/mode/PyCseEvaluator{1..4}) per bundle.

* style: format PyCseEvaluator.ts

* Add `range` support + Add test cases

Co-authored-by: Copilot <copilot@github.com>

* Update chapter 3 tests to use variant 3

* Add more chapter-specific test cases

* feat: migrate py-slang autocomplete plugin

* fix: add tests + add to all evaluators

* fix: chapter-scope is/global/nonlocal/pass, add pass validator, highlight True/False/None

The autocomplete keyword lists were wrong on two counts:
- is/global/nonlocal/pass are meant to be introduced at chapter 3, same
  as while/for/break/continue - but is was hardcoded permanently
  illegal, and global/nonlocal/pass were hardcoded permanently legal,
  in every chapter.
- True/False/None weren't classified at all, so they rendered as plain
  identifiers. Ace's own stock Python highlighter (which this file is
  adapted from) colors them as constant.language, matching how other
 ... (continued)

4496 of 5651 branches covered (79.56%)

Branch coverage included in aggregate %.

216 of 221 new or added lines in 14 files covered. (97.74%)

9972 of 11240 relevant lines covered (88.72%)

172372.33 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
94.76
src/conductor/plugins/autocomplete/resolver.ts
Jobs
ID Job ID Ran Files Coverage
1 30455928137.1 29 Jul 2026 01:43PM UTC 133
85.66
GitHub Action Run
Source Files on build 30455928137
  • Tree
  • List 133
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30455928137
  • 70075722 on github
  • Prev Build on main (#30423622243)
  • Next Build on main (#30632292338)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc