docs: public DocumentSymbol toDocumentSymbol(final EObject object) {
      DocumentSymbol _documentSymbol = new DocumentSymbol();
      final Procedure1<DocumentSymbol> _function = (DocumentSymbol it) -> {
        final String objectName = this.nameProvider.getName(object);
        if ((objectName != null)) {
          it.setName(objectName);
        }
        final SymbolKind objectKind = this.kindProvider.getSymbolKind(object);
        if ((objectKind != null)) {
          it.setKind(objectKind);
        }
        final Range objectRange = this.rangeProvider.getRange(object);
        if ((objectRange != null)) {
          it.setRange(objectRange);
        }
        final Range objectSelectionRange = this.rangeProvider.getSelectionRange(object);
        if ((objectSelectionRange != null)) {
          it.setSelectionRange(objectSelectionRange);
        }
        it.setDetail(this.detailsProvider.getDetails(object));
        it.setDeprecated(Boolean.valueOf(this.deprecationInfoProvider.isDeprecated(object)));
        it.setChildren(CollectionLiterals.<DocumentSymbol>newArrayList());
      };
      return ObjectExtensions.<DocumentSymbol>operator_doubleArrow(_documentSymbol, _function);
    }