Index: TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy
===================================================================
--- TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy	(revision 3587)
+++ TXM/trunk/org.txm.groovy.core/src/groovy/org/txm/scripts/importer/txt/txtLoader.groovy	(revision 3588)
@@ -25,67 +25,67 @@
 // $LastChangedRevision: 3426 $
 // $LastChangedBy: mdecorde $
 //
-package org.txm.scripts.importer.txt;
+package org.txm.scripts.importer.txt
 
-import org.txm.scripts.importer.txt.importer;
-import org.txm.scripts.importer.txt.compiler;
-import org.txm.scripts.importer.xml.pager;
-import org.txm.objects.*;
-import org.txm.importer.scripts.xmltxm.*;
-import org.txm.*;
-import org.txm.objects.*;
-import org.txm.core.engines.*;
+import org.txm.scripts.importer.txt.importer
+import org.txm.scripts.importer.txt.compiler
+import org.txm.scripts.importer.xml.pager
+import org.txm.objects.*
+import org.txm.importer.scripts.xmltxm.*
+import org.txm.*
+import org.txm.objects.*
+import org.txm.core.engines.*
 import org.txm.utils.ConsoleProgressBar
-import org.txm.utils.i18n.*;
-import org.txm.metadatas.*;
-import org.txm.utils.io.FileCopy;
+import org.txm.utils.i18n.*
+import org.txm.metadatas.*
+import org.txm.utils.io.FileCopy
 import org.w3c.dom.Element
-import org.txm.utils.xml.DomUtils;
+import org.txm.utils.xml.DomUtils
 import org.txm.importer.*
 
-String userDir = System.getProperty("user.home");
+String userDir = System.getProperty("user.home")
 
-def MONITOR;
-Project project;
+def MONITOR
+Project project
 
 try {project=projectBinding;MONITOR=monitor} catch (Exception)
 {	}
 if (project == null) { println "no project set. Aborting"; return; }
 
-String corpusname = project.getName();
+String corpusname = project.getName()
 String basename = corpusname
-String rootDir = project.getSrcdir();
+String rootDir = project.getSrcdir()
 String lang = project.getLang()
 String model = lang
 String encoding = project.getEncoding()
 boolean annotate = project.getAnnotate()
-String xsl = project.getFrontXSL();
-def xslParams = project.getXsltParameters();
+String xsl = project.getFrontXSL()
+def xslParams = project.getXsltParameters()
 int wordsPerPage = project.getEditionDefinition("default").getWordsPerPage()
 boolean build_edition = project.getEditionDefinition("default").getBuildEdition()
 
 File srcDir = new File(rootDir);
 File binDir = project.getProjectDirectory();
-binDir.mkdirs();
+binDir.mkdirs()
 if (!binDir.exists()) {
 	println "Error: could not create corpus binary directory: "+binDir
-	return;
+	return
 }
 
-File txmDir = new File(binDir, "txm/$corpusname");
-txmDir.deleteDir();
-txmDir.mkdirs();
+File txmDir = new File(binDir, "txm/$corpusname")
+txmDir.deleteDir()
+txmDir.mkdirs()
 
 //get metadata values from CSV
