a pythonic generic language server
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.
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, CompletionParamsserver = LanguageServer()
@server.feature(COMPLETION, trigger_characters=[',']) def completions(params: CompletionParams): """Returns completion items.""" return CompletionList(False, [ CompletionItem('"'), CompletionItem('['), CompletionItem(']'), CompletionItem('{'), CompletionItem('}') ])
server.start_tcp('localhost', 8080)
Show completion list on the client:
The full documentation and a tutorial is available at https://pygls.readthedocs.io/en/latest/.
Submit a Pull Request (PR) with your information against the implementations document.
Apache-2.0
Your contributions to pygls are welcome! Please review the Contributing and [Code of Conduct](https://github.com/openlawlibrary/pygls/blob/master/CODEOFCONDUCT.md) documents for how to get started.
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.