LS: smart indentation

Implementation of smart indentation that uses new syntax trees
Also I thought synthetic nodes can have lists as parents, just the compiler's nodes would not