LS: smart indentation

Implementation of smart indentation that uses new syntax trees
Why is this not the mirror image of findNextToken?