void newScript() {
		try {
			PickProviderDialog providerDialog =
				new PickProviderDialog(getComponent(), actionManager.getNewHelpLocation());
			GhidraScriptProvider provider = providerDialog.getSelectedProvider();
			if (provider == null) {
				plugin.getTool().setStatusInfo("User cancelled creating a new script.");
				return;
			}

			// Create user script directory if it doesn't exist
			File userScriptsDir = new File(GhidraScriptUtil.USER_SCRIPTS_DIR);
			FileUtilities.checkedMkdirs(userScriptsDir);

			ResourceFile newFile = GhidraScriptUtil.createNewScript(provider,
				new ResourceFile(userScriptsDir), getScriptDirectories());
			SaveDialog dialog = new SaveNewScriptDialog(getComponent(), "New Script", this, newFile,
				provider, actionManager.getNewHelpLocation());
			if (dialog.isCancelled()) {
				plugin.getTool().setStatusInfo("User cancelled creating a new script.");
				return;
			}
			newFile = dialog.getFile();

			enableScriptDirectory(newFile.getParentFile());

			String category = StringUtils.join(getSelectedCategoryPath(), ScriptInfo.DELIMITTER);
			provider.createNewScript(newFile, category);

			GhidraScriptEditorComponentProvider editor =
				new GhidraScriptEditorComponentProvider(plugin, this, newFile);
			editorMap.put(newFile, editor);

			// create the ScriptInfo object now, before the TableModelEvent handlers
			// attempt to use it.
			assert !infoManager.containsMetadata(newFile) : "new source already has metadata?";
			infoManager.getScriptInfo(newFile);

			tableModel.insertScript(newFile);

			int index = getScriptIndex(newFile);

			if (index >= 0) {
				scriptTable.setRowSelectionInterval(index, index);
				Rectangle rect = scriptTable.getCellRect(index, 0, true);
				scriptTable.scrollRectToVisible(rect);
			}
		}
		catch (IOException e) {
			Msg.showError(this, getComponent(), getName(), e.getMessage(), e);
		}
	}
@return non-system bundle paths from the scripting bundle host
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/script/GhidraScriptComponentProvider.java