[clangd] Expose offset <-> LSP position functions, and fix bugs

Authored by sammccall on Dec 19 2017, 4:23 AM.


[clangd] Expose offset <-> LSP position functions, and fix bugs


  • Moved these functions to SourceCode.h
  • added unit tests
  • fix off by one in positionToOffset: Offset - 1 in final calculation was wrong
  • fixed formatOnType which had an equal and opposite off-by-one
  • positionToOffset and offsetToPosition both consistently clamp to beginning/end of file when input is out of range
  • gave variables more descriptive names
  • removed windows line ending fixmes where there is nothing to fix
  • elaborated on UTF-8 fixmes

This will conflict with Eric's D41281, but in a pretty easy-to-resolve way.

Reviewers: ioeric

Subscribers: klimek, mgorny, ilya-biryukov, cfe-commits

Differential Revision: https://reviews.llvm.org/D41351

llvm-svn: 321073