We can replace most, if not all, of our custom movement functions with tree-sitter, making them more robust.