Tinymist Docs

Server-Side Configurations

HTML | Markdown

compileStatuscompileStatus

In VSCode, enable compile status meaning that the extension will show the compilation status in the status bar. Since Neovim and Helix don’t have a such feature, it is disabled by default at the language server label.

  • Type: stringstring
  • Valid Values:

    • "enable""enable"
    • "disable""disable"
  • Default: "enable""enable"

completion.postfixcompletion.postfix

Whether to enable postfix code completion. For example, [A].box|[A].box| will be completed to box[A]|box[A]|. Hint: Restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: truetrue

completion.postfixUfcscompletion.postfixUfcs

Whether to enable UFCS-style completion. For example, [A].box|[A].box| will be completed to box[A]|box[A]|. Hint: Restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: truetrue

completion.postfixUfcsLeftcompletion.postfixUfcsLeft

Whether to enable left-variant UFCS-style completion. For example, [A].table|[A].table| will be completed to table(|)[A]table(|)[A]. Hint: Restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: truetrue

completion.postfixUfcsRightcompletion.postfixUfcsRight

Whether to enable right-variant UFCS-style completion. For example, [A].table|[A].table| will be completed to table([A], |)table([A], |). Hint: Restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: truetrue

completion.symbolcompletion.symbol

Whether to make symbol completion stepless. For example, $ar|$$ar|$ will be completed to $arrow.r$$arrow.r$. Hint: Restarting the editor is required to change this setting.

  • Type: stringstring
  • Valid Values:

    • "step""step" : Complete symbols step by step
    • "stepless""stepless" : Complete symbols steplessly
  • Default: "step""step"

completion.triggerOnSnippetPlaceholderscompletion.triggerOnSnippetPlaceholders

Whether to trigger completions on arguments (placeholders) of snippets. For example, boxbox will be completed to box(|)box(|), and server will request the editor (lsp client) to request completion after moving cursor to the placeholder in the snippet. Note: this has no effect if the editor doesn’t support editor.action.triggerSuggesteditor.action.triggerSuggest or tinymist.triggerSuggestAndParameterHintstinymist.triggerSuggestAndParameterHints command. Hint: Restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: falsefalse

exportPdfexportPdf

The extension can export PDFs of your Typst files. This setting controls whether this feature is enabled and how often it runs.

  • Type: stringstring
  • Valid Values:

    • "never""never" : Never export PDFs, you will manually run typst.
    • "onSave""onSave" : Export PDFs when you save a file.
    • "onType""onType" : Export PDFs as you type in a file.
    • "onDocumentHasTitle""onDocumentHasTitle" : (Deprecated) Export PDFs when a document has a title (and save a file), which is useful to filter out template files.
  • Default: "never""never"

exportTargetexportTarget

The target to export the document to. Defaults to pagedpaged. Note: you can still export PDF when it is set to htmlhtml. This configuration only affects how the language server completes your code.

  • Type: stringstring
  • Valid Values:

    • "paged""paged" : The current export target is for PDF, PNG, and SVG export.
    • "html""html" : The current export target is for HTML export.
  • Default: "paged""paged"

fontPathsfontPaths

A list of file or directory path to fonts. Note: The configuration source in higher priority will override the configuration source in lower priority. The order of precedence is: Configuration tinymist.fontPathstinymist.fontPaths > Configuration tinymist.typstExtraArgs.fontPathstinymist.typstExtraArgs.fontPaths > LSP’s CLI Argument --font-path--font-path > The environment variable TYPST_FONT_PATHSTYPST_FONT_PATHS (a path list separated by ;; (on Windows) or :: (Otherwise)). Note: If the path to fonts is a relative path, it will be resolved based on the root directory. Note: In VSCode, you can use VSCode variables in the path, e.g. ${workspaceFolder}/fonts${workspaceFolder}/fonts.

  • Type: array | null

formatterIndentSizeformatterIndentSize

Sets the indent size (using space) for the formatter.

  • Type: numbernumber
  • Default: 22

formatterModeformatterMode

The extension can format Typst files using typstfmt or typstyle.

  • Type: stringstring
  • Valid Values:

    • "disable""disable" : Formatter is not activated.
    • "typstyle""typstyle" : Use typstyle formatter.
    • "typstfmt""typstfmt" : Use typstfmt formatter.
  • Default: "typstyle""typstyle"

formatterPrintWidthformatterPrintWidth

