anchor.diff:                        children: [
                           for (final term in filter.terms)
                             InputChip(
  -                            label: Text(term),
  -                            onDeleted: () {
  -                              pushRoute(context,
  -                                  terms: filter.terms.where((t) => t != term));
  -                            },
  -                          ),
  +                              label: Text(term),
  +                              onDeleted: () {
  +                                pushRoute(context,
  +                                    terms:
  +                                        filter.terms.where((t) => t != term));
  +                              },
  +                              onPressed: () {
  +                                controller.text = term;
  +                              }),
                         ],
                       ),
                     ),
  
positive.code:             ),
              Padding(
                padding: EdgeInsets.only(left: 12.0),
                child: AddWidget(filter),
              ),
            ],
          );
  
negative.code:       const ListEquality().equals(terms, other.terms);
  }
  
  class FilterUI extends StatefulWidget {
    @override
    State<FilterUI> createState() => _FilterUIState();
  }
  
  class _FilterUIState extends State<FilterUI> {
    final controller = TextEditingController();
  
    @override
    void dispose() {
      controller.dispose();
      super.dispose();
    }
  
    @override
    Widget build(BuildContext context) {
      return Consumer<QueryResults>(
  