-Metadatas metadatas; // text metadata
-File allMetadataFile = Metadatas.findMetadataFile(srcDir);
+Metadatas metadatas // text metadata
+File allMetadataFile = Metadatas.findMetadataFile(srcDir)
 
 if (allMetadataFile != null && allMetadataFile.exists()) {
 	println "Trying to read metadata from: "+allMetadataFile
 	File copy = new File(binDir, allMetadataFile.getName())
 	if (!FileCopy.copy(allMetadataFile, copy)) {
-		println "Error: could not create a copy of metadata file "+allMetadataFile.getAbsoluteFile();
-		return;
+		println "Error: could not create a copy of metadata file "+allMetadataFile.getAbsoluteFile()
+		return
 	}
 	metadatas = new Metadatas(copy, Toolbox.getMetadataEncoding(), 
 		Toolbox.getMetadataColumnSeparator(), 
@@ -97,8 +97,8 @@
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
 if (MONITOR != null) MONITOR.worked(20, "IMPORTER - Reading source files with extension "+suffixes)
 if (!new importer().run(srcDir, binDir, txmDir,encoding, suffixes, basename, lang, project)) {
-	println "Import process stopped";
-	return;
+	println "Import process stopped"
+	return
 }
 
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
@@ -110,7 +110,7 @@
 	ConsoleProgressBar cpb = new ConsoleProgressBar(filesToInject.size())
 	for (File infile : filesToInject) {
 		cpb.tick()
-		File outfile = File.createTempFile("temp", ".xml", infile.getParentFile());
+		File outfile = File.createTempFile("temp", ".xml", infile.getParentFile())
 
 		if (!metadatas.injectMetadatasInXml(infile, outfile, "text", null)) {
 			outfile.delete();
@@ -118,7 +118,7 @@
 			if (!(infile.delete() && outfile.renameTo(infile))) println "Warning can't rename file "+outfile+" to "+infile
 			if (!infile.exists()) {
 				println "Error: could not replace $infile by $outfile"
-				return false;
+				return false
 			}
 		}
 	}
@@ -134,7 +134,7 @@
 	String engineName = project.getImportParameters().node("annotate").get("engine", "TreeTagger")
 	def engine = Toolbox.getEngineManager(EngineType.ANNOTATION).getEngine(engineName)
 	if (engine.processDirectory(txmDir, binDir, ["lang":model])) {
-		annotationSuccess = true;
+		annotationSuccess = true
 		if (project.getCleanAfterBuild()) {
 			new File(binDir, "treetagger").deleteDir()
 			new File(binDir, "ptreetagger").deleteDir()
@@ -146,7 +146,7 @@
 println "-- COMPILING - Building Search Engine indexes"
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
 if (MONITOR != null) MONITOR.worked(20, "COMPILING - Building Search Engine indexes")
-def c = new compiler(null, "", corpusname, "default");
+def c = new compiler(null, "", corpusname, "default")
 //c.setCwbPath(userDir+"/TXM/cwb/bin/")// for developers
 if (metadatas != null)
 	c.setMetadataAttributes(metadatas.getSattributes())
@@ -154,48 +154,50 @@
 c.setAnnotationSuccess(annotationSuccess)
 if (debug) c.setDebug();
 if (!c.run(project)) {
-	println "Import process stopped";
-	return;
+	println "Import process stopped"
+	return
 }
 //println "basename :"+basename;
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
-new File(binDir,"HTML/$corpusname").deleteDir();
-new File(binDir,"HTML/$corpusname").mkdirs();
+new File(binDir,"HTML/$corpusname").deleteDir()
+new File(binDir,"HTML/$corpusname").mkdirs()
 if (build_edition) {
 
 	println "-- EDITION - Building edition"
 	if (MONITOR != null) MONITOR.worked(20, "EDITION - Building edition")
 	
-	File outdir = new File(binDir, "HTML/$corpusname/default/");
-	outdir.mkdirs();
-	List<File> filelist = txmDir.listFiles();
-	Collections.sort(filelist);
+	File outdir = new File(binDir, "HTML/$corpusname/default/")
+	outdir.mkdirs()
+	List<File> filelist = txmDir.listFiles()
+	Collections.sort(filelist)
 	def second = 0
 
-	ConsoleProgressBar cpb = new ConsoleProgressBar(filelist.size());
+	ConsoleProgressBar cpb = new ConsoleProgressBar(filelist.size())
 	for (File srcfile : filelist) {
 		cpb.tick()
-		String txtname = srcfile.getName();
-		int i = txtname.lastIndexOf(".");
-		if (i > 0) txtname = txtname.substring(0, i);
+		String txtname = srcfile.getName()
+		int i = txtname.lastIndexOf(".")
+		if (i > 0) txtname = txtname.substring(0, i)
 
-		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang);
-		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang);
+		List<String> NoSpaceBefore = LangFormater.getNoSpaceBefore(lang)
+		List<String> NoSpaceAfter = LangFormater.getNoSpaceAfter(lang)
 
-		Text t = new Text(project);
-		t.setName(txtname);
+		Text t = new Text(project)
+		t.setName(txtname)
 		t.setSourceFile(srcfile)
 		t.setTXMFile(srcfile)
 		
-		def ed = new pager(srcfile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, basename, project);
-		Edition edition = new Edition(t);
-		edition.setName("default");
-		edition.setIndex(outdir.getAbsolutePath());
+		def ed = new pager(srcfile, outdir, txtname, NoSpaceBefore, NoSpaceAfter, basename, project)
+		Edition edition = new Edition(t)
+		edition.setName("default")
+		edition.setIndex(outdir.getAbsolutePath())
 		for (i = 0 ; i < ed.getPageFiles().size();) {
-			File f = ed.getPageFiles().get(i);
-			String wordid = "w_0";
-				if (i < ed.getIdx().size()) wordid = ed.getIdx().get(i);
-			edition.addPage(""+(++i), wordid);
+			File f = ed.getPageFiles().get(i)
+			String wordid = "w_0"
+			if (i < ed.getIdx().size()) {
+				wordid = ed.getIdx().get(i)
+			}
+			edition.addPage(""+(++i), wordid)
 		}
 	}
 	cpb.done()
@@ -204,4 +206,4 @@
 if (MONITOR != null && MONITOR.isCanceled()) { return MONITOR.done(); }
 if (MONITOR != null) MONITOR.worked(20, "FINALIZING")
 
-readyToLoad = project.save();
+readyToLoad = project.save()
Index: TXM/trunk/TXMBetaPlugins.site/site.xml
===================================================================
--- TXM/trunk/TXMBetaPlugins.site/site.xml	(revision 3587)
+++ TXM/trunk/TXMBetaPlugins.site/site.xml	(revision 3588)
@@ -3,51 +3,32 @@
    <description name="TXM Extensions - RELEASE" url="https://gitlab.huma-num.fr/txm/txm-software/-/raw/master/dist/0.8.2/ext/beta">
       This update site contains the BETA extensions for TXM
    </description>
-   <feature url="features/org.txm.annotation.feature_1.0.0.202006301717.jar" id="org.txm.annotation.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
+   <feature url="features/org.txm.wordcloud.feature_1.0.0.202301041636.jar" id="org.txm.wordcloud.feature" version="1.0.0.202301041636">
+      <category name="Commands"/>
    </feature>
-   <feature url="features/org.txm.annotation.urs.feature_1.0.0.202006301717.jar" id="org.txm.annotation.urs.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
+   <feature url="features/org.txm.treesearch.feature_1.0.0.202301041636.jar" id="org.txm.treesearch.feature" version="1.0.0.202301041636">
+      <category name="Commands"/>
    </feature>
-   <feature url="features/org.txm.backtomedia.feature_1.0.0.202006301717.jar" id="org.txm.backtomedia.feature" version="1.0.0.202006301717" os="">
-      <category name="ALL"/>
+   <feature url="features/org.txm.backtomedia.feature_1.0.0.202301041636.jar" id="org.txm.backtomedia.feature" version="1.0.0.202301041636">
+      <category name="Commands"/>
    </feature>
-   <feature url="features/org.txm.conllu.feature_1.0.0.202006301717.jar" id="org.txm.conllu.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
+   <feature url="features/org.txm.treetagger.binaries.feature_1.0.0.202301041636.jar" id="org.txm.treetagger.binaries.feature" version="1.0.0.202301041636" os="" ws="">
+      <category name="Annotation"/>
    </feature>
-   <feature url="features/org.txm.cql2lsa.feature_1.0.0.202006301717.jar" id="org.txm.cql2lsa.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
+   <feature url="features/org.txm.annotation.urs.feature_1.0.0.202301041636.jar" id="org.txm.annotation.urs.feature" version="1.0.0.202301041636">
+      <category name="Annotation"/>
    </feature>
-   <feature url="features/org.txm.dictionary.feature_1.0.0.202006301717.jar" id="org.txm.dictionary.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
+   <feature url="features/org.txm.treetagger.models.feature_1.0.0.202301041636.jar" id="org.txm.treetagger.models.feature" version="1.0.0.202301041636">
+      <category name="Annotation"/>
    </feature>
-   <feature url="features/org.txm.internalview.feature_1.0.0.202006301717.jar" id="org.txm.internalview.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.textsbalance.feature_1.0.0.202006301717.jar" id="org.txm.textsbalance.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.tigersearch.feature_1.0.0.202006301717.jar" id="org.txm.tigersearch.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.treetagger.models.feature_1.0.0.201912161444.jar" id="org.txm.treetagger.models.feature" version="1.0.0.201912161444">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.wordcloud.feature_1.0.0.202006301717.jar" id="org.txm.wordcloud.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.treetagger.binaries.feature_1.0.0.202006301717.jar" id="org.txm.treetagger.binaries.feature" version="1.0.0.202006301717" os="">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.treetagger.feature_1.0.0.202006301717.jar" id="org.txm.treetagger.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <feature url="features/org.txm.treetagger.models.feature_1.0.0.202006301717.jar" id="org.txm.treetagger.models.feature" version="1.0.0.202006301717">
-      <category name="ALL"/>
-   </feature>
-   <category-def name="ALL" label="ALL">
+   <category-def name="Commands" label="Commands">
       <description>
-         ALL TXM extensions
+         Add new commands to TXM
       </description>
    </category-def>
+   <category-def name="Annotation" label="Annotation">
+      <description>
+         Add new annotation modes to TXM
+      </description>
+   </category-def>
 </site>
Index: TXM/trunk/TXMReleasePlugins.site/site.xml
===================================================================
--- TXM/trunk/TXMReleasePlugins.site/site.xml	(revision 3587)
+++ TXM/trunk/TXMReleasePlugins.site/site.xml	(revision 3588)
@@ -18,6 +18,9 @@
    <feature url="features/org.txm.annotation.urs.feature_1.0.0.202105061720.jar" id="org.txm.annotation.urs.feature" version="1.0.0.202105061720">
       <category name="Annotation"/>
    </feature>
+   <feature url="features/org.txm.treesearch.feature_1.0.0.qualifier.jar" id="org.txm.treesearch.feature" version="1.0.0.qualifier">
+      <category name="Commands"/>
+   </feature>
    <category-def name="Commands" label="Commands">
       <description>
          Add new commands to TXM
