Skip to content

Commit

Permalink
add core systems for custom command tab completions
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Mar 27, 2021
1 parent 653474b commit 6bcec2f
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 0 deletions.
Expand Up @@ -43,6 +43,8 @@ public static class ClassPropertiesInfo {
public Map<String, String> propertyNamesByTag = new HashMap<>();
}

public static Set<String> allMechanismsEver = new HashSet<>();

@FunctionalInterface
public interface PropertyTag<T extends Property> {
ObjectTag run(Attribute attribute, T prop);
Expand Down Expand Up @@ -110,6 +112,7 @@ else if (!didRegisterTags) {
if (mechs != null) {
for (String mech : mechs) {
propInfo.propertiesByMechanism.put(mech, getter);
allMechanismsEver.add(mech);
}
propInfo.propertiesWithMechs.add(getter);
}
Expand Down
Expand Up @@ -10,6 +10,7 @@
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.function.Consumer;

public abstract class AbstractCommand {

Expand Down Expand Up @@ -53,6 +54,9 @@ else if (!arg.contains("<") && !arg.contains("|")) {
}
}

public void addCustomTabCompletions(String arg, Consumer<String> addOne) {
}

private boolean preparseArgs = true;

public boolean forceHold = false;
Expand Down
Expand Up @@ -7,6 +7,7 @@
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ListTag;
import com.denizenscript.denizencore.objects.core.MapTag;
import com.denizenscript.denizencore.objects.properties.PropertyParser;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizencore.utilities.debugging.Debug;
Expand Down Expand Up @@ -67,6 +68,13 @@ public AdjustCommand() {
//
// -->

@Override
public void addCustomTabCompletions(String arg, Consumer<String> addOne) {
for (String mech : PropertyParser.allMechanismsEver) {
addOne.accept(mech);
}
}

@Override
public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
for (Argument arg : scriptEntry.getProcessedArgs()) {
Expand Down
Expand Up @@ -25,6 +25,7 @@
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.util.*;
import java.util.function.Consumer;

public class YamlCommand extends AbstractCommand implements Holdable {

Expand Down Expand Up @@ -135,6 +136,15 @@ public enum YAML_Action {
DIVIDE, INSERT, REMOVE, SPLIT, DELETE, SPLIT_NEW
}

@Override
public void addCustomTabCompletions(String arg, Consumer<String> addOne) {
if (arg.startsWith("id:")) {
for (String yaml : yamlDocuments.keySet()) {
addOne.accept("id:" + yaml);
}
}
}

@Override
public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
boolean isSet = false;
Expand Down
Expand Up @@ -2,13 +2,17 @@

import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.Argument;
import com.denizenscript.denizencore.scripts.ScriptRegistry;
import com.denizenscript.denizencore.scripts.containers.ScriptContainer;
import com.denizenscript.denizencore.scripts.containers.core.TaskScriptContainer;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.core.ScriptTag;
import com.denizenscript.denizencore.scripts.ScriptEntry;
import com.denizenscript.denizencore.scripts.commands.AbstractCommand;

import java.util.List;
import java.util.function.Consumer;

public class InjectCommand extends AbstractCommand {

Expand Down Expand Up @@ -42,6 +46,15 @@ public InjectCommand() {
// - inject InjectedTask
// -->

@Override
public void addCustomTabCompletions(String arg, Consumer<String> addOne) {
for (ScriptContainer script : ScriptRegistry.scriptContainers.values()) {
if (script instanceof TaskScriptContainer) {
addOne.accept(script.getName());
}
}
}

@Override
public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
for (Argument arg : scriptEntry.getProcessedArgs()) {
Expand Down
Expand Up @@ -3,6 +3,9 @@
import com.denizenscript.denizencore.exceptions.InvalidArgumentsException;
import com.denizenscript.denizencore.objects.*;
import com.denizenscript.denizencore.objects.core.*;
import com.denizenscript.denizencore.scripts.ScriptRegistry;
import com.denizenscript.denizencore.scripts.containers.ScriptContainer;
import com.denizenscript.denizencore.scripts.containers.core.TaskScriptContainer;
import com.denizenscript.denizencore.utilities.ScriptUtilities;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.denizenscript.denizencore.DenizenCore;
Expand Down Expand Up @@ -84,6 +87,15 @@ public RunCommand() {
//
// -->

@Override
public void addCustomTabCompletions(String arg, Consumer<String> addOne) {
for (ScriptContainer script : ScriptRegistry.scriptContainers.values()) {
if (script instanceof TaskScriptContainer) {
addOne.accept(script.getName());
}
}
}

@Override
public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
for (Argument arg : scriptEntry.getProcessedArgs()) {
Expand Down

0 comments on commit 6bcec2f

Please sign in to comment.