private static void setupEditor(Path editorBinPath, Path dataPath) throws IOException {
		EditorManager.downloadAndInstallEditor();

		if (!Files.exists(dataPath)) {
			verboseMsg("Making portable data path " + dataPath.toString());
			Files.createDirectories(dataPath);
		}

		Path settingsjson = dataPath.resolve("user-data/User/settings.json");

		if (!Files.exists(settingsjson)) {
			verboseMsg("Setting up some good default settings at " + settingsjson);
			Files.createDirectories(settingsjson.getParent());

			String vscodeSettings = "{\n" +
			// better than breadcrumbs
					"    \"editor.experimental.stickyScroll.enabled\": true,\n" +
					// autosave because vscode has it default and it just makes things work smoother
					"    \"files.autoSave\": \"onFocusChange\",\n" +
					// use modern java
					"    \"java.codeGeneration.hashCodeEquals.useJava7Objects\": true,\n" +
					// instead of `out.println(x);` you get
					// `out.println(argClosestWithMatchingType)`
					"    \"java.completion.guessMethodArguments\": true,\n" +
					// when editing html/xml editing tags updates the matching pair
					"    \"editor.linkedEditing\": true,\n" +
					// looks cooler - doesn't hurt
					"    \"editor.cursorBlinking\": \"phase\",\n" +
					// making easy to zoom for presentations
					"    \"editor.mouseWheelZoom\": true\n" +
					"}";
			Util.writeString(settingsjson, vscodeSettings);
		}

		verboseMsg("Installing Java extensions...");
		ProcessBuilder pb = new ProcessBuilder(editorBinPath.toAbsolutePath().toString(),
				"--install-extension", "redhat.java",
				"--install-extension", "vscjava.vscode-java-debug",
				"--install-extension", "vscjava.vscode-java-test",
				"--install-extension", "vscjava.vscode-java-dependency",
				"--install-extension", "jbangdev.jbang-vscode");
		pb.inheritIO();
		Process process = pb.start();
		try {
			int exit = process.waitFor();
			if (exit > 0) {
				throw new ExitException(EXIT_INTERNAL_ERROR,
						"Could not install and setup extensions into VSCodium. Aborting.");
			}
		} catch (InterruptedException e) {
			Util.errorMsg("Problems installing VSCodium extensions", e);
		}
	}
Returns a parent path if one of the targetFileNames exist in such parent.

@param filePath
@param targetFileNames list of markers to search for
@return if found returns the marker path, if none found return null.
src/main/java/dev/jbang/cli/Edit.java