private DomainObjectListener createDomainObjectListener() {
	// @formatter:off
		return new DomainObjectListenerBuilder(this)
			.ignoreWhen(this::ignoreEvents)
			.any(RESTORED).terminate(this::reloadTree)
			.with(ProgramChangeRecord.class)
				.each(SYMBOL_RENAMED).call(this::processSymbolRenamed)
				.each(SYMBOL_DATA_CHANGED, SYMBOL_SCOPE_CHANGED).call(this::processSymbolChanged)
				.each(FUNCTION_CHANGED).call(this::processFunctionChanged)
				.each(SYMBOL_ADDED).call(this::processSymbolAdded)
				.each(SYMBOL_REMOVED).call(this::processSymbolRemoved)
				.each(EXTERNAL_ENTRY_ADDED, EXTERNAL_ENTRY_REMOVED)
					.call(this::processExternalEntryChanged)
			.build();
		// @formatter:on
	}
Called to have this symbol tree provider copy settings into the given provider.
@param newProvider the new provider
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/symboltree/SymbolTreeProvider.java