Closed Mike-Bell closed 6 months ago
Setting attributes is pretty fast, so your solution has a negligible impact on performance. I wouldn't say it's that ugly. You can also start your for loop at i = 1
since the overlays are at index 0.
If I used CSS counters for line numbers, changing the line number start would be easy by overriding the counter-reset
CSS property. Unfortunately, Safari doesn't update counters when adding or removing children, which is why I didn't use them. This seems to have been fixed very recently, probably in Safari 17.0 or 17.2, so I might switch to using CSS counters, but not in the near future.
Adding a configurable line number start would require a significant addition to the core (like a ~2% increase) for a fairly niche feature. This is because PrismEditor.setOptions
would have to update the line number of every line whenever the line number start option is changed. I'm therefore a bit hesitant to add this feature unless it's heavily requested.
Cool, that's fine. I support not bogging down main use cases for less common ones. I have it in my mind that doing N dom manipulations on every code change is "expensive", but you're probably right that it's not a big deal.
N dom manupulations every code change might sound like a lot, but compared to the syntax highlighting, it's neglibible. You can expect a less than 5% performance hit.
First off, great lib, I was looking for a while for something like this that "just works" for me. Has to do a couple small css hacks, but for the most part it "just works".
Small feature request: configurable line number start, like the Prism line-numbers plugin supports.
I can do this manually, but it's ugly and probably bad for perf: