a pythonic generic language server (pronounced like "pie glass").
Project description
pygls
pygls (pronounced like "pie glass") is a pythonic generic implementation of the Language Server Protocol for use as a foundation for writing language servers using Python (e.g. Python, XML, etc.). It allows you to write your own language server in just a few lines of code.
Quick Intro
IMPORTANT NOTE:
In order to support type-checking, we added
pydantic
library which requires passing keyword arguments when creating LSP models.
Here's how to create a server and register a code completion feature:
from pygls.features import COMPLETION
from pygls.server import LanguageServer
from pygls.types import CompletionItem, CompletionList, CompletionOptions, CompletionParams
server = LanguageServer()
@server.feature(COMPLETION, CompletionOptions(trigger_characters=[',']))
def completions(params: CompletionParams):
"""Returns completion items."""
return CompletionList(
is_incomplete=False,
items=[
CompletionItem(label='"'),
CompletionItem(label='['),
CompletionItem(label=']'),
CompletionItem(label='{'),
CompletionItem(label='}'),
]
)
server.start_tcp('localhost', 8080)
Show completion list on the client:
Docs and Tutorial
The full documentation and a tutorial is available at https://pygls.readthedocs.io/en/latest/.
Let Us Know How You Are Using pygls
Submit a Pull Request (PR) with your information against the implementations document.
License
Apache-2.0
Contributing
Your contributions to pygls are welcome! Please review the Contributing and Code of Conduct documents for how to get started.
Donation
Open Law Library is a 501(c)(3) tax exempt organization.Help us maintain our open source projects and open the law to all with a donation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.