Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: show invisiable characters. #430

Open
leoleoasd opened this issue Mar 31, 2022 · 2 comments
Open

Feature request: show invisiable characters. #430

leoleoasd opened this issue Mar 31, 2022 · 2 comments

Comments

@leoleoasd
Copy link

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

@leoleoasd
Copy link
Author

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.

@rtfpessoa
Copy link
Owner

👋 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.

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

No branches or pull requests

2 participants