LS: smart indentation

Implementation of smart indentation that uses new syntax trees
Would this possibly be better-named as `relativeIndentation`?