# {py:mod}`simvx.ide.lsp.protocol` ```{py:module} simvx.ide.lsp.protocol ``` ```{autodoc2-docstring} simvx.ide.lsp.protocol :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`Position ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position :summary: ``` * - {py:obj}`Range ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range :summary: ``` * - {py:obj}`Diagnostic ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic :summary: ``` * - {py:obj}`Location ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location :summary: ``` * - {py:obj}`Hover ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.Hover :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`encode_message ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.encode_message :summary: ``` * - {py:obj}`decode_header ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.decode_header :summary: ``` * - {py:obj}`request ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.request :summary: ``` * - {py:obj}`notification ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.notification :summary: ``` * - {py:obj}`response ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.response :summary: ``` * - {py:obj}`path_to_uri ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.path_to_uri :summary: ``` * - {py:obj}`uri_to_path ` - ```{autodoc2-docstring} simvx.ide.lsp.protocol.uri_to_path :summary: ``` ```` ### API ````{py:function} encode_message(obj: dict) -> bytes :canonical: simvx.ide.lsp.protocol.encode_message ```{autodoc2-docstring} simvx.ide.lsp.protocol.encode_message ``` ```` ````{py:function} decode_header(data: bytes) -> tuple[int, int] | None :canonical: simvx.ide.lsp.protocol.decode_header ```{autodoc2-docstring} simvx.ide.lsp.protocol.decode_header ``` ```` ````{py:function} request(method: str, params: dict | list | None = None) -> tuple[int, dict] :canonical: simvx.ide.lsp.protocol.request ```{autodoc2-docstring} simvx.ide.lsp.protocol.request ``` ```` ````{py:function} notification(method: str, params: dict | list | None = None) -> dict :canonical: simvx.ide.lsp.protocol.notification ```{autodoc2-docstring} simvx.ide.lsp.protocol.notification ``` ```` ````{py:function} response(msg_id: int | str, result: object = None, error: dict | None = None) -> dict :canonical: simvx.ide.lsp.protocol.response ```{autodoc2-docstring} simvx.ide.lsp.protocol.response ``` ```` ````{py:function} path_to_uri(path: str | pathlib.Path) -> str :canonical: simvx.ide.lsp.protocol.path_to_uri ```{autodoc2-docstring} simvx.ide.lsp.protocol.path_to_uri ``` ```` ````{py:function} uri_to_path(uri: str) -> str :canonical: simvx.ide.lsp.protocol.uri_to_path ```{autodoc2-docstring} simvx.ide.lsp.protocol.uri_to_path ``` ```` `````{py:class} Position :canonical: simvx.ide.lsp.protocol.Position ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position ``` ````{py:attribute} line :canonical: simvx.ide.lsp.protocol.Position.line :type: int :value: > 0 ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position.line ``` ```` ````{py:attribute} character :canonical: simvx.ide.lsp.protocol.Position.character :type: int :value: > 0 ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position.character ``` ```` ````{py:method} to_dict() -> dict :canonical: simvx.ide.lsp.protocol.Position.to_dict ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position.to_dict ``` ```` ````{py:method} from_dict(d: dict) -> simvx.ide.lsp.protocol.Position :canonical: simvx.ide.lsp.protocol.Position.from_dict :classmethod: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Position.from_dict ``` ```` ````` `````{py:class} Range :canonical: simvx.ide.lsp.protocol.Range ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range ``` ````{py:attribute} start :canonical: simvx.ide.lsp.protocol.Range.start :type: simvx.ide.lsp.protocol.Position :value: > 'field(...)' ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range.start ``` ```` ````{py:attribute} end :canonical: simvx.ide.lsp.protocol.Range.end :type: simvx.ide.lsp.protocol.Position :value: > 'field(...)' ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range.end ``` ```` ````{py:method} to_dict() -> dict :canonical: simvx.ide.lsp.protocol.Range.to_dict ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range.to_dict ``` ```` ````{py:method} from_dict(d: dict) -> simvx.ide.lsp.protocol.Range :canonical: simvx.ide.lsp.protocol.Range.from_dict :classmethod: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Range.from_dict ``` ```` ````` `````{py:class} Diagnostic :canonical: simvx.ide.lsp.protocol.Diagnostic ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic ``` ````{py:attribute} range :canonical: simvx.ide.lsp.protocol.Diagnostic.range :type: simvx.ide.lsp.protocol.Range :value: > 'field(...)' ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.range ``` ```` ````{py:attribute} severity :canonical: simvx.ide.lsp.protocol.Diagnostic.severity :type: int :value: > 1 ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.severity ``` ```` ````{py:attribute} message :canonical: simvx.ide.lsp.protocol.Diagnostic.message :type: str :value: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.message ``` ```` ````{py:attribute} source :canonical: simvx.ide.lsp.protocol.Diagnostic.source :type: str :value: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.source ``` ```` ````{py:attribute} code :canonical: simvx.ide.lsp.protocol.Diagnostic.code :type: str :value: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.code ``` ```` ````{py:method} from_dict(d: dict) -> simvx.ide.lsp.protocol.Diagnostic :canonical: simvx.ide.lsp.protocol.Diagnostic.from_dict :classmethod: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Diagnostic.from_dict ``` ```` ````` `````{py:class} Location :canonical: simvx.ide.lsp.protocol.Location ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location ``` ````{py:attribute} uri :canonical: simvx.ide.lsp.protocol.Location.uri :type: str :value: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location.uri ``` ```` ````{py:attribute} range :canonical: simvx.ide.lsp.protocol.Location.range :type: simvx.ide.lsp.protocol.Range :value: > 'field(...)' ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location.range ``` ```` ````{py:method} from_dict(d: dict) -> simvx.ide.lsp.protocol.Location :canonical: simvx.ide.lsp.protocol.Location.from_dict :classmethod: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location.from_dict ``` ```` ````{py:property} path :canonical: simvx.ide.lsp.protocol.Location.path :type: str ```{autodoc2-docstring} simvx.ide.lsp.protocol.Location.path ``` ```` ````` `````{py:class} Hover :canonical: simvx.ide.lsp.protocol.Hover ```{autodoc2-docstring} simvx.ide.lsp.protocol.Hover ``` ````{py:attribute} contents :canonical: simvx.ide.lsp.protocol.Hover.contents :type: str :value: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Hover.contents ``` ```` ````{py:attribute} range :canonical: simvx.ide.lsp.protocol.Hover.range :type: simvx.ide.lsp.protocol.Range | None :value: > None ```{autodoc2-docstring} simvx.ide.lsp.protocol.Hover.range ``` ```` ````{py:method} from_dict(d: dict) -> simvx.ide.lsp.protocol.Hover :canonical: simvx.ide.lsp.protocol.Hover.from_dict :classmethod: ```{autodoc2-docstring} simvx.ide.lsp.protocol.Hover.from_dict ``` ```` `````