|
|
|
|
|
by jcranmer
979 days ago
|
|
The JavaScript VM, Java VM, .NET VM, and several other runtimes (including effectively the entire Windows API) have their fundamental definition of strings be based on UTF-16 baked in. I believe the original producers and consumers of LSP were written in languages that had string lengths based on UTF-16, so it was the literal easiest way to do it, even though UTF-16 is probably objectively the most painful thing to compute if your string system isn't UTF-16. LSP eventually got a solution where you can request something other than UTF-16 offset calculations, but I don't remember the details of what that solution is. |
|