LS: smart indentation

Implementation of smart indentation that uses new syntax trees
I don't quite understand what this function does.