Skip to content

Commit 7f01e7a

Browse files
authored
Merge pull request #33777 from vespa-engine/theodorkl/YQLCompletions
Theodorkl/YQL completions
2 parents 69166a2 + c70aaee commit 7f01e7a

23 files changed

+491
-17
lines changed

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/SchemaTextDocumentService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
import ai.vespa.schemals.context.EventDocumentContext;
6262
import ai.vespa.schemals.context.InvalidContextException;
6363
import ai.vespa.schemals.index.SchemaIndex;
64+
import ai.vespa.schemals.lsp.common.completion.CommonCompletion;
6465
import ai.vespa.schemals.lsp.schema.codeaction.SchemaCodeAction;
65-
import ai.vespa.schemals.lsp.schema.completion.SchemaCompletion;
6666
import ai.vespa.schemals.lsp.schema.definition.SchemaDefinition;
6767
import ai.vespa.schemals.lsp.schema.documentsymbols.SchemaDocumentSymbols;
6868
import ai.vespa.schemals.lsp.schema.hover.SchemaHover;
@@ -99,7 +99,7 @@ public CompletableFuture<Either<List<CompletionItem>, CompletionList>> completio
9999
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
100100
PrintStream errorLogger = new PrintStream(outputStream);
101101
Either<List<CompletionItem>, CompletionList> result =
102-
Either.forLeft(SchemaCompletion.getCompletionItems(eventContextCreator.createContext(completionParams), errorLogger));
102+
Either.forLeft(CommonCompletion.getCompletionItems(eventContextCreator.createContext(completionParams), errorLogger));
103103

