rtfpessoa / diff2html

Pretty diff to html javascript library (diff2html)

Home Page:https://diff2html.xyz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature request: show invisiable characters.

leoleoasd opened this issue · comments

I'm writing an autograder for our data structure and algorithm course, and I'm using diff2html to tell how students their program's output differs with answers.

Some badly written programs output '\0's at the end of each line, and they aren't visible in the diff. Adding support for showing invisible characters (and an option to toggle it) just like Jetbrains IDEs would be nice.
image
image

A realy bad workaround:

const content = content.split('\n')
// my diff only have one file, so we extract file header by the first 3 lines
const header = content.slice(0, 3).join('\n')
// and extract inner diff
let inner = content.slice(3).join('\n')
for (let i = 0; i < 0x20; i += 1) {
  // append an unicode control picture after every invisiable character
  inner = inner.replaceAll(String.fromCharCode(i), String.fromCharCode(i + 0x2400) + String.fromCharCode(i))
}
console.log(header + '\n' + inner)

image

Would be nice the have the replacement happen in diff2html, because not all diffs only contain one file, and parsing them before send them into diff2html would be re-inventing the wheel.

👋 Sounds like an interesting feature to have if you are interested in contributing it.

It could be replace some special chars and it could be enabled by a configuration.