Try smartparens.