104104
if (outputStream.size() > 0) {
105105
schemaMessageHandler.logMessage(MessageType.Error,
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ai.vespa.schemals.lsp.common.completion;
2+
3+
import java.io.PrintStream;
4+
import java.util.ArrayList;
5+
6+
import org.eclipse.lsp4j.CompletionItem;
7+
8+
import ai.vespa.schemals.common.StringUtils;
9+
import ai.vespa.schemals.context.EventCompletionContext;
10+
import ai.vespa.schemals.lsp.schema.completion.SchemaCompletion;
11+
import ai.vespa.schemals.lsp.yqlplus.completion.YQLCompletion;
12+
import ai.vespa.schemals.schemadocument.DocumentManager.DocumentType;
13+
14+
/**
15+
* Responsible for LSP textDocument/completion requests.
16+
*/
17+
public class CommonCompletion {
18+
19+
public static ArrayList<CompletionItem> getCompletionItems(EventCompletionContext context, PrintStream errorLogger) {
20+
21+
if (StringUtils.isInsideComment(context.document.getCurrentContent(), context.position)) {
22+
return new ArrayList<CompletionItem>();
23+
}
24+
25+
if (context.document.getDocumentType() == DocumentType.SCHEMA || context.document.getDocumentType() == DocumentType.PROFILE) {
26+
return SchemaCompletion.getCompletionItems(context, errorLogger);
27+
}
28+
29+
return YQLCompletion.getCompletionItems(context, errorLogger);
30+
}
31+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ai.vespa.schemals.lsp.schema.completion.provider;
1+
package ai.vespa.schemals.lsp.common.completion;
22

33
import java.util.List;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package ai.vespa.schemals.lsp.schema.completion.utils;
1+
package ai.vespa.schemals.lsp.common.completion;
22

33
import java.util.ArrayList;
44
import java.util.List;

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/SchemaCompletion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import ai.vespa.schemals.common.StringUtils;
99
import ai.vespa.schemals.context.EventCompletionContext;
1010
import ai.vespa.schemals.lsp.schema.completion.provider.BodyKeywordCompletion;
11-
import ai.vespa.schemals.lsp.schema.completion.provider.CompletionProvider;
11+
import ai.vespa.schemals.lsp.common.completion.CompletionProvider;
1212
import ai.vespa.schemals.lsp.schema.completion.provider.EmptyFileCompletion;
1313
import ai.vespa.schemals.lsp.schema.completion.provider.FieldsCompletion;
1414
import ai.vespa.schemals.lsp.schema.completion.provider.IndexingLangaugeCompletion;

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/provider/BodyKeywordCompletion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
import org.eclipse.lsp4j.Range;
1212

1313
import ai.vespa.schemals.context.EventCompletionContext;
14-
import ai.vespa.schemals.lsp.schema.completion.utils.CompletionUtils;
14+
import ai.vespa.schemals.lsp.common.completion.CompletionProvider;
15+
import ai.vespa.schemals.lsp.common.completion.CompletionUtils;
1516
import ai.vespa.schemals.lsp.schema.hover.SchemaHover;
1617
import ai.vespa.schemals.parser.ast.NL;
1718
import ai.vespa.schemals.parser.ast.RootRankProfile;
@@ -39,7 +40,6 @@
3940
import ai.vespa.schemals.parser.ast.weakandElm;
4041
import ai.vespa.schemals.tree.CSTUtils;
4142
import ai.vespa.schemals.tree.Node;
42-
import ai.vespa.schemals.tree.SchemaNode;
4343

4444
public class BodyKeywordCompletion implements CompletionProvider {
4545
// Currently key is the classLeafIdentifierString of a node with a body

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/provider/EmptyFileCompletion.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
import ai.vespa.schemals.common.FileUtils;
99
import ai.vespa.schemals.parser.ast.NL;
1010
import ai.vespa.schemals.context.EventCompletionContext;
11-
import ai.vespa.schemals.lsp.schema.completion.utils.CompletionUtils;
11+
import ai.vespa.schemals.lsp.common.completion.CompletionProvider;
12+
import ai.vespa.schemals.lsp.common.completion.CompletionUtils;
1213
import ai.vespa.schemals.schemadocument.DocumentManager;
1314
import ai.vespa.schemals.tree.Node;
1415
import ai.vespa.schemals.tree.SchemaNode;

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/provider/FieldsCompletion.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
import ai.vespa.schemals.context.EventCompletionContext;
1515
import ai.vespa.schemals.index.Symbol;
1616
import ai.vespa.schemals.index.Symbol.SymbolType;
17-
import ai.vespa.schemals.lsp.schema.completion.utils.CompletionUtils;
17+
import ai.vespa.schemals.lsp.common.completion.CompletionProvider;
18+
import ai.vespa.schemals.lsp.common.completion.CompletionUtils;
1819
import ai.vespa.schemals.parser.Token.TokenType;
1920
import ai.vespa.schemals.schemadocument.SchemaDocument;
2021
import ai.vespa.schemals.tree.CSTUtils;

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/provider/FixedKeywordBodies.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.eclipse.lsp4j.CompletionItemKind;
77

88
import ai.vespa.schemals.common.LocaleList;
9-
import ai.vespa.schemals.lsp.schema.completion.utils.CompletionUtils;
9+
import ai.vespa.schemals.lsp.common.completion.CompletionUtils;
1010
import ai.vespa.schemals.parser.Node;
1111
import ai.vespa.schemals.parser.Token.TokenType;
1212
import ai.vespa.schemals.parser.ast.attributeElm;

integration/schema-language-server/language-server/src/main/java/ai/vespa/schemals/lsp/schema/completion/provider/IndexingLangaugeCompletion.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
import org.eclipse.lsp4j.Position;
77

88
import ai.vespa.schemals.context.EventCompletionContext;
9-
import ai.vespa.schemals.lsp.schema.completion.utils.CompletionUtils;
9+
import ai.vespa.schemals.lsp.common.completion.CompletionProvider;
10+
import ai.vespa.schemals.lsp.common.completion.CompletionUtils;
1011
import ai.vespa.schemals.parser.ast.COLON;
1112
import ai.vespa.schemals.parser.ast.INDEXING;
1213
import ai.vespa.schemals.tree.CSTUtils;

0 commit comments

Comments
 (0)