Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/com/goide/highlighting/GoColorsAndFontsPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public class GoColorsAndFontsPage implements ColorSettingsPage {
new AttributesDescriptor("Type specification", TYPE_SPECIFICATION),
new AttributesDescriptor("Type reference", TYPE_REFERENCE),
new AttributesDescriptor("Builtin type", BUILTIN_TYPE_REFERENCE),
new AttributesDescriptor("Builtin function", BUILTIN_FUNCTION),
new AttributesDescriptor("Exported function", EXPORTED_FUNCTION),
new AttributesDescriptor("Local function", LOCAL_FUNCTION),
new AttributesDescriptor("Package exported interface", PACKAGE_EXPORTED_INTERFACE),
Expand All @@ -74,6 +75,7 @@ public class GoColorsAndFontsPage implements ColorSettingsPage {
ATTRIBUTES_KEY_MAP.put("tr", TYPE_REFERENCE);
ATTRIBUTES_KEY_MAP.put("ts", TYPE_SPECIFICATION);
ATTRIBUTES_KEY_MAP.put("bt", BUILTIN_TYPE_REFERENCE);
ATTRIBUTES_KEY_MAP.put("bf", BUILTIN_FUNCTION);
ATTRIBUTES_KEY_MAP.put("kw", KEYWORD);
ATTRIBUTES_KEY_MAP.put("ef", EXPORTED_FUNCTION);
ATTRIBUTES_KEY_MAP.put("lf", LOCAL_FUNCTION);
Expand Down Expand Up @@ -225,6 +227,7 @@ public String getDemoText() {
" _ = <lf>variableFunc</lf>(1)\n" +
" _ = <fp>demo1</fp>\n" +
" _ = <lv>demo2</lv>\n" +
" <bf>println</bf>(\"builtin function\")" +
"\n" +
"}\n" +
"\n" +
Expand Down
1 change: 1 addition & 0 deletions src/com/goide/highlighting/GoHighlightingAnnotator.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ private static TextAttributesKey getColor(GoVarDefinition o) {
}

private static TextAttributesKey getColor(GoNamedSignatureOwner o) {
if (GoPsiImplUtil.builtin(o)) return BUILTIN_FUNCTION;
return o.isPublic() ? EXPORTED_FUNCTION : LOCAL_FUNCTION;
}

Expand Down
1 change: 1 addition & 0 deletions src/com/goide/highlighting/GoSyntaxHighlightingColors.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class GoSyntaxHighlightingColors {
public static final TextAttributesKey TYPE_SPECIFICATION = createTextAttributesKey("GO_TYPE_SPECIFICATION", DefaultLanguageHighlighterColors.CLASS_NAME);
public static final TextAttributesKey TYPE_REFERENCE = createTextAttributesKey("GO_TYPE_REFERENCE", DefaultLanguageHighlighterColors.CLASS_REFERENCE);
public static final TextAttributesKey BUILTIN_TYPE_REFERENCE = createTextAttributesKey("GO_BUILTIN_TYPE_REFERENCE", DefaultLanguageHighlighterColors.CLASS_REFERENCE);
public static final TextAttributesKey BUILTIN_FUNCTION = createTextAttributesKey("GO_BUILTIN_FUNCTION", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION);
public static final TextAttributesKey EXPORTED_FUNCTION = createTextAttributesKey("GO_EXPORTED_FUNCTION", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION);
public static final TextAttributesKey LOCAL_FUNCTION = createTextAttributesKey("GO_LOCAL_FUNCTION", DefaultLanguageHighlighterColors.FUNCTION_DECLARATION);
public static final TextAttributesKey PACKAGE_EXPORTED_INTERFACE = createTextAttributesKey("GO_PACKAGE_EXPORTED_INTERFACE", DefaultLanguageHighlighterColors.INTERFACE_NAME);
Expand Down
5 changes: 5 additions & 0 deletions testData/colorHighlighting/builtinFunctions.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package main

func <info descr="null"><info descr="GO_LOCAL_FUNCTION">main</info></info>() {
<info descr="null"><info descr="GO_BUILTIN_FUNCTION">println</info></info>("demo")
}
4 changes: 2 additions & 2 deletions testData/colorHighlighting/funcAndMethod.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package main

type <info descr="null"><info descr="GO_PACKAGE_LOCAL_INTERFACE">inner</info></info> interface {
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">Inner</info></info>() string
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">Inner</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">string</info></info>
}

type (
Expand All @@ -13,7 +13,7 @@ type (
)

func (<info descr="null"><info descr="GO_METHOD_RECEIVER">a</info></info> <info descr="null"><info descr="GO_TYPE_REFERENCE">dem</info></info>) <info descr="null"><info descr="GO_EXPORTED_FUNCTION">Demo</info></info>() <info descr="null"><info descr="GO_PACKAGE_LOCAL_INTERFACE">inner</info></info> {
return error("demo")
return <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">error</info></info>("demo")
}

func <info descr="null"><info descr="GO_LOCAL_FUNCTION">main</info></info>() {
Expand Down
2 changes: 1 addition & 1 deletion testData/colorHighlighting/label.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package main

func <info descr="null"><info descr="GO_LOCAL_FUNCTION">test</info></info>() int {
func <info descr="null"><info descr="GO_LOCAL_FUNCTION">test</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info> {
<info descr="null"><info descr="GO_LABEL">foo</info></info>:
for {
continue <info descr="null"><info descr="GO_LABEL">foo</info></info>
Expand Down
6 changes: 3 additions & 3 deletions testData/colorHighlighting/octAndHex.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package main

var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">a</info></info> int = <info descr="null"><info descr="GO_NUMBER">0112</info></info>
var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">b</info></info> int = <info descr="null"><info descr="GO_NUMBER">0x112</info></info>
var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">c</info></info> int = <info descr="null"><info descr="GO_NUMBER">0Xabf112</info></info>
var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">a</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info> = <info descr="null"><info descr="GO_NUMBER">0112</info></info>
var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">b</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info> = <info descr="null"><info descr="GO_NUMBER">0x112</info></info>
var <info descr="null"><info descr="GO_PACKAGE_LOCAL_VARIABLE">c</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info> = <info descr="null"><info descr="GO_NUMBER">0Xabf112</info></info>
2 changes: 1 addition & 1 deletion testData/colorHighlighting/simple.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ package main
import `fmt`

func <info descr="null"><info descr="GO_LOCAL_FUNCTION">main</info></info>() {
fmt.Println("Hello")
fmt.<info descr="null"><info descr="GO_EXPORTED_FUNCTION">Println</info></info>("Hello")
}
18 changes: 9 additions & 9 deletions testData/colorHighlighting/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@ package main

type (
<info descr="null"><info descr="GO_PACKAGE_EXPORTED_INTERFACE">PublicInterface</info></info> interface {
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">PublicFunc</info></info>() int
<info descr="null"><info descr="GO_LOCAL_FUNCTION">privateFunc</info></info>() int
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">PublicFunc</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
<info descr="null"><info descr="GO_LOCAL_FUNCTION">privateFunc</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
}

<info descr="null"><info descr="GO_PACKAGE_LOCAL_INTERFACE">private</info></info> interface {
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">PublicFunc</info></info>() int
<info descr="null"><info descr="GO_LOCAL_FUNCTION">privateFunc</info></info>() int
<info descr="null"><info descr="GO_EXPORTED_FUNCTION">PublicFunc</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
<info descr="null"><info descr="GO_LOCAL_FUNCTION">privateFunc</info></info>() <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
}

<info descr="null"><info descr="GO_PACKAGE_EXPORTED_STRUCT">PublicStruct</info></info> struct {

<info descr="null"><info descr="GO_STRUCT_EXPORTED_MEMBER">PublicField</info></info> int
<info descr="null"><info descr="GO_STRUCT_LOCAL_MEMBER">privateField</info></info> int
<info descr="null"><info descr="GO_STRUCT_EXPORTED_MEMBER">PublicField</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
<info descr="null"><info descr="GO_STRUCT_LOCAL_MEMBER">privateField</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
}

<info descr="null"><info descr="GO_PACKAGE_LOCAL_STRUCT">privateStruct</info></info> struct {
<info descr="null"><info descr="GO_STRUCT_EXPORTED_MEMBER">PublicField</info></info> int
<info descr="null"><info descr="GO_STRUCT_LOCAL_MEMBER">privateField</info></info> int
<info descr="null"><info descr="GO_STRUCT_EXPORTED_MEMBER">PublicField</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
<info descr="null"><info descr="GO_STRUCT_LOCAL_MEMBER">privateField</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
}

<info descr="null"><info descr="GO_TYPE_SPECIFICATION">demoInt</info></info> int
<info descr="null"><info descr="GO_TYPE_SPECIFICATION">demoInt</info></info> <info descr="null"><info descr="GO_BUILTIN_TYPE_REFERENCE">int</info></info>
)
18 changes: 17 additions & 1 deletion tests/com/goide/editor/GoHighlightingAnnotatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,19 @@
package com.goide.editor;

import com.goide.GoCodeInsightFixtureTestCase;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.annotations.NotNull;

@TestDataPath("$PROJECT_ROOT/testData/colorHighlighting")
public class GoHighlightingAnnotatorTest extends GoCodeInsightFixtureTestCase {


@Override
protected void setUp() throws Exception {
super.setUp();
setUpProjectSdk();
}

public void testSimple() {
doTest();
}
Expand All @@ -47,6 +54,10 @@ public void testTypes() {
doTest();
}

public void testBuiltinFunctions() {
doTest();
}

@Override
protected boolean isWriteActionRequired() {
return false;
Expand All @@ -61,5 +72,10 @@ private void doTest() {
protected String getBasePath() {
return "colorHighlighting";
}

@Override
protected LightProjectDescriptor getProjectDescriptor() {
return createMockProjectDescriptor();
}
}