Skip to content

Commit 152fc29

Browse files
author
zkaplan
committed
Some additions to tags and override for set
1 parent ec570e7 commit 152fc29

5 files changed

Lines changed: 45 additions & 1 deletion

File tree

src/main/java/com/hubspot/jinjava/doc/JinjavaDocFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.hubspot.jinjava.doc.annotations.JinjavaMetaValue;
55
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
66
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
7+
import com.hubspot.jinjava.doc.annotations.JinjavaVSCodeSnippet;
78
import com.hubspot.jinjava.lib.exptest.ExpTest;
89
import com.hubspot.jinjava.lib.filter.Filter;
910
import com.hubspot.jinjava.lib.fn.ELFunctionDefinition;
@@ -293,6 +294,12 @@ private com.hubspot.jinjava.doc.annotations.JinjavaDoc getJinjavaDocAnnotation(
293294
}
294295

295296
private String getTagSnippet(Tag tag) {
297+
JinjavaVSCodeSnippet annotation = tag
298+
.getClass()
299+
.getAnnotation(JinjavaVSCodeSnippet.class);
300+
if (annotation != null) {
301+
return annotation.code();
302+
}
296303
com.hubspot.jinjava.doc.annotations.JinjavaDoc docAnnotation = getJinjavaDocAnnotation(
297304
tag.getClass()
298305
);
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.hubspot.jinjava.doc.annotations;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
@Retention(RetentionPolicy.RUNTIME)
9+
@Target({ ElementType.TYPE, ElementType.METHOD })
10+
public @interface JinjavaVSCodeSnippet {
11+
String desc() default "";
12+
13+
String code();
14+
15+
String output() default "";
16+
}

src/main/java/com/hubspot/jinjava/lib/tag/ElseIfTag.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11
package com.hubspot.jinjava.lib.tag;
22

33
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
4+
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
45
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
56
import com.hubspot.jinjava.tree.TagNode;
67

7-
@JinjavaDoc(value = "", hidden = true)
8+
@JinjavaDoc(
9+
value = "",
10+
params = {
11+
@JinjavaParam(
12+
value = "condition",
13+
type = "conditional expression",
14+
desc = "An expression that evaluates to either true or false"
15+
)
16+
},
17+
hidden = true
18+
)
819
public class ElseIfTag implements Tag {
920
public static final String TAG_NAME = "elif";
1021

src/main/java/com/hubspot/jinjava/lib/tag/IfTag.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.hubspot.jinjava.lib.tag;
1717

1818
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
19+
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
1920
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
2021
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
2122
import com.hubspot.jinjava.interpret.OutputTooBigException;
@@ -30,6 +31,13 @@
3031

3132
@JinjavaDoc(
3233
value = "Outputs inner content if expression evaluates to true, otherwise evaluates any elif blocks, finally outputting content of any else block present",
34+
params = {
35+
@JinjavaParam(
36+
value = "condition",
37+
type = "conditional expression",
38+
desc = "An expression that evaluates to either true or false"
39+
)
40+
},
3341
snippets = {
3442
@JinjavaSnippet(
3543
code = "{% if condition %}\n" +

src/main/java/com/hubspot/jinjava/lib/tag/SetTag.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.hubspot.jinjava.doc.annotations.JinjavaDoc;
1919
import com.hubspot.jinjava.doc.annotations.JinjavaParam;
2020
import com.hubspot.jinjava.doc.annotations.JinjavaSnippet;
21+
import com.hubspot.jinjava.doc.annotations.JinjavaVSCodeSnippet;
2122
import com.hubspot.jinjava.interpret.DeferredValue;
2223
import com.hubspot.jinjava.interpret.DeferredValueException;
2324
import com.hubspot.jinjava.interpret.JinjavaInterpreter;
@@ -63,6 +64,7 @@
6364
)
6465
}
6566
)
67+
@JinjavaVSCodeSnippet(code = "{% set ${1:var} = ${2:expr} %}")
6668
public class SetTag implements Tag {
6769
public static final String TAG_NAME = "set";
6870

0 commit comments

Comments
 (0)