Revert "Remove unused events"

This reverts commit f89fcce543bc0a6fe23f8d8b4516526e65fadf6b.
Remove unused ScrollingEvent, it's hard to support it
Group event to project specified and path specified
Refactoring
handle caret events
Handle selection events
handle CloseTabEvent