diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
index 91865b2..e7a888d 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
@@ -784,7 +784,7 @@
 			}
 			this.lexer.setReportAsterisk(false);
 		}
-		List<Parameter> parameters;
+		List<? extends Parameter> parameters;
 		if (!(parameters= command.getParameters()).isEmpty()) {
 			int nextArg= 0;
 			final List<TexAstNode> children= new ArrayList<>();
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
index a9a7ec2..b108d7d 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
@@ -18,8 +18,6 @@
 
 import static org.eclipse.statet.docmlet.tex.core.ast.TexAstStatusConstants.TYPE123_GROUP_NOT_CLOSED;
 
-import java.util.List;
-
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 import org.eclipse.statet.jcommons.text.core.BasicTextRegion;
@@ -43,7 +41,7 @@
 	 * @return array with the resolved arguments (items can be <code>null</code>)
 	 */
 	public static @Nullable TexAstNode[] resolveArguments(final ControlNode node) {
-		final List<Parameter> parameters= nonNullAssert(node.getCommand()).getParameters();
+		final var parameters= nonNullAssert(node.getCommand()).getParameters();
 		final @Nullable TexAstNode[] resolved= new @Nullable TexAstNode[parameters.size()];
 		int idxArgs= 0, idxValues= 0;
 		while (idxArgs < resolved.length && idxValues < node.getChildCount()) {
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
index 609331e..97bd09f 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
@@ -14,8 +14,7 @@
 
 package org.eclipse.statet.docmlet.tex.core.commands;
 
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 
 
@@ -23,13 +22,16 @@
 public class LtxFontCommand extends TexCommand {
 	
 	
-	public LtxFontCommand(final int type, final String word, final String description) {
-		super(type, word, description);
-	}
-	
-	public LtxFontCommand(final int type, final String word, final List<Parameter> parameters,
+	public LtxFontCommand(final int type,
+			final String word, final ImList<? extends Parameter> parameters,
 			final String description) {
 		super(type, word, false, parameters, description);
 	}
 	
+	public LtxFontCommand(final int type,
+			final String word,
+			final String description) {
+		super(type, word, description);
+	}
+	
 }
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
index 1a858ab..c0df853 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
@@ -14,8 +14,7 @@
 
 package org.eclipse.statet.docmlet.tex.core.commands;
 
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 
 
@@ -26,13 +25,16 @@
 	private final String unicode;
 	
 	
-	public LtxPrintCommand(final int type, final String word, final String description,
+	public LtxPrintCommand(final int type,
+			final String word,
+			final String description,
 			final String unicode) {
 		super(type, word, description);
 		this.unicode= unicode;
 	}
 	
-	public LtxPrintCommand(final int type, final String word, final List<Parameter> parameters,
+	public LtxPrintCommand(final int type,
+			final String word, final ImList<? extends Parameter> parameters,
 			final String description,
 			final String unicode) {
 		super(type, word, false, parameters, description);
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
index b286ffb..447f2ef 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
@@ -14,13 +14,13 @@
 
 package org.eclipse.statet.docmlet.tex.core.commands;
 
-import java.util.Collections;
-import java.util.List;
 import java.util.Locale;
 
 import com.ibm.icu.text.Collator;
 import com.ibm.icu.text.RuleBasedCollator;
 
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.collections.ImList;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
@@ -226,7 +226,7 @@
 	}
 	
 	
-	private static final List<Parameter> NO_PARAMS= Collections.emptyList();
+	private static final ImList<? extends Parameter> NO_PARAMS= ImCollections.emptyList();
 	
 	/*package*/ static final Collator COLLATOR= Collator.getInstance(Locale.ENGLISH);
 	static {
@@ -237,7 +237,7 @@
 	private final int type;
 	private final String word;
 	private final boolean supportAserisk;
-	private final List<Parameter> parameters;
+	private final ImList<? extends Parameter> parameters;
 	
 	private final String description;
 	
@@ -245,8 +245,9 @@
 	
 	
 	public TexCommand(final int type,
-			final String word, final boolean asterisk, final List<Parameter> parameters,
-			final @Nullable TexPackage texPackage, final String description) {
+			final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
+			final @Nullable TexPackage texPackage,
+			final String description) {
 		this.type= type;
 		this.word= word;
 		this.supportAserisk= asterisk;
@@ -256,12 +257,14 @@
 	}
 	
 	public TexCommand(final int type,
-			final String word, final boolean asterisk, final List<Parameter> parameters,
+			final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
 			final String description) {
 		this(type, word, asterisk, parameters, null, description);
 	}
 	
-	public TexCommand(final int type, final String word, final String description) {
+	public TexCommand(final int type,
+			final String word,
+			final String description) {
 		this(type, word, false, NO_PARAMS, null, description);
 	}
 	
@@ -278,7 +281,7 @@
 		return this.supportAserisk;
 	}
 	
-	public List<Parameter> getParameters() {
+	public ImList<? extends Parameter> getParameters() {
 		return this.parameters;
 	}
 	
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
index 776763e..fe89521 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
@@ -14,8 +14,7 @@
 
 package org.eclipse.statet.docmlet.tex.core.commands;
 
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
 import org.eclipse.statet.jcommons.lang.Nullable;
 
@@ -30,7 +29,7 @@
 	
 	
 	public TexEmbedCommand(final int type, final String embeddedType,
-			final String word, final boolean asterisk, final List<Parameter> parameters,
+			final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
 			final String description) {
 		super(type, word, asterisk, parameters, description);
 		this.embeddedType= embeddedType;
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
index f9597cd..a5bf41b 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
@@ -405,7 +405,7 @@
 			mode= 201;
 		}
 		else if ((this.command.getType() & TexCommand.MASK_MAIN) != TexCommand.ENV) {
-			final List<Parameter> parameters= this.command.getParameters();
+			final var parameters= this.command.getParameters();
 			if (parameters != null && !parameters.isEmpty()) {
 				final boolean isFirstOptional= parameters.get(0).isOptional();
 				int idxFirstRequired= -1;
