update completion feature
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
{
|
||||
"tcl": {
|
||||
"keywords": [
|
||||
"proc",
|
||||
"puts",
|
||||
"if"
|
||||
]
|
||||
},
|
||||
"tcl": [
|
||||
"proc",
|
||||
"puts",
|
||||
"if",
|
||||
"else",
|
||||
"elseif"
|
||||
],
|
||||
"MOM_procs": [
|
||||
"MOM_output_literal",
|
||||
"MOM_ask_ude_info",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import json
|
||||
import lsprotocol.types as lsp
|
||||
import pathlib
|
||||
|
||||
|
||||
class StandardCompletionItems:
|
||||
def __init__(self):
|
||||
self.__tcl_keyword_list = self.load_tcl_keyword()
|
||||
|
||||
@property
|
||||
def tcl_keyword_list(self):
|
||||
return self.__tcl_keyword_list
|
||||
|
||||
def load_tcl_keyword(self) -> list[lsp.CompletionItem]:
|
||||
with open(
|
||||
pathlib.Path(__file__).parent.joinpath("completion_list.json"), "r"
|
||||
) as f:
|
||||
data = json.load(f)
|
||||
|
||||
items = []
|
||||
for i in data.get("tcl", []):
|
||||
items.append(
|
||||
lsp.CompletionItem(label=i, kind=lsp.CompletionItemKind.Keyword)
|
||||
)
|
||||
return items
|
||||
|
||||
|
||||
standard_items = StandardCompletionItems()
|
||||
@@ -41,6 +41,7 @@ import lsp_jsonrpc as jsonrpc
|
||||
import lsp_utils as utils
|
||||
import lsprotocol.types as lsp
|
||||
from pygls import server, uris, workspace
|
||||
from common.load_data import standard_items
|
||||
|
||||
WORKSPACE_SETTINGS = {}
|
||||
GLOBAL_SETTINGS = {}
|
||||
@@ -51,7 +52,8 @@ LSP_SERVER = server.LanguageServer(
|
||||
name="NX Postprocessor Support", version="0.0.1", max_workers=MAX_WORKERS
|
||||
)
|
||||
|
||||
KEYWORD_LIST = []
|
||||
|
||||
NX_PROC_LIST = []
|
||||
|
||||
# **********************************************************
|
||||
# Tool specific code goes below this.
|
||||
@@ -93,21 +95,8 @@ def did_change(params: lsp.DidChangeTextDocumentParams) -> None:
|
||||
|
||||
|
||||
@LSP_SERVER.feature(lsp.TEXT_DOCUMENT_COMPLETION)
|
||||
def on_completion(params: lsp.CompletionParams) -> lsp.CompletionItem:
|
||||
items = [
|
||||
lsp.CompletionItem(
|
||||
label="proc",
|
||||
kind=lsp.CompletionItemKind.Keyword,
|
||||
detail="TCL Procedure Definition",
|
||||
documentation="Defines a new procedure in TCL",
|
||||
),
|
||||
lsp.CompletionItem(
|
||||
label="puts",
|
||||
kind=lsp.CompletionItemKind.Function,
|
||||
detail="Print to stdout",
|
||||
documentation="Prints a string to the standard output in TCL",
|
||||
),
|
||||
]
|
||||
def on_completion(params: lsp.CompletionParams) -> list[lsp.CompletionItem]:
|
||||
items = standard_items.tcl_keyword_list
|
||||
return lsp.CompletionList(is_incomplete=False, items=items)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user