UNPKG

pss-langserver

Version:

A Language server for the Portable Stimulus Standard

131 lines (130 loc) 5.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCompletionKind = getCompletionKind; /* * Copyright (C) 2025 Darshan(@thisisthedarshan) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ const node_1 = require("vscode-languageserver/node"); const dataTypes_1 = require("../definitions/dataTypes"); function getCompletionKind(type) { switch (type) { /* Structural elements */ case dataTypes_1.objType.COMPONENT: return node_1.CompletionItemKind.Class; case dataTypes_1.objType.ACTION: case dataTypes_1.objType.ACTIVITY: return node_1.CompletionItemKind.Module; case dataTypes_1.objType.PACKAGE: return node_1.CompletionItemKind.Module; case dataTypes_1.objType.MONITOR: return node_1.CompletionItemKind.Interface; case dataTypes_1.objType.CONSTRAINT: return node_1.CompletionItemKind.Event; /* Function types */ case dataTypes_1.objType.FUNCTION: case dataTypes_1.objType.PROCEDURAL_FUNCTION: return node_1.CompletionItemKind.Function; case dataTypes_1.objType.ACTION_HANDLE: return node_1.CompletionItemKind.Method; case dataTypes_1.objType.CALL_SUPER: return node_1.CompletionItemKind.Method; /* Data structures */ case dataTypes_1.objType.ENUM: return node_1.CompletionItemKind.Enum; case dataTypes_1.objType.BUFFER: case dataTypes_1.objType.STRUCT: return node_1.CompletionItemKind.Struct; case dataTypes_1.objType.STRUCT_ITEM: return node_1.CompletionItemKind.Field; case dataTypes_1.objType.RESOURCE_OBJECT: return node_1.CompletionItemKind.Class; /* Register types */ case dataTypes_1.objType.REGISTER_BODY_ITEM: return node_1.CompletionItemKind.Field; case dataTypes_1.objType.REGISTER_GROUP: case dataTypes_1.objType.REGISTER_COMP: case dataTypes_1.objType.REGISTER_DEF: case dataTypes_1.objType.REGISTER: return node_1.CompletionItemKind.Property; /* Memory and address elements */ case dataTypes_1.objType.MEMORY_SPACE: case dataTypes_1.objType.MEMORY_REGION: case dataTypes_1.objType.MEMORY_CLAIM: case dataTypes_1.objType.ADDRESS_SPACE: case dataTypes_1.objType.ADDRESS_REGION: case dataTypes_1.objType.ADDRESS_CLAIM: return node_1.CompletionItemKind.Reference; /* State and streams */ case dataTypes_1.objType.STATE: return node_1.CompletionItemKind.Variable; case dataTypes_1.objType.STREAM: case dataTypes_1.objType.POOLS: return node_1.CompletionItemKind.Variable; /* Primitive types */ case dataTypes_1.objType.CHANDLE: return node_1.CompletionItemKind.Variable; case dataTypes_1.objType.DATA: return node_1.CompletionItemKind.Value; case dataTypes_1.objType.TYPEDEF: return node_1.CompletionItemKind.TypeParameter; case dataTypes_1.objType.INTEGER: case dataTypes_1.objType.BIT: case dataTypes_1.objType.STRING: case dataTypes_1.objType.BOOL: case dataTypes_1.objType.FLOAT32: case dataTypes_1.objType.FLOAT64: return node_1.CompletionItemKind.Keyword; /* Collection types */ case dataTypes_1.objType.REF: return node_1.CompletionItemKind.Reference; case dataTypes_1.objType.ARRAY: case dataTypes_1.objType.LIST: case dataTypes_1.objType.MAP: case dataTypes_1.objType.SET: case dataTypes_1.objType.INSTANCE: return node_1.CompletionItemKind.Value; /* Template and var args */ case dataTypes_1.objType.TEMPLATE_ITEM: return node_1.CompletionItemKind.TypeParameter; case dataTypes_1.objType.VARARGS: return node_1.CompletionItemKind.Variable; /* Executable blocks */ case dataTypes_1.objType.EXEC_PRESOLVE: case dataTypes_1.objType.EXEC_POSTSOLVE: case dataTypes_1.objType.EXEC_PREBODY: case dataTypes_1.objType.EXEC_BODY: case dataTypes_1.objType.EXEC_HEADER: case dataTypes_1.objType.EXEC_DECLARATION: case dataTypes_1.objType.EXEC_RUNSTART: case dataTypes_1.objType.EXEC_RUNEND: case dataTypes_1.objType.EXEC_INITDOWN: case dataTypes_1.objType.EXEC_INITUP: case dataTypes_1.objType.EXEC_INIT: case dataTypes_1.objType.EXEC_TARGET: case dataTypes_1.objType.EXEC_FILE: return node_1.CompletionItemKind.Snippet; /* Misc */ case dataTypes_1.objType.IMPORT: return node_1.CompletionItemKind.File; case dataTypes_1.objType.ASSIGNMENT: return node_1.CompletionItemKind.Operator; /* Default cases */ case dataTypes_1.objType.NONE: case dataTypes_1.objType.UNKNOWN: default: return node_1.CompletionItemKind.Text; } }