Search in sources :

Example 1 with BasicYValueHint

use of org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint in project sts4 by spring-projects.

the class ConcourseModel method addExtraInsertion.

private YValueHint addExtraInsertion(YValueHint h, DynamicSchemaContext dc) {
    return new BasicYValueHint(h.getValue(), h.getLabel()).setExtraInsertion(() -> {
        String resourceTypeName = h.getValue();
        AbstractType sourceType = (AbstractType) resourceTypes.getSourceType(resourceTypeName);
        if (sourceType != null && getParentPropertyNode("source", dc) == null) {
            // don't auto insert what's already there!
            List<YTypedProperty> requiredProps = sourceType.getProperties().stream().filter(p -> p.isRequired()).collect(Collectors.toList());
            if (!requiredProps.isEmpty()) {
                SnippetBuilder snippet = snippetBuilderFactory.get();
                snippet.text("\nsource:");
                for (YTypedProperty p : requiredProps) {
                    snippet.text("\n  " + p.getName() + ": ");
                    snippet.placeHolder();
                }
                return snippet.toString();
            }
        }
        return null;
    });
}
Also used : AbstractType(org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.AbstractType) Arrays(java.util.Arrays) IDocument(org.springframework.ide.vscode.commons.util.text.IDocument) YamlPathSegment.valueAt(org.springframework.ide.vscode.commons.yaml.path.YamlPathSegment.valueAt) ASTRootCursor(org.springframework.ide.vscode.commons.yaml.path.ASTRootCursor) NodeTypes(org.springframework.ide.vscode.commons.yaml.reconcile.ASTTypeCache.NodeTypes) YamlSchemaProblems(org.springframework.ide.vscode.commons.yaml.reconcile.YamlSchemaProblems) Multiset(com.google.common.collect.Multiset) NodeUtil(org.springframework.ide.vscode.commons.yaml.ast.NodeUtil) NodeCursor(org.springframework.ide.vscode.commons.yaml.path.NodeCursor) Supplier(com.google.common.base.Supplier) YamlAstCache(org.springframework.ide.vscode.commons.yaml.ast.YamlAstCache) Function(java.util.function.Function) ASTTypeCache(org.springframework.ide.vscode.commons.yaml.reconcile.ASTTypeCache) MappingNode(org.yaml.snakeyaml.nodes.MappingNode) Node(org.yaml.snakeyaml.nodes.Node) StringUtil(org.springframework.ide.vscode.commons.util.StringUtil) YamlTraversal(org.springframework.ide.vscode.commons.yaml.path.YamlTraversal) YTypeFactory(org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory) BasicYValueHint(org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint) YamlFileAST(org.springframework.ide.vscode.commons.yaml.ast.YamlFileAST) ImmutableMultiset(com.google.common.collect.ImmutableMultiset) IProblemCollector(org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector) YamlPath(org.springframework.ide.vscode.commons.yaml.path.YamlPath) YamlPathSegment.anyChild(org.springframework.ide.vscode.commons.yaml.path.YamlPathSegment.anyChild) YamlPathSegment.keyAt(org.springframework.ide.vscode.commons.yaml.path.YamlPathSegment.keyAt) DynamicSchemaContext(org.springframework.ide.vscode.commons.yaml.schema.DynamicSchemaContext) SnippetBuilder(org.springframework.ide.vscode.commons.languageserver.util.SnippetBuilder) YBeanUnionType(org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.YBeanUnionType) YamlPathSegment(org.springframework.ide.vscode.commons.yaml.path.YamlPathSegment) YTypedProperty(org.springframework.ide.vscode.commons.yaml.schema.YTypedProperty) CollectorUtil(org.springframework.ide.vscode.commons.util.CollectorUtil) Log(org.springframework.ide.vscode.commons.util.Log) Builder(com.google.common.collect.ImmutableMultiset.Builder) Collection(java.util.Collection) Set(java.util.Set) Constraint(org.springframework.ide.vscode.commons.yaml.schema.constraints.Constraint) Collectors(java.util.stream.Collectors) Assert(org.springframework.ide.vscode.commons.util.Assert) YType(org.springframework.ide.vscode.commons.yaml.schema.YType) List(java.util.List) Stream(java.util.stream.Stream) Streams(org.springframework.ide.vscode.commons.yaml.util.Streams) Entry(java.util.Map.Entry) Optional(java.util.Optional) YValueHint(org.springframework.ide.vscode.commons.yaml.schema.YValueHint) SimpleLanguageServer(org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer) YAMLException(org.yaml.snakeyaml.error.YAMLException) BasicYValueHint(org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint) AbstractType(org.springframework.ide.vscode.commons.yaml.schema.YTypeFactory.AbstractType) SnippetBuilder(org.springframework.ide.vscode.commons.languageserver.util.SnippetBuilder) YTypedProperty(org.springframework.ide.vscode.commons.yaml.schema.YTypedProperty)

Aggregations

Supplier (com.google.common.base.Supplier)1 ImmutableMultiset (com.google.common.collect.ImmutableMultiset)1 Builder (com.google.common.collect.ImmutableMultiset.Builder)1 Multiset (com.google.common.collect.Multiset)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 List (java.util.List)1 Entry (java.util.Map.Entry)1 Optional (java.util.Optional)1 Set (java.util.Set)1 Function (java.util.function.Function)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 IProblemCollector (org.springframework.ide.vscode.commons.languageserver.reconcile.IProblemCollector)1 SimpleLanguageServer (org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer)1 SnippetBuilder (org.springframework.ide.vscode.commons.languageserver.util.SnippetBuilder)1 Assert (org.springframework.ide.vscode.commons.util.Assert)1 CollectorUtil (org.springframework.ide.vscode.commons.util.CollectorUtil)1 Log (org.springframework.ide.vscode.commons.util.Log)1 StringUtil (org.springframework.ide.vscode.commons.util.StringUtil)1