Skip to content

Commit 0b56beb

Browse files
HighCommander4jacobdufault
authored andcommitted
Update type of parentKind for semantic highlighting symbols to match the server (fixes #24)
1 parent 1ea5f05 commit 0b56beb

File tree

1 file changed

+19
-24
lines changed

1 file changed

+19
-24
lines changed

src/extension.ts

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@ function setContext(name, value) {
2525
const VERSION = 3;
2626

2727
enum SymbolKind {
28-
Invalid,
29-
File,
30-
Type,
31-
Func,
32-
Var
33-
}
34-
enum SemanticSymbolKind {
3528
// lsSymbolKind
3629
Unknown = 0,
3730
File,
@@ -84,7 +77,7 @@ enum StorageClass {
8477
class SemanticSymbol {
8578
constructor(
8679
readonly stableId: number, readonly parentKind: SymbolKind,
87-
readonly kind: SemanticSymbolKind, readonly isTypeMember: boolean,
80+
readonly kind: SymbolKind, readonly isTypeMember: boolean,
8881
readonly storage: StorageClass, readonly ranges: Array<Range>) {}
8982
}
9083

@@ -734,39 +727,41 @@ export function activate(context: ExtensionContext) {
734727
return decorations[symbol.stableId % decorations.length];
735728
};
736729

737-
if (symbol.kind == SemanticSymbolKind.Class ||
738-
symbol.kind == SemanticSymbolKind.Struct) {
730+
if (symbol.kind == SymbolKind.Class ||
731+
symbol.kind == SymbolKind.Struct) {
739732
return get('types');
740-
} else if (symbol.kind == SemanticSymbolKind.Enum) {
733+
} else if (symbol.kind == SymbolKind.Enum) {
741734
return get('enums');
742-
} else if (symbol.kind == SemanticSymbolKind.TypeAlias) {
735+
} else if (symbol.kind == SymbolKind.TypeAlias) {
743736
return get('typeAliases');
744-
} else if (symbol.kind == SemanticSymbolKind.TypeParameter) {
737+
} else if (symbol.kind == SymbolKind.TypeParameter) {
745738
return get('templateParameters');
746-
} else if (symbol.kind == SemanticSymbolKind.Function) {
739+
} else if (symbol.kind == SymbolKind.Function) {
747740
return get('freeStandingFunctions');
748-
} else if (symbol.kind == SemanticSymbolKind.Method ||
749-
symbol.kind == SemanticSymbolKind.Constructor) {
741+
} else if (symbol.kind == SymbolKind.Method ||
742+
symbol.kind == SymbolKind.Constructor) {
750743
return get('memberFunctions')
751-
} else if (symbol.kind == SemanticSymbolKind.StaticMethod) {
744+
} else if (symbol.kind == SymbolKind.StaticMethod) {
752745
return get('staticMemberFunctions')
753-
} else if (symbol.kind == SemanticSymbolKind.Variable) {
754-
if (symbol.parentKind == SymbolKind.Func) {
746+
} else if (symbol.kind == SymbolKind.Variable) {
747+
if (symbol.parentKind == SymbolKind.Function ||
748+
symbol.parentKind == SymbolKind.Method ||
749+
symbol.parentKind == SymbolKind.Constructor) {
755750
return get('freeStandingVariables');
756751
}
757752
return get('globalVariables');
758-
} else if (symbol.kind == SemanticSymbolKind.Field) {
753+
} else if (symbol.kind == SymbolKind.Field) {
759754
if (symbol.storage == StorageClass.Static) {
760755
return get('staticMemberVariables');
761756
}
762757
return get('memberVariables');
763-
} else if (symbol.kind == SemanticSymbolKind.Parameter) {
758+
} else if (symbol.kind == SymbolKind.Parameter) {
764759
return get('parameters');
765-
} else if (symbol.kind == SemanticSymbolKind.EnumMember) {
760+
} else if (symbol.kind == SymbolKind.EnumMember) {
766761
return get('enumConstants');
767-
} else if (symbol.kind == SemanticSymbolKind.Namespace) {
762+
} else if (symbol.kind == SymbolKind.Namespace) {
768763
return get('namespaces');
769-
} else if (symbol.kind == SemanticSymbolKind.Macro) {
764+
} else if (symbol.kind == SymbolKind.Macro) {
770765
return get('macros');
771766
}
772767
};

0 commit comments

Comments
 (0)