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, CompletionParams
server = 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 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.