+ Module result = (Module) inputElement;
+ List<SCLValue> values = new ArrayList<>();
+ result.findValuesForPrefix("", AcceptAllNamespaceFilter.INSTANCE, value -> {
+ values.add(value);
+ });
+ values.sort(new Comparator<SCLValue>() {
+
+ @Override
+ public int compare(SCLValue o1, SCLValue o2) {
+ int isPrivate = Boolean.compare(o1.isPrivate(), o2.isPrivate());
+ if (isPrivate != 0)
+ return isPrivate;
+ else
+ return o1.getName().name.compareTo(o2.getName().name);
+ }
+ });
+ List<TCon> types = new ArrayList<>();
+ result.findTypesForPrefix("", AcceptAllNamespaceFilter.INSTANCE, type -> {
+ types.add(type);
+ });
+ types.sort(new Comparator<TCon>() {
+
+ @Override
+ public int compare(TCon o1, TCon o2) {
+ return o1.name.compareTo(o2.name);
+ }
+ });
+ List<Object> results = new ArrayList<>();
+ results.addAll(types);
+ results.addAll(values);
+ return results.toArray();