Add syntax highlighting for *.def files
This commit is contained in:
@@ -13,8 +13,12 @@ dependencies {
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
"main" { projectDefault() }
|
||||
"test" { none() }
|
||||
"main" {
|
||||
projectDefault()
|
||||
java.srcDir("gen")
|
||||
}
|
||||
"test" { projectDefault() }
|
||||
|
||||
}
|
||||
|
||||
configureFormInstrumentation()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,395 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan;
|
||||
|
||||
import com.intellij.lang.PsiBuilder;
|
||||
import com.intellij.lang.PsiBuilder.Marker;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import static com.intellij.lang.parser.GeneratedParserUtilBase.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import com.intellij.lang.PsiParser;
|
||||
import com.intellij.lang.LightPsiParser;
|
||||
|
||||
@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
|
||||
public class NativeDefinitionsParser implements PsiParser, LightPsiParser {
|
||||
|
||||
public ASTNode parse(IElementType t, PsiBuilder b) {
|
||||
parseLight(t, b);
|
||||
return b.getTreeBuilt();
|
||||
}
|
||||
|
||||
public void parseLight(IElementType t, PsiBuilder b) {
|
||||
boolean r;
|
||||
b = adapt_builder_(t, b, this, null);
|
||||
Marker m = enter_section_(b, 0, _COLLAPSE_, null);
|
||||
if (t == BOOL_KEY) {
|
||||
r = boolKey(b, 0);
|
||||
}
|
||||
else if (t == BOOL_VALUE) {
|
||||
r = boolValue(b, 0);
|
||||
}
|
||||
else if (t == CODE) {
|
||||
r = code(b, 0);
|
||||
}
|
||||
else if (t == STRING_KEY) {
|
||||
r = stringKey(b, 0);
|
||||
}
|
||||
else if (t == STRING_VALUE) {
|
||||
r = stringValue(b, 0);
|
||||
}
|
||||
else if (t == STRINGS_KEY) {
|
||||
r = stringsKey(b, 0);
|
||||
}
|
||||
else if (t == STRINGS_VALUE) {
|
||||
r = stringsValue(b, 0);
|
||||
}
|
||||
else {
|
||||
r = parse_root_(t, b, 0);
|
||||
}
|
||||
exit_section_(b, 0, m, t, r, true, TRUE_CONDITION);
|
||||
}
|
||||
|
||||
protected boolean parse_root_(IElementType t, PsiBuilder b, int l) {
|
||||
return root(b, l + 1);
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// boolKey platform_? SEPARATOR boolValue
|
||||
static boolean boolDefinition_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "boolDefinition_")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = boolKey(b, l + 1);
|
||||
r = r && boolDefinition__1(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
r = r && boolValue(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// platform_?
|
||||
private static boolean boolDefinition__1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "boolDefinition__1")) return false;
|
||||
platform_(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// DISABLE_DESIGNATED_INITIALIZER_CHECKS | EXCLUDE_DEPENDENT_MODULES | EXCLUDE_SYSTEM_LIBS
|
||||
public static boolean boolKey(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "boolKey")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, BOOL_KEY, "<bool key>");
|
||||
r = consumeToken(b, DISABLE_DESIGNATED_INITIALIZER_CHECKS);
|
||||
if (!r) r = consumeToken(b, EXCLUDE_DEPENDENT_MODULES);
|
||||
if (!r) r = consumeToken(b, EXCLUDE_SYSTEM_LIBS);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// VALUE
|
||||
public static boolean boolValue(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "boolValue")) return false;
|
||||
if (!nextTokenIs(b, VALUE)) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, VALUE);
|
||||
exit_section_(b, m, BOOL_VALUE, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// CODE_CHARS
|
||||
public static boolean code(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "code")) return false;
|
||||
if (!nextTokenIs(b, CODE_CHARS)) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, CODE_CHARS);
|
||||
exit_section_(b, m, CODE, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// COMMENT | boolDefinition_ | stringDefinition_ | stringsDefinition_ | incorrectDefinition_
|
||||
static boolean definitionItem_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "definitionItem_")) return false;
|
||||
boolean r;
|
||||
r = consumeToken(b, COMMENT);
|
||||
if (!r) r = boolDefinition_(b, l + 1);
|
||||
if (!r) r = stringDefinition_(b, l + 1);
|
||||
if (!r) r = stringsDefinition_(b, l + 1);
|
||||
if (!r) r = incorrectDefinition_(b, l + 1);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// LANGUAGE | LINKER
|
||||
static boolean extensibleStringKey_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "extensibleStringKey_")) return false;
|
||||
if (!nextTokenIs(b, "", LANGUAGE, LINKER)) return false;
|
||||
boolean r;
|
||||
r = consumeToken(b, LANGUAGE);
|
||||
if (!r) r = consumeToken(b, LINKER);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// UNKNOWN_KEY? UNKNOWN_PLATFORM? SEPARATOR VALUE? | UNKNOWN_KEY UNKNOWN_PLATFORM?
|
||||
static boolean incorrectDefinition_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition_")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = incorrectDefinition__0(b, l + 1);
|
||||
if (!r) r = incorrectDefinition__1(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// UNKNOWN_KEY? UNKNOWN_PLATFORM? SEPARATOR VALUE?
|
||||
private static boolean incorrectDefinition__0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = incorrectDefinition__0_0(b, l + 1);
|
||||
r = r && incorrectDefinition__0_1(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
r = r && incorrectDefinition__0_3(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// UNKNOWN_KEY?
|
||||
private static boolean incorrectDefinition__0_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__0_0")) return false;
|
||||
consumeToken(b, UNKNOWN_KEY);
|
||||
return true;
|
||||
}
|
||||
|
||||
// UNKNOWN_PLATFORM?
|
||||
private static boolean incorrectDefinition__0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__0_1")) return false;
|
||||
consumeToken(b, UNKNOWN_PLATFORM);
|
||||
return true;
|
||||
}
|
||||
|
||||
// VALUE?
|
||||
private static boolean incorrectDefinition__0_3(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__0_3")) return false;
|
||||
consumeToken(b, VALUE);
|
||||
return true;
|
||||
}
|
||||
|
||||
// UNKNOWN_KEY UNKNOWN_PLATFORM?
|
||||
private static boolean incorrectDefinition__1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__1")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, UNKNOWN_KEY);
|
||||
r = r && incorrectDefinition__1_1(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// UNKNOWN_PLATFORM?
|
||||
private static boolean incorrectDefinition__1_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "incorrectDefinition__1_1")) return false;
|
||||
consumeToken(b, UNKNOWN_PLATFORM);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// ANDROID | ANDROID_ARM32 | ANDROID_ARM64 | ARM32 | ARM64 | IOS | IOS_ARM32
|
||||
// | IOS_ARM64 | IOS_X64 | LINUX | LINUX_ARM32_HFP | LINUX_MIPS32
|
||||
// | LINUX_MIPSEL32 | LINUX_X64 | MACOS_X64 | MINGW | MINGW_X64 | MIPS32
|
||||
// | MIPSEL32 | OSX | WASM | WASM32 | X64 | UNKNOWN_PLATFORM
|
||||
static boolean platform_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "platform_")) return false;
|
||||
boolean r;
|
||||
r = consumeToken(b, ANDROID);
|
||||
if (!r) r = consumeToken(b, ANDROID_ARM32);
|
||||
if (!r) r = consumeToken(b, ANDROID_ARM64);
|
||||
if (!r) r = consumeToken(b, ARM32);
|
||||
if (!r) r = consumeToken(b, ARM64);
|
||||
if (!r) r = consumeToken(b, IOS);
|
||||
if (!r) r = consumeToken(b, IOS_ARM32);
|
||||
if (!r) r = consumeToken(b, IOS_ARM64);
|
||||
if (!r) r = consumeToken(b, IOS_X64);
|
||||
if (!r) r = consumeToken(b, LINUX);
|
||||
if (!r) r = consumeToken(b, LINUX_ARM32_HFP);
|
||||
if (!r) r = consumeToken(b, LINUX_MIPS32);
|
||||
if (!r) r = consumeToken(b, LINUX_MIPSEL32);
|
||||
if (!r) r = consumeToken(b, LINUX_X64);
|
||||
if (!r) r = consumeToken(b, MACOS_X64);
|
||||
if (!r) r = consumeToken(b, MINGW);
|
||||
if (!r) r = consumeToken(b, MINGW_X64);
|
||||
if (!r) r = consumeToken(b, MIPS32);
|
||||
if (!r) r = consumeToken(b, MIPSEL32);
|
||||
if (!r) r = consumeToken(b, OSX);
|
||||
if (!r) r = consumeToken(b, WASM);
|
||||
if (!r) r = consumeToken(b, WASM32);
|
||||
if (!r) r = consumeToken(b, X64);
|
||||
if (!r) r = consumeToken(b, UNKNOWN_PLATFORM);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// definitionItem_* (DELIM code)?
|
||||
static boolean root(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "root")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = root_0(b, l + 1);
|
||||
r = r && root_1(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// definitionItem_*
|
||||
private static boolean root_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "root_0")) return false;
|
||||
while (true) {
|
||||
int c = current_position_(b);
|
||||
if (!definitionItem_(b, l + 1)) break;
|
||||
if (!empty_element_parsed_guard_(b, "root_0", c)) break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// (DELIM code)?
|
||||
private static boolean root_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "root_1")) return false;
|
||||
root_1_0(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
// DELIM code
|
||||
private static boolean root_1_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "root_1_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, DELIM);
|
||||
r = r && code(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// stringKey SEPARATOR stringValue
|
||||
static boolean stringDefinition_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringDefinition_")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = stringKey(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
r = r && stringValue(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// extensibleStringKey_ platform_? | PACKAGE
|
||||
public static boolean stringKey(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringKey")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, STRING_KEY, "<string key>");
|
||||
r = stringKey_0(b, l + 1);
|
||||
if (!r) r = consumeToken(b, PACKAGE);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
// extensibleStringKey_ platform_?
|
||||
private static boolean stringKey_0(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringKey_0")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = extensibleStringKey_(b, l + 1);
|
||||
r = r && stringKey_0_1(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// platform_?
|
||||
private static boolean stringKey_0_1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringKey_0_1")) return false;
|
||||
platform_(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// VALUE
|
||||
public static boolean stringValue(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringValue")) return false;
|
||||
if (!nextTokenIs(b, VALUE)) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, VALUE);
|
||||
exit_section_(b, m, STRING_VALUE, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// stringsKey platform_? SEPARATOR stringsValue
|
||||
static boolean stringsDefinition_(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringsDefinition_")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = stringsKey(b, l + 1);
|
||||
r = r && stringsDefinition__1(b, l + 1);
|
||||
r = r && consumeToken(b, SEPARATOR);
|
||||
r = r && stringsValue(b, l + 1);
|
||||
exit_section_(b, m, null, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
// platform_?
|
||||
private static boolean stringsDefinition__1(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringsDefinition__1")) return false;
|
||||
platform_(b, l + 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// COMPILER_OPTS | DEPENDS | ENTRY_POINT | EXCLUDED_FUNCTIONS
|
||||
// | EXCLUDED_MACROS | EXPORT_FORWARD_DECLARATIONS | HEADER_FILTER
|
||||
// | HEADERS | LIBRARY_PATHS | LINKER_OPTS | NON_STRICT_ENUMS
|
||||
// | NO_STRING_CONVERSION | PACKAGE | STATIC_LIBRARIES | STRICT_ENUMS
|
||||
public static boolean stringsKey(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringsKey")) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b, l, _NONE_, STRINGS_KEY, "<strings key>");
|
||||
r = consumeToken(b, COMPILER_OPTS);
|
||||
if (!r) r = consumeToken(b, DEPENDS);
|
||||
if (!r) r = consumeToken(b, ENTRY_POINT);
|
||||
if (!r) r = consumeToken(b, EXCLUDED_FUNCTIONS);
|
||||
if (!r) r = consumeToken(b, EXCLUDED_MACROS);
|
||||
if (!r) r = consumeToken(b, EXPORT_FORWARD_DECLARATIONS);
|
||||
if (!r) r = consumeToken(b, HEADER_FILTER);
|
||||
if (!r) r = consumeToken(b, HEADERS);
|
||||
if (!r) r = consumeToken(b, LIBRARY_PATHS);
|
||||
if (!r) r = consumeToken(b, LINKER_OPTS);
|
||||
if (!r) r = consumeToken(b, NON_STRICT_ENUMS);
|
||||
if (!r) r = consumeToken(b, NO_STRING_CONVERSION);
|
||||
if (!r) r = consumeToken(b, PACKAGE);
|
||||
if (!r) r = consumeToken(b, STATIC_LIBRARIES);
|
||||
if (!r) r = consumeToken(b, STRICT_ENUMS);
|
||||
exit_section_(b, l, m, r, false, null);
|
||||
return r;
|
||||
}
|
||||
|
||||
/* ********************************************************** */
|
||||
// VALUE
|
||||
public static boolean stringsValue(PsiBuilder b, int l) {
|
||||
if (!recursion_guard_(b, l, "stringsValue")) return false;
|
||||
if (!nextTokenIs(b, VALUE)) return false;
|
||||
boolean r;
|
||||
Marker m = enter_section_(b);
|
||||
r = consumeToken(b, VALUE);
|
||||
exit_section_(b, m, STRINGS_VALUE, r);
|
||||
return r;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsBoolKey extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsBoolKeyImpl extends ASTWrapperPsiElement implements NativeDefinitionsBoolKey {
|
||||
|
||||
public NativeDefinitionsBoolKeyImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitBoolKey(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsBoolValue extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsBoolValueImpl extends ASTWrapperPsiElement implements NativeDefinitionsBoolValue {
|
||||
|
||||
public NativeDefinitionsBoolValueImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitBoolValue(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsCode extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsCodeImpl extends ASTWrapperPsiElement implements NativeDefinitionsCode {
|
||||
|
||||
public NativeDefinitionsCodeImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitCode(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsStringKey extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsStringKeyImpl extends ASTWrapperPsiElement implements NativeDefinitionsStringKey {
|
||||
|
||||
public NativeDefinitionsStringKeyImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitStringKey(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsStringValue extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsStringValueImpl extends ASTWrapperPsiElement implements NativeDefinitionsStringValue {
|
||||
|
||||
public NativeDefinitionsStringValueImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitStringValue(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsStringsKey extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsStringsKeyImpl extends ASTWrapperPsiElement implements NativeDefinitionsStringsKey {
|
||||
|
||||
public NativeDefinitionsStringsKeyImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitStringsKey(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public interface NativeDefinitionsStringsValue extends PsiElement {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import java.util.List;
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import static org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes.*;
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement;
|
||||
|
||||
public class NativeDefinitionsStringsValueImpl extends ASTWrapperPsiElement implements NativeDefinitionsStringsValue {
|
||||
|
||||
public NativeDefinitionsStringsValueImpl(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
public void accept(@NotNull NativeDefinitionsVisitor visitor) {
|
||||
visitor.visitStringsValue(this);
|
||||
}
|
||||
|
||||
public void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof NativeDefinitionsVisitor) accept((NativeDefinitionsVisitor)visitor);
|
||||
else super.accept(visitor);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.lang.ASTNode;
|
||||
|
||||
public interface NativeDefinitionsTypes {
|
||||
|
||||
IElementType BOOL_KEY = new NativeDefinitionsElementType("BOOL_KEY");
|
||||
IElementType BOOL_VALUE = new NativeDefinitionsElementType("BOOL_VALUE");
|
||||
IElementType CODE = new NativeDefinitionsElementType("CODE");
|
||||
IElementType STRINGS_KEY = new NativeDefinitionsElementType("STRINGS_KEY");
|
||||
IElementType STRINGS_VALUE = new NativeDefinitionsElementType("STRINGS_VALUE");
|
||||
IElementType STRING_KEY = new NativeDefinitionsElementType("STRING_KEY");
|
||||
IElementType STRING_VALUE = new NativeDefinitionsElementType("STRING_VALUE");
|
||||
|
||||
IElementType ANDROID = new NativeDefinitionsTokenType("android");
|
||||
IElementType ANDROID_ARM32 = new NativeDefinitionsTokenType("android_arm32");
|
||||
IElementType ANDROID_ARM64 = new NativeDefinitionsTokenType("android_arm64");
|
||||
IElementType ARM32 = new NativeDefinitionsTokenType("arm32");
|
||||
IElementType ARM64 = new NativeDefinitionsTokenType("arm64");
|
||||
IElementType BAD_CHARACTER = new NativeDefinitionsTokenType("BAD_CHARACTER");
|
||||
IElementType CODE_CHARS = new NativeDefinitionsTokenType("CODE_CHARS");
|
||||
IElementType COMMENT = new NativeDefinitionsTokenType("COMMENT");
|
||||
IElementType COMPILER_OPTS = new NativeDefinitionsTokenType("compilerOpts");
|
||||
IElementType DELIM = new NativeDefinitionsTokenType("DELIM");
|
||||
IElementType DEPENDS = new NativeDefinitionsTokenType("depends");
|
||||
IElementType DISABLE_DESIGNATED_INITIALIZER_CHECKS = new NativeDefinitionsTokenType("disableDesignatedInitializerChecks");
|
||||
IElementType ENTRY_POINT = new NativeDefinitionsTokenType("entryPoint");
|
||||
IElementType EXCLUDED_FUNCTIONS = new NativeDefinitionsTokenType("excludedFunctions");
|
||||
IElementType EXCLUDED_MACROS = new NativeDefinitionsTokenType("excludedMacros");
|
||||
IElementType EXCLUDE_DEPENDENT_MODULES = new NativeDefinitionsTokenType("excludeDependentModules");
|
||||
IElementType EXCLUDE_SYSTEM_LIBS = new NativeDefinitionsTokenType("excludeSystemLibs");
|
||||
IElementType EXPORT_FORWARD_DECLARATIONS = new NativeDefinitionsTokenType("exportForwardDeclarations");
|
||||
IElementType HEADERS = new NativeDefinitionsTokenType("headers");
|
||||
IElementType HEADER_FILTER = new NativeDefinitionsTokenType("headerFilter");
|
||||
IElementType IOS = new NativeDefinitionsTokenType("ios");
|
||||
IElementType IOS_ARM32 = new NativeDefinitionsTokenType("ios_arm32");
|
||||
IElementType IOS_ARM64 = new NativeDefinitionsTokenType("ios_arm64");
|
||||
IElementType IOS_X64 = new NativeDefinitionsTokenType("ios_x64");
|
||||
IElementType LANGUAGE = new NativeDefinitionsTokenType("language");
|
||||
IElementType LIBRARY_PATHS = new NativeDefinitionsTokenType("libraryPaths");
|
||||
IElementType LINKER = new NativeDefinitionsTokenType("linker");
|
||||
IElementType LINKER_OPTS = new NativeDefinitionsTokenType("linkerOpts");
|
||||
IElementType LINUX = new NativeDefinitionsTokenType("linux");
|
||||
IElementType LINUX_ARM32_HFP = new NativeDefinitionsTokenType("linux_arm32_hfp");
|
||||
IElementType LINUX_MIPS32 = new NativeDefinitionsTokenType("linux_mips32");
|
||||
IElementType LINUX_MIPSEL32 = new NativeDefinitionsTokenType("linux_mipsel32");
|
||||
IElementType LINUX_X64 = new NativeDefinitionsTokenType("linux_x64");
|
||||
IElementType MACOS_X64 = new NativeDefinitionsTokenType("macos_x64");
|
||||
IElementType MINGW = new NativeDefinitionsTokenType("mingw");
|
||||
IElementType MINGW_X64 = new NativeDefinitionsTokenType("mingw_x64");
|
||||
IElementType MIPS32 = new NativeDefinitionsTokenType("mips32");
|
||||
IElementType MIPSEL32 = new NativeDefinitionsTokenType("mipsel32");
|
||||
IElementType NON_STRICT_ENUMS = new NativeDefinitionsTokenType("nonStrictEnums");
|
||||
IElementType NO_STRING_CONVERSION = new NativeDefinitionsTokenType("noStringConversion");
|
||||
IElementType OSX = new NativeDefinitionsTokenType("osx");
|
||||
IElementType PACKAGE = new NativeDefinitionsTokenType("package");
|
||||
IElementType SEPARATOR = new NativeDefinitionsTokenType("SEPARATOR");
|
||||
IElementType STATIC_LIBRARIES = new NativeDefinitionsTokenType("staticLibraries");
|
||||
IElementType STRICT_ENUMS = new NativeDefinitionsTokenType("strictEnums");
|
||||
IElementType UNKNOWN_KEY = new NativeDefinitionsTokenType("<unknown key>");
|
||||
IElementType UNKNOWN_PLATFORM = new NativeDefinitionsTokenType("<unknown platform>");
|
||||
IElementType VALUE = new NativeDefinitionsTokenType("VALUE");
|
||||
IElementType WASM = new NativeDefinitionsTokenType("wasm");
|
||||
IElementType WASM32 = new NativeDefinitionsTokenType("wasm32");
|
||||
IElementType X64 = new NativeDefinitionsTokenType("x64");
|
||||
|
||||
class Factory {
|
||||
public static PsiElement createElement(ASTNode node) {
|
||||
IElementType type = node.getElementType();
|
||||
if (type == BOOL_KEY) {
|
||||
return new NativeDefinitionsBoolKeyImpl(node);
|
||||
}
|
||||
else if (type == BOOL_VALUE) {
|
||||
return new NativeDefinitionsBoolValueImpl(node);
|
||||
}
|
||||
else if (type == CODE) {
|
||||
return new NativeDefinitionsCodeImpl(node);
|
||||
}
|
||||
else if (type == STRINGS_KEY) {
|
||||
return new NativeDefinitionsStringsKeyImpl(node);
|
||||
}
|
||||
else if (type == STRINGS_VALUE) {
|
||||
return new NativeDefinitionsStringsValueImpl(node);
|
||||
}
|
||||
else if (type == STRING_KEY) {
|
||||
return new NativeDefinitionsStringKeyImpl(node);
|
||||
}
|
||||
else if (type == STRING_VALUE) {
|
||||
return new NativeDefinitionsStringValueImpl(node);
|
||||
}
|
||||
throw new AssertionError("Unknown element type: " + type);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
// This is a generated file. Not intended for manual editing.
|
||||
package org.jetbrains.kotlin.ide.konan.psi;
|
||||
|
||||
import org.jetbrains.annotations.*;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiElement;
|
||||
|
||||
public class NativeDefinitionsVisitor extends PsiElementVisitor {
|
||||
|
||||
public void visitBoolKey(@NotNull NativeDefinitionsBoolKey o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitBoolValue(@NotNull NativeDefinitionsBoolValue o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitCode(@NotNull NativeDefinitionsCode o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitStringKey(@NotNull NativeDefinitionsStringKey o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitStringValue(@NotNull NativeDefinitionsStringValue o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitStringsKey(@NotNull NativeDefinitionsStringsKey o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitStringsValue(@NotNull NativeDefinitionsStringsValue o) {
|
||||
visitPsiElement(o);
|
||||
}
|
||||
|
||||
public void visitPsiElement(@NotNull PsiElement o) {
|
||||
visitElement(o);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,9 +9,11 @@ import com.intellij.ide.highlighter.ArchiveFileType
|
||||
import com.intellij.openapi.fileTypes.FileTypeConsumer
|
||||
import com.intellij.openapi.fileTypes.FileTypeFactory
|
||||
import org.jetbrains.kotlin.konan.library.KLIB_FILE_EXTENSION
|
||||
import org.jetbrains.kotlin.konan.library.KDEFINITIONS_FILE_EXTENSION
|
||||
|
||||
class KotlinNativeFileTypeFactory : FileTypeFactory() {
|
||||
override fun createFileTypes(consumer: FileTypeConsumer) {
|
||||
consumer.consume(ArchiveFileType.INSTANCE, KLIB_FILE_EXTENSION)
|
||||
consumer.consume(NativeDefinitionsFileType, KDEFINITIONS_FILE_EXTENSION)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
{
|
||||
parserClass="org.jetbrains.kotlin.ide.konan.NativeDefinitionsParser"
|
||||
|
||||
extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
|
||||
|
||||
psiClassPrefix="NativeDefinitions"
|
||||
psiImplClassSuffix="Impl"
|
||||
psiPackage="org.jetbrains.kotlin.ide.konan.psi"
|
||||
psiImplPackage="org.jetbrains.kotlin.ide.konan.psi"
|
||||
|
||||
elementTypeHolderClass="org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes"
|
||||
elementTypeClass="org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsElementType"
|
||||
tokenTypeClass="org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTokenType"
|
||||
|
||||
tokens = [
|
||||
// known properties
|
||||
COMPILER_OPTS="compilerOpts"
|
||||
DEPENDS="depends"
|
||||
DISABLE_DESIGNATED_INITIALIZER_CHECKS="disableDesignatedInitializerChecks"
|
||||
ENTRY_POINT="entryPoint"
|
||||
EXCLUDE_DEPENDENT_MODULES="excludeDependentModules"
|
||||
EXCLUDED_FUNCTIONS="excludedFunctions"
|
||||
EXCLUDED_MACROS="excludedMacros"
|
||||
EXCLUDE_SYSTEM_LIBS="excludeSystemLibs"
|
||||
EXPORT_FORWARD_DECLARATIONS="exportForwardDeclarations"
|
||||
HEADER_FILTER="headerFilter"
|
||||
HEADERS="headers"
|
||||
LANGUAGE="language"
|
||||
LIBRARY_PATHS="libraryPaths"
|
||||
LINKER="linker"
|
||||
LINKER_OPTS="linkerOpts"
|
||||
NON_STRICT_ENUMS="nonStrictEnums"
|
||||
NO_STRING_CONVERSION="noStringConversion"
|
||||
PACKAGE="package"
|
||||
STATIC_LIBRARIES="staticLibraries"
|
||||
STRICT_ENUMS="strictEnums"
|
||||
|
||||
// known platforms
|
||||
ANDROID="android"
|
||||
ANDROID_ARM32="android_arm32"
|
||||
ANDROID_ARM64="android_arm64"
|
||||
ARM32="arm32"
|
||||
ARM64="arm64"
|
||||
IOS="ios"
|
||||
IOS_ARM32="ios_arm32"
|
||||
IOS_ARM64="ios_arm64"
|
||||
IOS_X64="ios_x64"
|
||||
LINUX="linux"
|
||||
LINUX_ARM32_HFP="linux_arm32_hfp"
|
||||
LINUX_MIPS32="linux_mips32"
|
||||
LINUX_MIPSEL32="linux_mipsel32"
|
||||
LINUX_X64="linux_x64"
|
||||
MACOS_X64="macos_x64"
|
||||
MINGW="mingw"
|
||||
MINGW_X64="mingw_x64"
|
||||
MIPS32="mips32"
|
||||
MIPSEL32="mipsel32"
|
||||
OSX="osx"
|
||||
WASM="wasm"
|
||||
WASM32="wasm32"
|
||||
X64="x64"
|
||||
|
||||
UNKNOWN_KEY="<unknown key>"
|
||||
UNKNOWN_PLATFORM="<unknown platform>"
|
||||
]
|
||||
}
|
||||
|
||||
root ::= definitionItem_* (DELIM code)?
|
||||
|
||||
private definitionItem_ ::= COMMENT | boolDefinition_ | stringDefinition_ | stringsDefinition_ | incorrectDefinition_
|
||||
|
||||
private boolDefinition_ ::= boolKey platform_? SEPARATOR boolValue
|
||||
boolKey ::= DISABLE_DESIGNATED_INITIALIZER_CHECKS | EXCLUDE_DEPENDENT_MODULES | EXCLUDE_SYSTEM_LIBS
|
||||
boolValue ::= VALUE
|
||||
|
||||
private stringDefinition_ ::= stringKey SEPARATOR stringValue
|
||||
stringKey ::= extensibleStringKey_ platform_? | PACKAGE
|
||||
private extensibleStringKey_ ::= LANGUAGE | LINKER
|
||||
stringValue ::= VALUE
|
||||
|
||||
private stringsDefinition_ ::= stringsKey platform_? SEPARATOR stringsValue
|
||||
stringsKey ::= COMPILER_OPTS | DEPENDS | ENTRY_POINT | EXCLUDED_FUNCTIONS
|
||||
| EXCLUDED_MACROS | EXPORT_FORWARD_DECLARATIONS | HEADER_FILTER
|
||||
| HEADERS | LIBRARY_PATHS | LINKER_OPTS | NON_STRICT_ENUMS
|
||||
| NO_STRING_CONVERSION | PACKAGE | STATIC_LIBRARIES | STRICT_ENUMS
|
||||
|
||||
stringsValue ::= VALUE
|
||||
|
||||
private incorrectDefinition_ ::= UNKNOWN_KEY? UNKNOWN_PLATFORM? SEPARATOR VALUE? | UNKNOWN_KEY UNKNOWN_PLATFORM?
|
||||
|
||||
private platform_ ::= ANDROID | ANDROID_ARM32 | ANDROID_ARM64 | ARM32 | ARM64 | IOS | IOS_ARM32
|
||||
| IOS_ARM64 | IOS_X64 | LINUX | LINUX_ARM32_HFP | LINUX_MIPS32
|
||||
| LINUX_MIPSEL32 | LINUX_X64 | MACOS_X64 | MINGW | MINGW_X64 | MIPS32
|
||||
| MIPSEL32 | OSX | WASM | WASM32 | X64 | UNKNOWN_PLATFORM
|
||||
|
||||
code ::= CODE_CHARS
|
||||
@@ -0,0 +1,145 @@
|
||||
package org.jetbrains.kotlin.ide.konan;
|
||||
|
||||
import com.intellij.lexer.FlexLexer;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.TokenType;
|
||||
import org.jetbrains.kotlin.ide.konan.psi.NativeDefinitionsTypes;
|
||||
|
||||
%%
|
||||
|
||||
%class NativeDefinitionsLexer
|
||||
%implements FlexLexer, NativeDefinitionsTypes
|
||||
%unicode
|
||||
%function advance
|
||||
%type IElementType
|
||||
%eof{ return;
|
||||
%eof}
|
||||
|
||||
CRLF=\R
|
||||
WHITE_SPACE=[\ \v\t\f]
|
||||
|
||||
SEPARATOR=[:=]
|
||||
PLATFORM_CHAR=[:jletterdigit:]
|
||||
KEY_CHAR=[^:=\ \r\n\t\f\\.] | "\\ "
|
||||
FIRST_VALUE_CHAR=[^ \n\f\\] | "\\"{CRLF} | "\\".
|
||||
VALUE_CHAR= [^\n\f\\] | "\\"{CRLF} | "\\".
|
||||
COMMENT=("#"|"!")[^\r\n]*
|
||||
DELIM=---{CRLF}
|
||||
|
||||
// known properties
|
||||
COMPILER_OPTS="compilerOpts"
|
||||
DEPENDS="depends"
|
||||
DISABLE_DESIGNATED_INITIALIZER_CHECKS="disableDesignatedInitializerChecks"
|
||||
ENTRY_POINT="entryPoint"
|
||||
EXCLUDE_DEPENDENT_MODULES="excludeDependentModules"
|
||||
EXCLUDED_FUNCTIONS="excludedFunctions"
|
||||
EXCLUDED_MACROS="excludedMacros"
|
||||
EXCLUDE_SYSTEM_LIBS="excludeSystemLibs"
|
||||
EXPORT_FORWARD_DECLARATIONS="exportForwardDeclarations"
|
||||
HEADER_FILTER="headerFilter"
|
||||
HEADERS="headers"
|
||||
LANGUAGE="language"
|
||||
LIBRARY_PATHS="libraryPaths"
|
||||
LINKER="linker"
|
||||
LINKER_OPTS="linkerOpts"
|
||||
NON_STRICT_ENUMS="nonStrictEnums"
|
||||
NO_STRING_CONVERSION="noStringConversion"
|
||||
PACKAGE="package"
|
||||
STATIC_LIBRARIES="staticLibraries"
|
||||
STRICT_ENUMS="strictEnums"
|
||||
|
||||
// known platforms
|
||||
ANDROID="android"
|
||||
ANDROID_ARM32="android_arm32"
|
||||
ANDROID_ARM64="android_arm64"
|
||||
ARM32="arm32"
|
||||
ARM64="arm64"
|
||||
IOS="ios"
|
||||
IOS_ARM32="ios_arm32"
|
||||
IOS_ARM64="ios_arm64"
|
||||
IOS_X64="ios_x64"
|
||||
LINUX="linux"
|
||||
LINUX_ARM32_HFP="linux_arm32_hfp"
|
||||
LINUX_MIPS32="linux_mips32"
|
||||
LINUX_MIPSEL32="linux_mipsel32"
|
||||
LINUX_X64="linux_x64"
|
||||
MACOS_X64="macos_x64"
|
||||
MINGW="mingw"
|
||||
MINGW_X64="mingw_x64"
|
||||
MIPS32="mips32"
|
||||
MIPSEL32="mipsel32"
|
||||
OSX="osx"
|
||||
WASM="wasm"
|
||||
WASM32="wasm32"
|
||||
X64="x64"
|
||||
|
||||
|
||||
%state WAITING_PLATFORM
|
||||
%state WAITING_VALUE
|
||||
%state CODE_END
|
||||
|
||||
%%
|
||||
|
||||
{WHITE_SPACE}+ { return TokenType.WHITE_SPACE; }
|
||||
|
||||
<YYINITIAL> {
|
||||
{DELIM} { yybegin(CODE_END); return DELIM; }
|
||||
{COMMENT} { return COMMENT; }
|
||||
{COMPILER_OPTS} { yybegin(WAITING_PLATFORM); return COMPILER_OPTS; }
|
||||
{DEPENDS} { yybegin(WAITING_PLATFORM); return DEPENDS; }
|
||||
{DISABLE_DESIGNATED_INITIALIZER_CHECKS} { yybegin(WAITING_PLATFORM); return DISABLE_DESIGNATED_INITIALIZER_CHECKS; }
|
||||
{ENTRY_POINT} { yybegin(WAITING_PLATFORM); return ENTRY_POINT; }
|
||||
{EXCLUDE_DEPENDENT_MODULES} { yybegin(WAITING_PLATFORM); return EXCLUDE_DEPENDENT_MODULES; }
|
||||
{EXCLUDED_FUNCTIONS} { yybegin(WAITING_PLATFORM); return EXCLUDED_FUNCTIONS; }
|
||||
{EXCLUDED_MACROS} { yybegin(WAITING_PLATFORM); return EXCLUDED_MACROS; }
|
||||
{EXCLUDE_SYSTEM_LIBS} { yybegin(WAITING_PLATFORM); return EXCLUDE_SYSTEM_LIBS; }
|
||||
{EXPORT_FORWARD_DECLARATIONS} { yybegin(WAITING_PLATFORM); return EXPORT_FORWARD_DECLARATIONS; }
|
||||
{HEADER_FILTER} { yybegin(WAITING_PLATFORM); return HEADER_FILTER; }
|
||||
{HEADERS} { yybegin(WAITING_PLATFORM); return HEADERS; }
|
||||
{LANGUAGE} { yybegin(WAITING_PLATFORM); return LANGUAGE; }
|
||||
{LIBRARY_PATHS} { yybegin(WAITING_PLATFORM); return LIBRARY_PATHS; }
|
||||
{LINKER} { yybegin(WAITING_PLATFORM); return LINKER; }
|
||||
{LINKER_OPTS} { yybegin(WAITING_PLATFORM); return LINKER_OPTS; }
|
||||
{NON_STRICT_ENUMS} { yybegin(WAITING_PLATFORM); return NON_STRICT_ENUMS; }
|
||||
{NO_STRING_CONVERSION} { yybegin(WAITING_PLATFORM); return NO_STRING_CONVERSION; }
|
||||
{PACKAGE} { yybegin(WAITING_PLATFORM); return PACKAGE; }
|
||||
{STATIC_LIBRARIES} { yybegin(WAITING_PLATFORM); return STATIC_LIBRARIES; }
|
||||
{STRICT_ENUMS} { yybegin(WAITING_PLATFORM); return STRICT_ENUMS; }
|
||||
{KEY_CHAR}+ { yybegin(WAITING_PLATFORM); return UNKNOWN_KEY; }
|
||||
}
|
||||
|
||||
<WAITING_PLATFORM> {
|
||||
[.]{ANDROID} { return ANDROID; }
|
||||
[.]{ANDROID_ARM32} { return ANDROID_ARM32; }
|
||||
[.]{ANDROID_ARM64} { return ANDROID_ARM64; }
|
||||
[.]{ARM32} { return ARM32; }
|
||||
[.]{ARM64} { return ARM64; }
|
||||
[.]{IOS} { return IOS; }
|
||||
[.]{IOS_ARM32} { return IOS_ARM32; }
|
||||
[.]{IOS_ARM64} { return IOS_ARM64; }
|
||||
[.]{IOS_X64} { return IOS_X64; }
|
||||
[.]{LINUX} { return LINUX; }
|
||||
[.]{LINUX_ARM32_HFP} { return LINUX_ARM32_HFP; }
|
||||
[.]{LINUX_MIPS32} { return LINUX_MIPS32; }
|
||||
[.]{LINUX_MIPSEL32} { return LINUX_MIPSEL32; }
|
||||
[.]{LINUX_X64} { return LINUX_X64; }
|
||||
[.]{MACOS_X64} { return MACOS_X64; }
|
||||
[.]{MINGW} { return MINGW; }
|
||||
[.]{MINGW_X64} { return MINGW_X64; }
|
||||
[.]{MIPS32} { return MIPS32; }
|
||||
[.]{MIPSEL32} { return MIPSEL32; }
|
||||
[.]{OSX} { return OSX; }
|
||||
[.]{WASM} { return WASM; }
|
||||
[.]{WASM32} { return WASM32; }
|
||||
[.]{X64} { return X64; }
|
||||
[.]{PLATFORM_CHAR}+ { return UNKNOWN_PLATFORM; }
|
||||
{SEPARATOR} { yybegin(WAITING_VALUE); return SEPARATOR; }
|
||||
}
|
||||
|
||||
<WAITING_VALUE> {FIRST_VALUE_CHAR}{VALUE_CHAR}* { yybegin(YYINITIAL); return VALUE; }
|
||||
|
||||
<CODE_END> [^]* { return CODE_CHARS; }
|
||||
|
||||
{CRLF}({CRLF}|{WHITE_SPACE})* { yybegin(YYINITIAL); return TokenType.WHITE_SPACE; }
|
||||
|
||||
[^\r\n\R] { yybegin(YYINITIAL); return TokenType.BAD_CHARACTER; }
|
||||
@@ -0,0 +1,169 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ide.konan
|
||||
|
||||
import com.intellij.extapi.psi.PsiFileBase
|
||||
import com.intellij.lang.*
|
||||
import com.intellij.lexer.FlexAdapter
|
||||
import com.intellij.lexer.Lexer
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey
|
||||
import com.intellij.openapi.editor.DefaultLanguageHighlighterColors
|
||||
import com.intellij.openapi.editor.HighlighterColors
|
||||
import com.intellij.openapi.fileTypes.*
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.*
|
||||
import com.intellij.psi.tree.*
|
||||
import javax.swing.Icon
|
||||
import java.io.Reader
|
||||
import org.jetbrains.kotlin.ide.konan.psi.*
|
||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||
import org.jetbrains.kotlin.konan.library.KDEFINITIONS_FILE_EXTENSION
|
||||
|
||||
|
||||
const val NATIVE_DEFINITIONS_NAME = "KND"
|
||||
const val NATIVE_DEFINITIONS_DESCRIPTION = "Definitions file for Kotlin/Native C interop"
|
||||
|
||||
object NativeDefinitionsFileType : LanguageFileType(NativeDefinitionsLanguage.INSTANCE) {
|
||||
|
||||
override fun getName(): String = NATIVE_DEFINITIONS_NAME
|
||||
|
||||
override fun getDescription(): String = NATIVE_DEFINITIONS_DESCRIPTION
|
||||
|
||||
override fun getDefaultExtension(): String = KDEFINITIONS_FILE_EXTENSION
|
||||
|
||||
override fun getIcon(): Icon = KotlinIcons.NATIVE
|
||||
}
|
||||
|
||||
class NativeDefinitionsLanguage private constructor() : Language(NATIVE_DEFINITIONS_NAME) {
|
||||
companion object {
|
||||
val INSTANCE = NativeDefinitionsLanguage()
|
||||
}
|
||||
}
|
||||
|
||||
class NativeDefinitionsFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, NativeDefinitionsLanguage.INSTANCE) {
|
||||
|
||||
override fun getFileType(): FileType = NativeDefinitionsFileType
|
||||
|
||||
override fun toString(): String = NATIVE_DEFINITIONS_DESCRIPTION
|
||||
|
||||
override fun getIcon(flags: Int): Icon? = super.getIcon(flags)
|
||||
}
|
||||
|
||||
class NativeDefinitionsLexerAdapter : FlexAdapter(NativeDefinitionsLexer(null as Reader?))
|
||||
|
||||
class NativeDefinitionsParserDefinition : ParserDefinition {
|
||||
private val COMMENTS = TokenSet.create(NativeDefinitionsTypes.COMMENT)
|
||||
private val FILE = IFileElementType(NativeDefinitionsLanguage.INSTANCE)
|
||||
|
||||
override fun getWhitespaceTokens(): TokenSet = TokenSet.WHITE_SPACE
|
||||
override fun getCommentTokens(): TokenSet = COMMENTS
|
||||
override fun getStringLiteralElements(): TokenSet = TokenSet.EMPTY
|
||||
override fun getFileNodeType(): IFileElementType = FILE
|
||||
|
||||
override fun createLexer(project: Project): Lexer = NativeDefinitionsLexerAdapter()
|
||||
override fun createParser(project: Project): PsiParser = NativeDefinitionsParser()
|
||||
|
||||
override fun createFile(viewProvider: FileViewProvider): PsiFile = NativeDefinitionsFile(viewProvider)
|
||||
override fun createElement(node: ASTNode): PsiElement = NativeDefinitionsTypes.Factory.createElement(node)
|
||||
|
||||
@Suppress("DEPRECATE") // Just switch to correctly named function, when old one is removed.
|
||||
override fun spaceExistanceTypeBetweenTokens(left: ASTNode?, right: ASTNode?): ParserDefinition.SpaceRequirements =
|
||||
ParserDefinition.SpaceRequirements.MAY
|
||||
}
|
||||
|
||||
class CLanguageInjector : LanguageInjector {
|
||||
val cLanguage = Language.findLanguageByID("ObjectiveC")
|
||||
|
||||
override fun getLanguagesToInject(host: PsiLanguageInjectionHost, registrar: InjectedLanguagePlaces) {
|
||||
if (!host.isValid) return
|
||||
|
||||
if (host is NativeDefinitionsCodeImpl && cLanguage != null) {
|
||||
val range = host.getTextRange().shiftLeft(host.startOffsetInParent)
|
||||
registrar.addPlace(cLanguage, range, null, null)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object NativeDefinitionsSyntaxHighlighter : SyntaxHighlighterBase() {
|
||||
|
||||
override fun getTokenHighlights(tokenType: IElementType?): Array<TextAttributesKey> =
|
||||
when (tokenType) {
|
||||
TokenType.BAD_CHARACTER -> BAD_CHAR_KEYS
|
||||
NativeDefinitionsTypes.COMMENT -> COMMENT_KEYS
|
||||
NativeDefinitionsTypes.DELIM -> COMMENT_KEYS
|
||||
NativeDefinitionsTypes.SEPARATOR -> OPERATOR_KEYS
|
||||
NativeDefinitionsTypes.UNKNOWN_KEY -> BAD_CHAR_KEYS
|
||||
NativeDefinitionsTypes.UNKNOWN_PLATFORM -> BAD_CHAR_KEYS
|
||||
NativeDefinitionsTypes.VALUE -> VALUE_KEYS
|
||||
// known properties
|
||||
NativeDefinitionsTypes.COMPILER_OPTS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.DEPENDS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.DISABLE_DESIGNATED_INITIALIZER_CHECKS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.ENTRY_POINT -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.EXCLUDE_DEPENDENT_MODULES -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.EXCLUDE_SYSTEM_LIBS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.EXCLUDED_FUNCTIONS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.EXCLUDED_MACROS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.EXPORT_FORWARD_DECLARATIONS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.HEADERS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.HEADER_FILTER -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.LANGUAGE -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.LIBRARY_PATHS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.LINKER -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.LINKER_OPTS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.NON_STRICT_ENUMS -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.NO_STRING_CONVERSION -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.PACKAGE -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.STATIC_LIBRARIES -> KNOWN_PROPERTIES_KEYS
|
||||
NativeDefinitionsTypes.STRICT_ENUMS -> KNOWN_PROPERTIES_KEYS
|
||||
// known extensions
|
||||
NativeDefinitionsTypes.ANDROID -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.ANDROID_ARM32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.ANDROID_ARM64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.ARM32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.ARM64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.IOS -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.IOS_ARM32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.IOS_ARM64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.IOS_X64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.LINUX -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.LINUX_ARM32_HFP -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.LINUX_MIPS32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.LINUX_MIPSEL32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.LINUX_X64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.MACOS_X64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.MINGW -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.MINGW_X64 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.MIPS32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.MIPSEL32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.OSX -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.WASM -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.WASM32 -> KNOWN_EXTENSIONS_KEYS
|
||||
NativeDefinitionsTypes.X64 -> KNOWN_EXTENSIONS_KEYS
|
||||
else -> EMPTY_KEYS
|
||||
}
|
||||
|
||||
override fun getHighlightingLexer(): Lexer = NativeDefinitionsLexerAdapter()
|
||||
|
||||
|
||||
private fun createKeys(externalName: String, key: TextAttributesKey): Array<TextAttributesKey> {
|
||||
return arrayOf(TextAttributesKey.createTextAttributesKey(externalName, key))
|
||||
}
|
||||
|
||||
private val BAD_CHAR_KEYS = createKeys("Unknown key", HighlighterColors.BAD_CHARACTER)
|
||||
private val COMMENT_KEYS = createKeys("Comment", DefaultLanguageHighlighterColors.LINE_COMMENT)
|
||||
private val EMPTY_KEYS = emptyArray<TextAttributesKey>()
|
||||
private val KNOWN_EXTENSIONS_KEYS = createKeys("Known extension", DefaultLanguageHighlighterColors.LABEL)
|
||||
private val KNOWN_PROPERTIES_KEYS = createKeys("Known property", DefaultLanguageHighlighterColors.KEYWORD)
|
||||
private val OPERATOR_KEYS = createKeys("Operator", DefaultLanguageHighlighterColors.OPERATION_SIGN)
|
||||
private val VALUE_KEYS = createKeys("Value", DefaultLanguageHighlighterColors.STRING)
|
||||
}
|
||||
|
||||
class NativeDefinitionsSyntaxHighlighterFactory : SyntaxHighlighterFactory() {
|
||||
override fun getSyntaxHighlighter(project: Project?, virtualFile: VirtualFile?): SyntaxHighlighter =
|
||||
NativeDefinitionsSyntaxHighlighter
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ide.konan.psi
|
||||
|
||||
|
||||
import com.intellij.extapi.psi.ASTWrapperPsiElement
|
||||
import com.intellij.lang.ASTNode
|
||||
import com.intellij.openapi.util.TextRange
|
||||
import com.intellij.psi.ElementManipulators
|
||||
import com.intellij.psi.LiteralTextEscaper
|
||||
import com.intellij.psi.PsiLanguageInjectionHost
|
||||
import com.intellij.psi.tree.IElementType
|
||||
import org.jetbrains.kotlin.ide.konan.*
|
||||
|
||||
class NativeDefinitionsElementType(debugName: String) : IElementType(debugName, NativeDefinitionsLanguage.INSTANCE)
|
||||
|
||||
class NativeDefinitionsTokenType(debugName: String) : IElementType(debugName, NativeDefinitionsLanguage.INSTANCE) {
|
||||
override fun toString(): String = "NativeDefinitionsTokenType." + super.toString()
|
||||
}
|
||||
|
||||
private class CodeEscaper(host: NativeDefinitionsCodeImpl) : LiteralTextEscaper<NativeDefinitionsCodeImpl>(host) {
|
||||
override fun isOneLine(): Boolean = false
|
||||
|
||||
override fun getOffsetInHost(offsetInDecoded: Int, rangeInsideHost: TextRange): Int = offsetInDecoded
|
||||
|
||||
override fun decode(rangeInsideHost: TextRange, outChars: StringBuilder): Boolean {
|
||||
outChars.append(myHost.text)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
class NativeDefinitionsCodeImpl(node: ASTNode) : ASTWrapperPsiElement(node), NativeDefinitionsCode, PsiLanguageInjectionHost {
|
||||
|
||||
override fun updateText(text: String): PsiLanguageInjectionHost {
|
||||
return ElementManipulators.handleContentChange(this, text)
|
||||
}
|
||||
|
||||
override fun createLiteralTextEscaper(): LiteralTextEscaper<out PsiLanguageInjectionHost> {
|
||||
return CodeEscaper(this)
|
||||
}
|
||||
|
||||
override fun isValidHost(): Boolean = true
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
# In this test case all supported properties are used.
|
||||
package = AllProps
|
||||
language=C
|
||||
depends = png
|
||||
disableDesignatedInitializerChecks = false
|
||||
excludeDependentModules = true
|
||||
excludeSystemLibs = false
|
||||
! Second type of comment and separators.
|
||||
headers : OpenGL/gl.h OpenGL/glu.h GLUT/glut.h
|
||||
headers.android : curl/curl.h
|
||||
headerFilter : OpengGL/** OpenGL/**
|
||||
|
||||
excludedFunctions = sin cos atan2
|
||||
excludedMacros.mingw_x64 = MIN MAX
|
||||
exportForwardDeclarations = export forward declarations
|
||||
|
||||
compilerOpts = -DBAR=bar -I/usr/include -I/usr/include/x86_64-linux-gnu
|
||||
compilerOpts.linux = -DFOO3=foo3 -DFOO4=foo4
|
||||
compilerOpts.macos_x64 = -DFOO1=foo1 -DFOO2=foo2
|
||||
|
||||
staticLibraries = libfoo.a
|
||||
libraryPaths = /opt/local/lib /usr/local/opt/curl/lib
|
||||
|
||||
linker=clang
|
||||
linkerOpts = -DBAR=bar -DBAZ=baz
|
||||
linkerOpts.linux_mipsel32 = -fpic
|
||||
entryPoint = main1 main2
|
||||
|
||||
nonStrictEnums.wasm32 = non strict
|
||||
noStringConversion.linux_arm32_hfp = no string
|
||||
strictEnums.android_arm64 = strict enums
|
||||
|
||||
|
||||
---
|
||||
|
||||
struct Hash { // Line comment.
|
||||
int data[2];
|
||||
};
|
||||
|
||||
/**********************
|
||||
* Multiline comment. *
|
||||
**********************/
|
||||
inline static int strangeSum(const int* buffer, int bufferSize) {
|
||||
int result = 20;
|
||||
const char * stringLiteral = "This is a string";
|
||||
for (int i = 0; i < bufferSize; ++i) {
|
||||
result += stringLiteral[i % 10] & 1 == 0 ? (i << 1) : buffer[i / 2];
|
||||
if (stringLiter)
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -0,0 +1,204 @@
|
||||
Definitions file for Kotlin/Native C interop(0,1401)
|
||||
PsiComment(NativeDefinitionsTokenType.COMMENT)('# In this test case all supported properties are used.')(0,54)
|
||||
PsiWhiteSpace('\n')(54,55)
|
||||
NativeDefinitionsStringKeyImpl(STRING_KEY)(55,62)
|
||||
PsiElement(NativeDefinitionsTokenType.package)('package')(55,62)
|
||||
PsiWhiteSpace(' ')(62,63)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(63,64)
|
||||
PsiWhiteSpace(' ')(64,65)
|
||||
NativeDefinitionsStringValueImpl(STRING_VALUE)(65,73)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('AllProps')(65,73)
|
||||
PsiWhiteSpace('\n')(73,74)
|
||||
NativeDefinitionsStringKeyImpl(STRING_KEY)(74,82)
|
||||
PsiElement(NativeDefinitionsTokenType.language)('language')(74,82)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(82,83)
|
||||
NativeDefinitionsStringValueImpl(STRING_VALUE)(83,84)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('C')(83,84)
|
||||
PsiWhiteSpace('\n')(84,85)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(85,92)
|
||||
PsiElement(NativeDefinitionsTokenType.depends)('depends')(85,92)
|
||||
PsiWhiteSpace(' ')(92,93)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(93,94)
|
||||
PsiWhiteSpace(' ')(94,95)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(95,98)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('png')(95,98)
|
||||
PsiWhiteSpace('\n')(98,99)
|
||||
NativeDefinitionsBoolKeyImpl(BOOL_KEY)(99,133)
|
||||
PsiElement(NativeDefinitionsTokenType.disableDesignatedInitializerChecks)('disableDesignatedInitializerChecks')(99,133)
|
||||
PsiWhiteSpace(' ')(133,134)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(134,135)
|
||||
PsiWhiteSpace(' ')(135,136)
|
||||
NativeDefinitionsBoolValueImpl(BOOL_VALUE)(136,141)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('false')(136,141)
|
||||
PsiWhiteSpace('\n')(141,142)
|
||||
NativeDefinitionsBoolKeyImpl(BOOL_KEY)(142,165)
|
||||
PsiElement(NativeDefinitionsTokenType.excludeDependentModules)('excludeDependentModules')(142,165)
|
||||
PsiWhiteSpace(' ')(165,166)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(166,167)
|
||||
PsiWhiteSpace(' ')(167,168)
|
||||
NativeDefinitionsBoolValueImpl(BOOL_VALUE)(168,172)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('true')(168,172)
|
||||
PsiWhiteSpace('\n')(172,173)
|
||||
NativeDefinitionsBoolKeyImpl(BOOL_KEY)(173,190)
|
||||
PsiElement(NativeDefinitionsTokenType.excludeSystemLibs)('excludeSystemLibs')(173,190)
|
||||
PsiWhiteSpace(' ')(190,191)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(191,192)
|
||||
PsiWhiteSpace(' ')(192,193)
|
||||
NativeDefinitionsBoolValueImpl(BOOL_VALUE)(193,198)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('false')(193,198)
|
||||
PsiWhiteSpace('\n')(198,199)
|
||||
PsiComment(NativeDefinitionsTokenType.COMMENT)('! Second type of comment and separators.')(199,239)
|
||||
PsiWhiteSpace('\n')(239,240)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(240,247)
|
||||
PsiElement(NativeDefinitionsTokenType.headers)('headers')(240,247)
|
||||
PsiWhiteSpace(' ')(247,248)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)(':')(248,249)
|
||||
PsiWhiteSpace(' ')(249,250)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(250,286)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('OpenGL/gl.h OpenGL/glu.h GLUT/glut.h')(250,286)
|
||||
PsiWhiteSpace('\n')(286,287)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(287,294)
|
||||
PsiElement(NativeDefinitionsTokenType.headers)('headers')(287,294)
|
||||
PsiElement(NativeDefinitionsTokenType.android)('.android')(294,302)
|
||||
PsiWhiteSpace(' ')(302,303)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)(':')(303,304)
|
||||
PsiWhiteSpace(' ')(304,305)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(305,316)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('curl/curl.h')(305,316)
|
||||
PsiWhiteSpace('\n')(316,317)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(317,329)
|
||||
PsiElement(NativeDefinitionsTokenType.headerFilter)('headerFilter')(317,329)
|
||||
PsiWhiteSpace(' ')(329,330)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)(':')(330,331)
|
||||
PsiWhiteSpace(' ')(331,332)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(332,352)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('OpengGL/** OpenGL/**')(332,352)
|
||||
PsiWhiteSpace('\n\n')(352,354)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(354,371)
|
||||
PsiElement(NativeDefinitionsTokenType.excludedFunctions)('excludedFunctions')(354,371)
|
||||
PsiWhiteSpace(' ')(371,372)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(372,373)
|
||||
PsiWhiteSpace(' ')(373,374)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(374,387)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('sin cos atan2')(374,387)
|
||||
PsiWhiteSpace('\n')(387,388)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(388,402)
|
||||
PsiElement(NativeDefinitionsTokenType.excludedMacros)('excludedMacros')(388,402)
|
||||
PsiElement(NativeDefinitionsTokenType.mingw_x64)('.mingw_x64')(402,412)
|
||||
PsiWhiteSpace(' ')(412,413)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(413,414)
|
||||
PsiWhiteSpace(' ')(414,415)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(415,422)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('MIN MAX')(415,422)
|
||||
PsiWhiteSpace('\n')(422,423)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(423,448)
|
||||
PsiElement(NativeDefinitionsTokenType.exportForwardDeclarations)('exportForwardDeclarations')(423,448)
|
||||
PsiWhiteSpace(' ')(448,449)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(449,450)
|
||||
PsiWhiteSpace(' ')(450,451)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(451,478)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('export forward declarations')(451,478)
|
||||
PsiWhiteSpace('\n\n')(478,480)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(480,492)
|
||||
PsiElement(NativeDefinitionsTokenType.compilerOpts)('compilerOpts')(480,492)
|
||||
PsiWhiteSpace(' ')(492,493)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(493,494)
|
||||
PsiWhiteSpace(' ')(494,495)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(495,551)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('-DBAR=bar -I/usr/include -I/usr/include/x86_64-linux-gnu')(495,551)
|
||||
PsiWhiteSpace('\n')(551,552)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(552,564)
|
||||
PsiElement(NativeDefinitionsTokenType.compilerOpts)('compilerOpts')(552,564)
|
||||
PsiElement(NativeDefinitionsTokenType.linux)('.linux')(564,570)
|
||||
PsiWhiteSpace(' ')(570,571)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(571,572)
|
||||
PsiWhiteSpace(' ')(572,573)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(573,596)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('-DFOO3=foo3 -DFOO4=foo4')(573,596)
|
||||
PsiWhiteSpace('\n')(596,597)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(597,609)
|
||||
PsiElement(NativeDefinitionsTokenType.compilerOpts)('compilerOpts')(597,609)
|
||||
PsiElement(NativeDefinitionsTokenType.macos_x64)('.macos_x64')(609,619)
|
||||
PsiWhiteSpace(' ')(619,620)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(620,621)
|
||||
PsiWhiteSpace(' ')(621,622)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(622,645)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('-DFOO1=foo1 -DFOO2=foo2')(622,645)
|
||||
PsiWhiteSpace('\n\n')(645,647)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(647,662)
|
||||
PsiElement(NativeDefinitionsTokenType.staticLibraries)('staticLibraries')(647,662)
|
||||
PsiWhiteSpace(' ')(662,663)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(663,664)
|
||||
PsiWhiteSpace(' ')(664,665)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(665,673)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('libfoo.a')(665,673)
|
||||
PsiWhiteSpace('\n')(673,674)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(674,686)
|
||||
PsiElement(NativeDefinitionsTokenType.libraryPaths)('libraryPaths')(674,686)
|
||||
PsiWhiteSpace(' ')(686,687)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(687,688)
|
||||
PsiWhiteSpace(' ')(688,689)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(689,727)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('/opt/local/lib /usr/local/opt/curl/lib')(689,727)
|
||||
PsiWhiteSpace('\n\n')(727,729)
|
||||
NativeDefinitionsStringKeyImpl(STRING_KEY)(729,735)
|
||||
PsiElement(NativeDefinitionsTokenType.linker)('linker')(729,735)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(735,736)
|
||||
NativeDefinitionsStringValueImpl(STRING_VALUE)(736,741)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('clang')(736,741)
|
||||
PsiWhiteSpace('\n')(741,742)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(742,752)
|
||||
PsiElement(NativeDefinitionsTokenType.linkerOpts)('linkerOpts')(742,752)
|
||||
PsiWhiteSpace(' ')(752,753)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(753,754)
|
||||
PsiWhiteSpace(' ')(754,755)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(755,774)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('-DBAR=bar -DBAZ=baz')(755,774)
|
||||
PsiWhiteSpace('\n')(774,775)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(775,785)
|
||||
PsiElement(NativeDefinitionsTokenType.linkerOpts)('linkerOpts')(775,785)
|
||||
PsiElement(NativeDefinitionsTokenType.linux_mipsel32)('.linux_mipsel32')(785,800)
|
||||
PsiWhiteSpace(' ')(800,801)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(801,802)
|
||||
PsiWhiteSpace(' ')(802,803)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(803,808)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('-fpic')(803,808)
|
||||
PsiWhiteSpace('\n')(808,809)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(809,819)
|
||||
PsiElement(NativeDefinitionsTokenType.entryPoint)('entryPoint')(809,819)
|
||||
PsiWhiteSpace(' ')(819,820)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(820,821)
|
||||
PsiWhiteSpace(' ')(821,822)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(822,833)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('main1 main2')(822,833)
|
||||
PsiWhiteSpace('\n\n')(833,835)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(835,849)
|
||||
PsiElement(NativeDefinitionsTokenType.nonStrictEnums)('nonStrictEnums')(835,849)
|
||||
PsiElement(NativeDefinitionsTokenType.wasm32)('.wasm32')(849,856)
|
||||
PsiWhiteSpace(' ')(856,857)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(857,858)
|
||||
PsiWhiteSpace(' ')(858,859)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(859,869)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('non strict')(859,869)
|
||||
PsiWhiteSpace('\n')(869,870)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(870,888)
|
||||
PsiElement(NativeDefinitionsTokenType.noStringConversion)('noStringConversion')(870,888)
|
||||
PsiElement(NativeDefinitionsTokenType.linux_arm32_hfp)('.linux_arm32_hfp')(888,904)
|
||||
PsiWhiteSpace(' ')(904,905)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(905,906)
|
||||
PsiWhiteSpace(' ')(906,907)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(907,916)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('no string')(907,916)
|
||||
PsiWhiteSpace('\n')(916,917)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(917,928)
|
||||
PsiElement(NativeDefinitionsTokenType.strictEnums)('strictEnums')(917,928)
|
||||
PsiElement(NativeDefinitionsTokenType.android_arm64)('.android_arm64')(928,942)
|
||||
PsiWhiteSpace(' ')(942,943)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(943,944)
|
||||
PsiWhiteSpace(' ')(944,945)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(945,957)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('strict enums')(945,957)
|
||||
PsiWhiteSpace('\n\n\n')(957,960)
|
||||
PsiElement(NativeDefinitionsTokenType.DELIM)('---\n')(960,964)
|
||||
NativeDefinitionsCodeImpl(CODE)(964,1401)
|
||||
PsiElement(NativeDefinitionsTokenType.CODE_CHARS)('\nstruct Hash { // Line comment.\n int data[2];\n};\n\n/**********************\n * Multiline comment. *\n **********************/\ninline static int strangeSum(const int* buffer, int bufferSize) {\n int result = 20;\n const char * stringLiteral = "This is a string";\n for (int i = 0; i < bufferSize; ++i) {\n result += stringLiteral[i % 10] & 1 == 0 ? (i << 1) : buffer[i / 2];\n if (stringLiter)\n }\n return result;\n}')(964,1401)
|
||||
@@ -0,0 +1,12 @@
|
||||
bad_key
|
||||
headers = library/base.h
|
||||
does.not=
|
||||
linker=clang
|
||||
affect
|
||||
package=png
|
||||
good=one
|
||||
---
|
||||
|
||||
static inline int foo(int arg) {
|
||||
return FOO(arg);
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
Definitions file for Kotlin/Native C interop(0,144)
|
||||
PsiElement(NativeDefinitionsTokenType.<unknown key>)('bad_key')(0,7)
|
||||
PsiWhiteSpace('\n')(7,8)
|
||||
NativeDefinitionsStringsKeyImpl(STRINGS_KEY)(8,15)
|
||||
PsiElement(NativeDefinitionsTokenType.headers)('headers')(8,15)
|
||||
PsiWhiteSpace(' ')(15,16)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(16,17)
|
||||
PsiWhiteSpace(' ')(17,18)
|
||||
NativeDefinitionsStringsValueImpl(STRINGS_VALUE)(18,32)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('library/base.h')(18,32)
|
||||
PsiWhiteSpace('\n')(32,33)
|
||||
PsiElement(NativeDefinitionsTokenType.<unknown key>)('does')(33,37)
|
||||
PsiElement(NativeDefinitionsTokenType.<unknown platform>)('.not')(37,41)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(41,42)
|
||||
PsiWhiteSpace('\n')(42,43)
|
||||
NativeDefinitionsStringKeyImpl(STRING_KEY)(43,49)
|
||||
PsiElement(NativeDefinitionsTokenType.linker)('linker')(43,49)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(49,50)
|
||||
NativeDefinitionsStringValueImpl(STRING_VALUE)(50,55)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('clang')(50,55)
|
||||
PsiWhiteSpace('\n')(55,56)
|
||||
PsiElement(NativeDefinitionsTokenType.<unknown key>)('affect')(56,62)
|
||||
PsiWhiteSpace('\n')(62,63)
|
||||
NativeDefinitionsStringKeyImpl(STRING_KEY)(63,70)
|
||||
PsiElement(NativeDefinitionsTokenType.package)('package')(63,70)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(70,71)
|
||||
NativeDefinitionsStringValueImpl(STRING_VALUE)(71,74)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('png')(71,74)
|
||||
PsiWhiteSpace('\n')(74,75)
|
||||
PsiElement(NativeDefinitionsTokenType.<unknown key>)('good')(75,79)
|
||||
PsiElement(NativeDefinitionsTokenType.SEPARATOR)('=')(79,80)
|
||||
PsiElement(NativeDefinitionsTokenType.VALUE)('one')(80,83)
|
||||
PsiWhiteSpace('\n')(83,84)
|
||||
PsiElement(NativeDefinitionsTokenType.DELIM)('---\n')(84,88)
|
||||
NativeDefinitionsCodeImpl(CODE)(88,144)
|
||||
PsiElement(NativeDefinitionsTokenType.CODE_CHARS)('\nstatic inline int foo(int arg) {\n return FOO(arg);\n}')(88,144)
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.ide.konan
|
||||
|
||||
import com.intellij.testFramework.ParsingTestCase
|
||||
|
||||
|
||||
class NativeDefinitionsParsingTest : ParsingTestCase("", "def", NativeDefinitionsParserDefinition()) {
|
||||
|
||||
fun testAllProperties() = doTest(true)
|
||||
|
||||
fun testBadDefinitions() = doTest(true)
|
||||
|
||||
override fun getTestDataPath(): String = "testData/colorHighlighting"
|
||||
|
||||
override fun skipSpaces(): Boolean = false
|
||||
|
||||
override fun includeRanges(): Boolean = true
|
||||
}
|
||||
@@ -16,6 +16,9 @@
|
||||
<fileTypeFactory implementation="org.jetbrains.kotlin.ide.konan.KotlinNativeFileTypeFactory"/>
|
||||
<fileBasedIndex implementation="org.jetbrains.kotlin.ide.konan.index.KotlinNativeMetaFileIndex"/>
|
||||
<library.type implementation="org.jetbrains.kotlin.ide.konan.NativeLibraryType"/>
|
||||
<lang.parserDefinition language="KND" implementationClass="org.jetbrains.kotlin.ide.konan.NativeDefinitionsParserDefinition"/>
|
||||
<lang.syntaxHighlighterFactory language="KND" implementationClass="org.jetbrains.kotlin.ide.konan.NativeDefinitionsSyntaxHighlighterFactory"/>
|
||||
<languageInjector implementation="org.jetbrains.kotlin.ide.konan.CLanguageInjector"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||
|
||||
@@ -14,6 +14,8 @@ const val KLIB_FILE_EXTENSION_WITH_DOT = ".$KLIB_FILE_EXTENSION"
|
||||
const val KLIB_METADATA_FILE_EXTENSION = "knm"
|
||||
const val KLIB_METADATA_FILE_EXTENSION_WITH_DOT = ".$KLIB_METADATA_FILE_EXTENSION"
|
||||
|
||||
const val KDEFINITIONS_FILE_EXTENSION = "def"
|
||||
|
||||
const val KLIB_MODULE_METADATA_FILE_NAME = "module"
|
||||
|
||||
const val KONAN_STDLIB_NAME = "stdlib"
|
||||
|
||||
Reference in New Issue
Block a user