update completion feature

This commit is contained in:
2025-07-16 21:34:40 +02:00
parent 99718eb856
commit d4e3f8f806
4 changed files with 42 additions and 24 deletions
+2 -1
View File
@@ -5,4 +5,5 @@ dist
target
.venv
__pycache__
*.pyc
*.pyc
.nox
+7 -7
View File
@@ -1,11 +1,11 @@
{
"tcl": {
"keywords": [
"proc",
"puts",
"if"
]
},
"tcl": [
"proc",
"puts",
"if",
"else",
"elseif"
],
"MOM_procs": [
"MOM_output_literal",
"MOM_ask_ude_info",
+28
View File
@@ -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()
+5 -16
View File
@@ -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)