src/vs/workbench/services/editor/browser/editorService.ts/EditorService/openEditors
class EditorService:	async openEditors(editors: Array<IEditorInputWithOptions | IUntypedEditorInput>, preferredGroup?: OpenInEditorGroup, options?: IOpenEditorsOptions): Promise<IEditorPane[]> {

		// Pass all editors to trust service to determine if
		// we should proceed with opening the editors if we
		// are asked to validate trust.
		if (options?.validateTrust) {
			const editorsTrusted = await this.handleWorkspaceTrust(editors);
			if (!editorsTrusted) {
				return [];
			}
		}

		// Find target groups for editors to open
		const mapGroupToEditors = new Map<IEditorGroup, Array<IEditorInputWithOptions>>();
		for (const editor of editors) {
			let typedEditor: IEditorInputWithOptions | undefined = undefined;
			let group: IEditorGroup | undefined = undefined;

			// Resolve override unless disabled
			if (editor.options?.override !== EditorOverride.DISABLED) {
				const [overrideResult, resolvedGroup, resolvedOptions] = await this.doResolveEditor(editor, preferredGroup);
				if (isEditorInputWithOptions(overrideResult)) {
					typedEditor = overrideResult;
				} else {
					typedEditor = isEditorInputWithOptions(editor) ? editor : { editor: this.createEditorInput(editor), options: resolvedOptions ?? editor.options };
				}

				group = resolvedGroup;
			}

			// Override is disabled or did not apply
			else {
				typedEditor = isEditorInputWithOptions(editor) ? editor : { editor: this.createEditorInput(editor), options: editor.options };
			}

			// If group still isn't defined because of a disabled override we resolve it
			if (!group) {
				group = this.doFindTargetGroup(typedEditor.editor, typedEditor.options, preferredGroup);
			}

			// Update map of groups to editors
			let targetGroupEditors = mapGroupToEditors.get(group);
			if (!targetGroupEditors) {
				targetGroupEditors = [];
				mapGroupToEditors.set(group, targetGroupEditors);
			}

			targetGroupEditors.push(typedEditor);
		}

		// Open in target groups
		const result: Promise<IEditorPane | null>[] = [];
		for (const [group, editors] of mapGroupToEditors) {
			result.push(group.openEditors(editors));
		}

		return coalesce(await Promises.settled(result));
	}