func AppendServerCapabilitiesWorkspaceFileOperations()

in src/ulsp/mapper/lsp_lifecycle.go [275:312]


func AppendServerCapabilitiesWorkspaceFileOperations(primary *protocol.ServerCapabilitiesWorkspaceFileOperations, secondary *protocol.ServerCapabilitiesWorkspaceFileOperations) *protocol.ServerCapabilitiesWorkspaceFileOperations {
	if primary == nil && secondary == nil {
		return &protocol.ServerCapabilitiesWorkspaceFileOperations{}
	} else if primary != nil && secondary == nil {
		return primary
	} else if primary == nil && secondary != nil {
		return secondary
	}

	result := &protocol.ServerCapabilitiesWorkspaceFileOperations{}

	// If both capabilities are blank, do not initialize a new entry.
	if primary.DidCreate != nil || secondary.DidCreate != nil {
		result.DidCreate = AppendFileOperationRegistrationOptions(primary.DidCreate, secondary.DidCreate)
	}

	if primary.WillCreate != nil || secondary.WillCreate != nil {
		result.WillCreate = AppendFileOperationRegistrationOptions(primary.WillCreate, secondary.WillCreate)
	}

	if primary.DidRename != nil || secondary.DidRename != nil {
		result.DidRename = AppendFileOperationRegistrationOptions(primary.DidRename, secondary.DidRename)
	}

	if primary.WillRename != nil || secondary.WillRename != nil {
		result.WillRename = AppendFileOperationRegistrationOptions(primary.WillRename, secondary.WillRename)
	}

	if primary.DidDelete != nil || secondary.DidDelete != nil {
		result.DidDelete = AppendFileOperationRegistrationOptions(primary.DidDelete, secondary.DidDelete)
	}

	if primary.WillDelete != nil || secondary.WillDelete != nil {
		result.WillDelete = AppendFileOperationRegistrationOptions(primary.WillDelete, secondary.WillDelete)
	}

	return result
}