Sets the print width for the formatter, which is a soft limit of characters per line. See the definition of Print Width. Note: this has lower priority than the formatter’s specific configurations.

  • Type: numbernumber
  • Default: 120120

formatterProseWrapformatterProseWrap

Controls how the formatter handles prose line wrapping. If enabled, the formatter will insert hard line breaks at the specified print width. If disabled, the formatter keeps the original line breaks and spaces.

  • Type: booleanboolean
  • Default: falsefalse

lint.enabledlint.enabled

Enable or disable lint checks. Note: restarting the editor is required to change this setting.

  • Type: booleanboolean
  • Default: falsefalse

lint.whenlint.when

Configure when to perform lint checks. Note: restarting the editor is required to change this setting.

  • Type: stringstring
  • Valid Values:

    • "onSave""onSave" : Perform lint checks on save
    • "onType""onType" : Perform lint checks on type
  • Default: "onSave""onSave"

outputPathoutputPath

The path pattern to store Typst artifacts, you can use $root$root or $dir$dir or $name$name to do magic configuration, e.g. $dir/$name$dir/$name (default) and $root/target/$dir/$name$root/target/$dir/$name.

  • Type: stringstring
  • Default: """"

preview.background.argspreview.background.args

The arguments that the background preview server used for. It is only used when `tinymist.preview.background` is enabled. Check `tinymist preview` to see the allowed arguments.

  • Type: arrayarray
  • Properties:

    • "type""type":

      • Type: stringstring
  • Default: [
    "--data-plane-host=127.0.0.1:23635",
    "--invert-colors=auto"
    ]
    [
    "--data-plane-host=127.0.0.1:23635",
    "--invert-colors=auto"
    ]

preview.background.enabledpreview.background.enabled

This configuration is only used for the editors that doesn't support lsp well, e.g. helix and zed. When it is enabled, the preview server listens a specific tcp port in the background. You can discover the background previewers in the preview panel.

  • Type: booleanboolean
  • Default: falsefalse

preview.browsing.argspreview.browsing.args

The arguments used by `tinymist.startDefaultPreview` command. Check `tinymist preview` to see the allowed arguments.

  • Type: arrayarray
  • Properties:

    • "type""type":

      • Type: stringstring
  • Default: [
    "--data-plane-host=127.0.0.1:0",
    "--invert-colors=auto",
    "--open"
    ]
    [
    "--data-plane-host=127.0.0.1:0",
    "--invert-colors=auto",
    "--open"
    ]

projectResolutionprojectResolution

This configuration specifies the way to resolved projects.

  • Type: stringstring
  • Valid Values:

    • "singleFile""singleFile" : Manage typst documents like what we did in Markdown. Each single file is an individual document and no project resolution is needed.
    • "lockDatabase""lockDatabase" : Manage typst documents like what we did in Rust. For each workspace, tinymist tracks your preview and compilation history, and stores the information in a lock file. Tinymist will automatically selects the main file to use according to the lock file. This also allows other tools push preview and export tasks to language server by updating the lock file.
  • Default: "singleFile""singleFile"

rootPathrootPath

Configure the root for absolute paths in typst. Hint: you can set the rootPath to --, so that tinymist will always use parent directory of the file as the root path. Note: for Neovim users, if it complains root not found, you must set require("lspconfig")["tinymist"].setup { root_dir }require("lspconfig")["tinymist"].setup { root_dir } as well, see tinymist#528.

  • Type: string | null

semanticTokenssemanticTokens

Enable or disable semantic tokens (LSP syntax highlighting)

  • Type: stringstring
  • Valid Values:

    • "enable""enable" : Use semantic tokens for syntax highlighting
    • "disable""disable" : Do not use semantic tokens for syntax highlighting
  • Default: "enable""enable"

systemFontssystemFonts

A flag that determines whether to load system fonts for Typst compiler, which is useful for ensuring reproducible compilation. If set to null or not set, the extension will use the default behavior of the Typst compiler. Note: You need to restart LSP to change this options.

  • Type: booleanboolean
  • Default: truetrue

typstExtraArgstypstExtraArgs

You can pass any arguments as you like, and we will try to follow behaviors of the same version of typst-cli. Note: the arguments may be overridden by other settings. For example, --font-path--font-path will be overridden by tinymist.fontPathstinymist.fontPaths.

  • Type: arrayarray
  • Default: [][]