Citation: 1B_48/2020 E. 3

Le recours est admis dans la mesure où il est recevable. L'arrêt attaqué est annulé dans la mesure où il exclut sans motivation le prononcé de mesures de substitution. La cause est renvoyée à l'autorité précédente pour qu'elle procède au sens des considérants et qu'elle rende une nouvelle décision. Le recourant, qui obtient gain de cause avec un avocat, a droit à des dépens pour la procédure fédérale à la charge du canton de Vaud (art. 68 al. 1 LTF). Il n'est pas perçu de frais judiciaires (art. 66 al. 4 LTF). La requête d'assistance judiciaire est ainsi sans objet. Par ces motifs, le Tribunal fédéral prononce :