update completion feature
This commit is contained in:
+2
-1
@@ -5,4 +5,5 @@ dist
|
|||||||
target
|
target
|
||||||
.venv
|
.venv
|
||||||
__pycache__
|
__pycache__
|
||||||
*.pyc
|
*.pyc
|
||||||
|
.nox
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"tcl": {
|
"tcl": [
|
||||||
"keywords": [
|
"proc",
|
||||||
"proc",
|
"puts",
|
||||||
"puts",
|
"if",
|
||||||
"if"
|
"else",
|
||||||
]
|
"elseif"
|
||||||
},
|
],
|
||||||
"MOM_procs": [
|
"MOM_procs": [
|
||||||
"MOM_output_literal",
|
"MOM_output_literal",
|
||||||
"MOM_ask_ude_info",
|
"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 lsp_utils as utils
|
||||||
import lsprotocol.types as lsp
|
import lsprotocol.types as lsp
|
||||||
from pygls import server, uris, workspace
|
from pygls import server, uris, workspace
|
||||||
|
from common.load_data import standard_items
|
||||||
|
|
||||||
WORKSPACE_SETTINGS = {}
|
WORKSPACE_SETTINGS = {}
|
||||||
GLOBAL_SETTINGS = {}
|
GLOBAL_SETTINGS = {}
|
||||||
@@ -51,7 +52,8 @@ LSP_SERVER = server.LanguageServer(
|
|||||||
name="NX Postprocessor Support", version="0.0.1", max_workers=MAX_WORKERS
|
name="NX Postprocessor Support", version="0.0.1", max_workers=MAX_WORKERS
|
||||||
)
|
)
|
||||||
|
|
||||||
KEYWORD_LIST = []
|
|
||||||
|
NX_PROC_LIST = []
|
||||||
|
|
||||||
# **********************************************************
|
# **********************************************************
|
||||||
# Tool specific code goes below this.
|
# Tool specific code goes below this.
|
||||||
@@ -93,21 +95,8 @@ def did_change(params: lsp.DidChangeTextDocumentParams) -> None:
|
|||||||
|
|
||||||
|
|
||||||
@LSP_SERVER.feature(lsp.TEXT_DOCUMENT_COMPLETION)
|
@LSP_SERVER.feature(lsp.TEXT_DOCUMENT_COMPLETION)
|
||||||
def on_completion(params: lsp.CompletionParams) -> lsp.CompletionItem:
|
def on_completion(params: lsp.CompletionParams) -> list[lsp.CompletionItem]:
|
||||||
items = [
|
items = standard_items.tcl_keyword_list
|
||||||
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",
|
|
||||||
),
|
|
||||||
]
|
|
||||||
return lsp.CompletionList(is_incomplete=False, items=items)
|
return lsp.CompletionList(is_incomplete=False, items=items)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user