Using helm to select tide completion candidates

Tide (TypeScript Interactive Development Environment for Emacs) uses a custom hydra-derived popup menu for prompting the user to select candidates when there are many completion options available.

However, this is jarring when the rest of your emacs environment is configured to use helm as the completion engine.

Fortunately, this is easy to fix by overriding the tide-popup-select-item implementation to use a custom helm source derived from the completion list.

As far as auto-completion is concerned, since tide configures a company-backend, it is possible to directly use helm-company to use helm for selecting auto-completion candidates.