LS: smart indentation

Implementation of smart indentation that uses new syntax trees
do you need the extra module? i think it is superfluous