2. hasn't been eating
Объяснение: Здесь используется Present Perfect Continuous (hasn't been eating), потому что действие (не есть шоколад) началось в прошлом и продолжается до настоящего момента. Ключевые слова 'for years' (в течение многих лет) указывают на длительность действия.