Fix LSP SymbolKind reporting wrong types

Classes were properties, functions interfaces, etc.

(cherry picked from commit 02bc1bf355)
This commit is contained in:
Francois Belair 2021-07-24 16:25:47 -04:00 committed by Rémi Verschelde
parent dd7bb8f965
commit 03a6fe6489
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 28 additions and 28 deletions

View file

@ -167,7 +167,7 @@ void ExtendGDScriptParser::parse_class_symbol(const GDScriptParser::ClassNode *p
lsp::DocumentSymbol symbol;
symbol.name = m.identifier;
symbol.kind = lsp::SymbolKind::Variable;
symbol.kind = m.setter == "" && m.getter == "" ? lsp::SymbolKind::Variable : lsp::SymbolKind::Property;
symbol.deprecated = false;
const int line = LINE_NUMBER_TO_INDEX(m.line);
symbol.range.start.line = line;
@ -294,7 +294,7 @@ void ExtendGDScriptParser::parse_function_symbol(const GDScriptParser::FunctionN
const String uri = get_uri();
r_symbol.name = p_func->name;
r_symbol.kind = lsp::SymbolKind::Function;
r_symbol.kind = p_func->_static ? lsp::SymbolKind::Function : lsp::SymbolKind::Method;
r_symbol.detail = "func " + p_func->name + "(";
r_symbol.deprecated = false;
const int line = LINE_NUMBER_TO_INDEX(p_func->line);

View file

@ -998,32 +998,32 @@ struct CompletionList {
* A symbol kind.
*/
namespace SymbolKind {
static const int File = 0;
static const int Module = 1;
static const int Namespace = 2;
static const int Package = 3;
static const int Class = 4;
static const int Method = 5;
static const int Property = 6;
static const int Field = 7;
static const int Constructor = 8;
static const int Enum = 9;
static const int Interface = 10;
static const int Function = 11;
static const int Variable = 12;
static const int Constant = 13;
static const int String = 14;
static const int Number = 15;
static const int Boolean = 16;
static const int Array = 17;
static const int Object = 18;
static const int Key = 19;
static const int Null = 20;
static const int EnumMember = 21;
static const int Struct = 22;
static const int Event = 23;
static const int Operator = 24;
static const int TypeParameter = 25;
static const int File = 1;
static const int Module = 2;
static const int Namespace = 3;
static const int Package = 4;
static const int Class = 5;
static const int Method = 6;
static const int Property = 7;
static const int Field = 8;
static const int Constructor = 9;
static const int Enum = 10;
static const int Interface = 11;
static const int Function = 12;
static const int Variable = 13;
static const int Constant = 14;
static const int String = 15;
static const int Number = 16;
static const int Boolean = 17;
static const int Array = 18;
static const int Object = 19;
static const int Key = 20;
static const int Null = 21;
static const int EnumMember = 22;
static const int Struct = 23;
static const int Event = 24;
static const int Operator = 25;
static const int TypeParameter = 26;
}; // namespace SymbolKind
/**