Skip to content

Commit 6ff8501

Browse files
committed
Fit newest APIs
1 parent 896b71d commit 6ff8501

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

.travis.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
sudo: required
2+
language: java
3+
language: kotlin
4+
jdk:
5+
- oraclejdk8
6+
script:
7+
- ./gradlew jar --info --warning-mode=all
8+
before_install:
9+
- chmod a+x gradlew

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Json for DevKt
22

3-
Json support for devkt.
3+
[![Build Status](https://travis-ci.org/devkt-plugins/json-devkt.svg?branch=master)](https://travis-ci.org/devkt-plugins/json-devkt)
4+
5+
Json support for devkt, based on the json module of [intellij-community][0].
46

57
Mention: this plugin supports json with comments.
8+
9+
[0]: https://github.com/JetBrains/intellij-community

src/com/intellij/devkt/json/Json.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package com.intellij.devkt.json;
22

3+
import kotlin.Pair;
4+
import org.ice1000.devkt.ASTToken;
35
import org.ice1000.devkt.openapi.ColorScheme;
46
import org.ice1000.devkt.openapi.ExtendedDevKtLanguage;
7+
import org.ice1000.devkt.openapi.util.CompletionElement;
58
import org.jetbrains.annotations.NotNull;
69
import org.jetbrains.annotations.Nullable;
710
import org.jetbrains.kotlin.com.intellij.lexer.LayeredLexer;
@@ -12,14 +15,42 @@
1215
import org.jetbrains.kotlin.com.intellij.psi.tree.IElementType;
1316

1417
import javax.swing.*;
18+
import java.util.Arrays;
19+
import java.util.HashSet;
20+
import java.util.Set;
1521

1622
public class Json<T> extends ExtendedDevKtLanguage<T> {
23+
24+
private final Pair<String, String> stringPair = new Pair<>("/*", "*/");
25+
private final HashSet<CompletionElement> completionElements = new HashSet<>(Arrays.asList(new CompletionElement("null"),
26+
new CompletionElement("true"),
27+
new CompletionElement("false")));
28+
1729
@NotNull
1830
@Override
1931
public String getLineCommentStart() {
2032
return "//";
2133
}
2234

35+
@Override
36+
public @NotNull Pair<String, String> getBlockComment() {
37+
return stringPair;
38+
}
39+
40+
@Override
41+
public boolean invokeAutoPopup(@NotNull ASTToken currentElement, @NotNull String inputString) {
42+
return inputString.length() == 1 && invokeAutoPopup(inputString.charAt(0));
43+
}
44+
45+
private boolean invokeAutoPopup(char c) {
46+
return Character.isAlphabetic(c) || c == '"' || c == ' ' || c == ':';
47+
}
48+
49+
@Override
50+
public @NotNull Set<CompletionElement> getInitialCompletionElementList() {
51+
return completionElements;
52+
}
53+
2354
@Override
2455
public @NotNull Icon getIcon() {
2556
return JsonFileType.INSTANCE.getIcon();

0 commit comments

Comments
 (0)