docs: public void registerScriptEngineWrapper(ScriptEngineWrapper wrapper) {
  		logger.debug("registerEngineWrapper " + wrapper.getLanguageName() + " : " + wrapper.getEngineName());
  		this.engineWrappers.add(wrapper);
  
  		setScriptEngineWrapper(getTreeModel().getScriptsNode(), wrapper, wrapper);
  		setScriptEngineWrapper(getTreeModel().getTemplatesNode(), wrapper, wrapper);
  		
  		// Templates for this engine might not have been loaded
  		this.loadTemplates(wrapper);
  
  		synchronized (trackedDirs) {
  			String engineName = wrapper.getLanguageName() + LANG_ENGINE_SEP + wrapper.getEngineName();
  			for (File dir : trackedDirs) {
  				for (ScriptType type : this.getScriptTypes()) {
  					addScriptsFromDir(dir, type, engineName);
  				}
  			}
  		}
  
  		if (scriptUI != null) {
  			try {
  				scriptUI.engineAdded(wrapper);
  			} catch (Exception e) {
  				logger.error("An error occurred while notifying ScriptUI:", e);
  			}
  		}
  	}