anchor.diff:      _rootList.append(item.element);
       // Listen to 'select' custom events on the element or one of its children.
       item.element.on['selected'].listen((event) =>
  -      _childSelectedController.add(event.detail));
  -  }
  -
  -  void _addVariable(services.OutlineTopLevelVariable data) =>
  +        _childSelectedController.add(event.detail));
  +
  +    return item;
  +  }
  +
  +  OutlineTopLevelVariable _addVariable(services.OutlineTopLevelVariable data) =>
         _addItem(new OutlineTopLevelVariable(data));
   
  -  void _addFunction(services.OutlineTopLevelFunction data) =>
  +  OutlineTopLevelFunction _addFunction(services.OutlineTopLevelFunction data) =>
         _addItem(new OutlineTopLevelFunction(data));
  -  
  -  void _addTypeDef(services.OutlineTypeDef data) =>
  +
  +  OutlineTypeDef _addTypeDef(services.OutlineTypeDef data) =>
         _addItem(new OutlineTypeDef(data));
   
  -  void _addClass(services.OutlineClass data) =>
  +  OutlineClass _addClass(services.OutlineClass data) =>
         _addItem(new OutlineClass(data));
   
     OutlineItem get selectedItem => _selectedItem;
  
positive.code:     }
    }
  
    void _create(services.OutlineTopLevelEntry data) {
      if (data is services.OutlineClass) {
        _addClass(data);
      } else if (data is services.OutlineTopLevelVariable) {
        _addVariable(data);
      } else if (data is services.OutlineTopLevelFunction) {
        _addFunction(data);
      } else if (data is services.OutlineTypeDef) {
        _addTypeDef(data);
      } else {
        throw new UnimplementedError("Unknown type");
      }
  
negative.code:     _prefs.setValue('OutlineCollapsed', value);
    }
  
    OutlineItem _addItem(OutlineItem item) {
      // Add leaf items to be used to find a position in the outline to scroll to
      // when the file in the editor is scrolled.
      _outlineItems.add(item);
  