async function setKeyBindings({ commands }) {
	let keyboardShortcuts = keyBindings;
	try {
		const bindingsFile = fsOperation(KEYBINDING_FILE);
		if (await bindingsFile.exists()) {
			const bindings = await bindingsFile.readFile("json");
			// keyboardShortcuts = compareAndFixKeyBindings(keyboardShortcuts, bindings);
			keyboardShortcuts = bindings;
		} else {
			throw new Error("Key binding file not found");
		}
	} catch (error) {
		await resetKeyBindings();
	}

	Object.keys(commands.byName).forEach((name) => {
		const shortcut = keyboardShortcuts[name];
		const command = commands.byName[name];

		if (shortcut?.description) {
			command.description = shortcut.description;
		}

		// not chekiang if shortcut is empty because it can be used to remove shortcut
		command.bindKey = { win: shortcut?.key ?? null };
		commands.addCommand(command);
	});
}
Sets key bindings for the editor
@param {AceAjax.Editor} editor Ace editor