Fixes #4
Improve context calculation
Clone tokens before coloring them so that coloring isn't necessarily preserved between sessions