Tinymist Docs

Command System

The extra features are exposed via LSP's workspace/executeCommandworkspace/executeCommand request, forming a command system. The commands in the system share a name convention.

  • exportexportFmtFmt. these commands perform export on some document, with a specific format (FmtFmt), e.g. exportPdfexportPdf.

  • interactCodeContext({interactCodeContext({kindkind}[])}[]). The code context requests are useful for Editor Frontends to extend some semantic actions. A batch of requests are sent at the same time, to get code context atomically.

  • getResources(getResources("path/to/resource/""path/to/resource/", , optsopts)). The resources required by Editor Frontends should be arranged in paths. A second arguments can be passed as options to request a resource. This resemebles a restful POSTPOST action to LSP, with a url path and a HTTP body, or a RPC with a method name and params.

    Note you can also hide some commands in list of commands in UI by putting them in getResourcesgetResources command.

  • dodoXxxXxx. these commands are internally for Editor Frontends, and you'd better not to invoke them directly. You can still invoke them manually, as long as you know what would happen.

  • The rest commands are public and tend to be user-friendly.

Code Context

The code context requests are useful for Editor Frontends to check syntax and semantic the multiple positions. For example an editor frontend can filter some completion list by acquire the code context at current position.