anchor.diff:                    return out;
                   }(),
                   hint: Text("Categories"),
  -                onChanged: (String value) {
  -                  setState(() => category = value);
  -                },
  +                onChanged: (String value) =>
  +                  setState(() => category = value),
                   value: category,
                   isExpanded: true,
                 )
  
positive.code:   int type;
    List list;
    String category;
    // bool open = false;
  
    _EditableListState(this.type);
  
    Widget build(BuildContext context) {
      switch(type){
        case 0:
          list = SW.of(context).characters(category: category);
          break;
        case 1:
          list = SW.of(context).minions(category: category);
          break;
        case 2:
          list = SW.of(context).vehicles(category: category);
          break;
        default:
          throw("invalid list type");
  
negative.code:     return Scaffold(
        drawer: SWDrawer(),
        appBar: SWAppBar(
          title: AnimatedSwitcher(
            transitionBuilder: (child, anim){
              Tween<Offset> offset;
              if(child is Row)
                offset = Tween<Offset>(begin: Offset(0, -1), end: Offset.zero);
              else
                offset = Tween<Offset>(begin: Offset(0, 1), end: Offset.zero);
              return ClipRect(
                child: SlideTransition(
                  position: offset.animate(anim),
                  child: child
                )
              );
            },
            duration: Duration(milliseconds: 300),
            child: searching ? TextField(
              focusNode: searchFocus,
              controller: searchController,
              textCapitalization: TextCapitalization.words,
              decoration: InputDecoration(
                focusColor: Colors.white,
                border: UnderlineInputBorder(),
                suffixIcon: IconButton(
                  icon: Icon(Icons.close),
                  onPressed: (){
                    if(search == "")
                      setState(() => searching = false);
                    else
                      searchController.text = "";
                  },
                )
              ),
            ) : Row(
              children: [
                Text(
                  (){
                    switch(type){
                      case 0:
                        return "Characters";
                        break;
                      case 1:
                        return "Minions";
                        break;
                      case 2:
                        return "Vehicles";
                        break;
                      default:
                        return "";
                    }
                  }(),
                  textAlign: TextAlign.left,
                )
              ]
            )
          ),
          additionalActions: [
            if(!searching) IconButton(
              icon: Icon(Icons.search),
              onPressed: () =>
                setState(() => searching = true)
            )
          ],
          bottom: PreferredSize(
            child: Padding(
              padding: EdgeInsets.symmetric(horizontal: 10.0),
  