Skip to content

Instantly share code, notes, and snippets.

@nenkoru
Created August 7, 2023 20:46
Show Gist options
  • Save nenkoru/ffd385707232f47890157724d9e65838 to your computer and use it in GitHub Desktop.
Save nenkoru/ffd385707232f47890157724d9e65838 to your computer and use it in GitHub Desktop.
An example of simple language server using pygls
#!/usr/bin/python3
from pygls.server import LanguageServer
from lsprotocol.types import (
TEXT_DOCUMENT_COMPLETION,
CompletionItemKind,
CompletionItem,
CompletionList,
CompletionParams,
)
server = LanguageServer("example-server", "v0.1")
@server.feature(TEXT_DOCUMENT_COMPLETION)
def completions(params: CompletionParams):
items = []
document = server.workspace.get_document(params.text_document.uri)
current_line = document.lines[params.position.line].strip()
if "hel" in current_line:
items = [
CompletionItem("Test completion from the imaginery star* model", kind=CompletionItemKind.Snippet),
]
return CompletionList(is_incomplete=False, items=items)
server.start_io()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment