Skip to content

Switch syntax highlighting to tree-sitter via Highlights.jl#873

Open
maleadt wants to merge 1 commit into
mainfrom
highlight
Open

Switch syntax highlighting to tree-sitter via Highlights.jl#873
maleadt wants to merge 1 commit into
mainfrom
highlight

Conversation

@maleadt

@maleadt maleadt commented Jul 10, 2026

Copy link
Copy Markdown
Member

Replaces the external pygmentize dependency with Highlights.jl 0.6 (tree-sitter based) and dedicated grammar JLLs, so syntax highlighting works out of the box without a Python installation:

  • tree_sitter_ptx_jll / tree_sitter_spirv_jll / tree_sitter_gcn_jll: newly-written tree-sitter grammars for PTX, SPIR-V assembly, and GCN/AMDGPU assembly;
  • tree_sitter_llvm_jll: packaged from the existing benwilliamgraham/tree-sitter-llvm, replacing InteractiveUtils.print_llvm.

Highlighting is keyed on the target's source_code, with unknown formats passing through unhighlighted. spirv-dis output is now also routed through the highlighter (SPIR-V and GCN previously required Pygments >= 2.16 / 2.8, and SPIR-V wasn't supported at all). Failures during highlighting warn once and fall back to plain output. The theme is configurable through GPUCompiler.highlight_theme[].

Note

The four JLLs were registered in General today; CI will fail to resolve until the package servers pick up the new registrations.

Tested locally: full test suite passes on 1.12 (493 pass, 2 pre-existing broken), including new tests covering ANSI output for all four languages plus passthrough behavior.

🤖 Generated with Claude Code

Replace the external pygmentize dependency with Highlights.jl and
tree-sitter grammar JLLs, giving out-of-the-box highlighting of LLVM IR,
PTX, SPIR-V and GCN assembly (the latter two previously unsupported or
requiring a recent Pygments). SPIR-V output from spirv-dis is now also
routed through the highlighter.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (6e70209) to head (913cec8).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
src/reflection.jl 0.00% 8 Missing ⚠️
src/spirv.jl 0.00% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #873       +/-   ##
==========================================
- Coverage   81.40%   0.00%   -81.41%     
==========================================
  Files          25      25               
  Lines        4755    4608      -147     
==========================================
- Hits         3871       0     -3871     
- Misses        884    4608     +3724     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant