Skip to content

Commit 6af3a98

Browse files
committed
Type annotations
1 parent 31c57e6 commit 6af3a98

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/main/java/nextflow/lsp/ast/ASTNodeStringUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,10 @@ private static String workflowToLabel(WorkflowNode node) {
114114
for( var take : takes ) {
115115
fmt.appendIndent();
116116
fmt.append(take.getName());
117+
if( fmt.hasType(take) ) {
118+
fmt.append(": ");
119+
fmt.visitTypeAnnotation(take.getType());
120+
}
117121
fmt.appendNewLine();
118122
}
119123
fmt.appendNewLine();

src/main/java/nextflow/lsp/services/SemanticTokensVisitor.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ public void append(ASTNode node, String type) {
6969
append(node.getLineNumber() - 1, node.getColumnNumber() - 1, length, type);
7070
}
7171

72+
public void append(ASTNode node, int length, String type) {
73+
append(node.getLineNumber() - 1, node.getColumnNumber() - 1, length, type);
74+
}
75+
7276
public void append(TokenPosition start, String text, String type) {
7377
append(start.line(), start.character(), text.length(), type);
7478
}
@@ -143,7 +147,7 @@ public void visitParameters(Parameter[] parameters) {
143147
if( param.getNodeMetaData("_START_NAME") instanceof TokenPosition start )
144148
append(start, param.getName(), SemanticTokenTypes.Parameter);
145149
else
146-
append(param.getLineNumber() - 1, param.getColumnNumber() - 1, param.getName().length(), SemanticTokenTypes.Parameter);
150+
append(param, param.getName().length(), SemanticTokenTypes.Parameter);
147151
if( param.hasInitialExpression() )
148152
visit(param.getInitialExpression());
149153
}
@@ -184,7 +188,7 @@ public void visitVariableExpression(VariableExpression node) {
184188
else if( mn != null && !findAnnotation(mn, Constant.class).isPresent() )
185189
append(node, SemanticTokenTypes.Function);
186190
else if( !(variable instanceof DynamicVariable) )
187-
append(node, SemanticTokenTypes.Variable);
191+
append(node, node.getName().length(), SemanticTokenTypes.Variable);
188192
}
189193

190194
@Override

src/main/java/nextflow/lsp/services/script/ScriptSemanticTokensProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,14 @@ protected void visitWorkflowEmits(List<Statement> emits) {
137137
var emit = es.getExpression();
138138
if( emit instanceof AssignmentExpression assign ) {
139139
var ve = (VariableExpression)assign.getLeftExpression();
140-
tok.append(ve, SemanticTokenTypes.Parameter);
140+
tok.append(ve, ve.getName().length(), SemanticTokenTypes.Parameter);
141141
tok.visit(assign.getRightExpression());
142142
}
143143
else if( emit instanceof VariableExpression ve ) {
144144
if( emits.size() == 1 )
145145
tok.visit(emit);
146146
else
147-
tok.append(ve, SemanticTokenTypes.Parameter);
147+
tok.append(ve, ve.getName().length(), SemanticTokenTypes.Parameter);
148148
}
149149
else {
150150
tok.visit(stmt);

0 commit comments

Comments
 (0)