Implement priority based clearsnippets.

Implement priority-based clearsnippets and add corresponding test cases (#335).
same question: why the __inner?