Skip to content

Instantly share code, notes, and snippets.

@Zjl37
Created February 16, 2024 14:52
Show Gist options
  • Save Zjl37/64f6202b22ef53caf819ec2656e7d49e to your computer and use it in GitHub Desktop.
Save Zjl37/64f6202b22ef53caf819ec2656e7d49e to your computer and use it in GitHub Desktop.
for comparison
(package-initialize)
(define-derived-mode typst-mode text-mode "Typst" "Test Major mode for editing Typst.")
(require 'lsp-mode)
(setq lsp-log-io t)
(add-to-list 'lsp-language-id-configuration '(typst-mode . "typst"))
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection "typst-lsp")
:activation-fn (lsp-activate-on "typst")
:server-id 'typst-lsp))
[Trace - 10:16:30 下午] Sending request 'initialize - (1)'.
Params: {
"processId": 172731,
"rootPath": "/home/zjl37/hack/misc",
"clientInfo": {
"name": "emacs",
"version": "GNU Emacs 29.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.40, cairo version 1.18.0)"
},
"rootUri": "file:///home/zjl37/hack/misc",
"capabilities": {
"general": {
"positionEncodings": [
"utf-32",
"utf-16"
]
},
"workspace": {
"workspaceEdit": {
"documentChanges": true,
"resourceOperations": [
"create",
"rename",
"delete"
]
},
"applyEdit": true,
"symbol": {
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
}
},
"executeCommand": {
"dynamicRegistration": false
},
"didChangeWatchedFiles": {
"dynamicRegistration": true
},
"workspaceFolders": true,
"configuration": true,
"codeLens": {
"refreshSupport": true
},
"fileOperations": {
"didCreate": false,
"willCreate": false,
"didRename": true,
"willRename": true,
"didDelete": false,
"willDelete": false
}
},
"textDocument": {
"declaration": {
"dynamicRegistration": true,
"linkSupport": true
},
"definition": {
"dynamicRegistration": true,
"linkSupport": true
},
"references": {
"dynamicRegistration": true
},
"implementation": {
"dynamicRegistration": true,
"linkSupport": true
},
"typeDefinition": {
"dynamicRegistration": true,
"linkSupport": true
},
"synchronization": {
"willSave": true,
"didSave": true,
"willSaveWaitUntil": true
},
"documentSymbol": {
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
},
"hierarchicalDocumentSymbolSupport": true
},
"formatting": {
"dynamicRegistration": true
},
"rangeFormatting": {
"dynamicRegistration": true
},
"onTypeFormatting": {
"dynamicRegistration": true
},
"rename": {
"dynamicRegistration": true,
"prepareSupport": true
},
"codeAction": {
"dynamicRegistration": true,
"isPreferredSupport": true,
"codeActionLiteralSupport": {
"codeActionKind": {
"valueSet": [
"",
"quickfix",
"refactor",
"refactor.extract",
"refactor.inline",
"refactor.rewrite",
"source",
"source.organizeImports"
]
}
},
"resolveSupport": {
"properties": [
"edit",
"command"
]
},
"dataSupport": true
},
"completion": {
"completionItem": {
"snippetSupport": true,
"documentationFormat": [
"markdown",
"plaintext"
],
"resolveAdditionalTextEditsSupport": true,
"insertReplaceSupport": true,
"deprecatedSupport": true,
"resolveSupport": {
"properties": [
"documentation",
"detail",
"additionalTextEdits",
"command"
]
},
"insertTextModeSupport": {
"valueSet": [
1,
2
]
}
},
"contextSupport": true,
"dynamicRegistration": true
},
"signatureHelp": {
"signatureInformation": {
"parameterInformation": {
"labelOffsetSupport": true
}
},
"dynamicRegistration": true
},
"documentLink": {
"dynamicRegistration": true,
"tooltipSupport": true
},
"hover": {
"contentFormat": [
"markdown",
"plaintext"
],
"dynamicRegistration": true
},
"foldingRange": {
"dynamicRegistration": true
},
"selectionRange": {
"dynamicRegistration": true
},
"callHierarchy": {
"dynamicRegistration": false
},
"typeHierarchy": {
"dynamicRegistration": true
},
"publishDiagnostics": {
"relatedInformation": true,
"tagSupport": {
"valueSet": [
1,
2
]
},
"versionSupport": true
},
"linkedEditingRange": {
"dynamicRegistration": true
}
},
"window": {
"workDoneProgress": true,
"showDocument": {
"support": true
}
}
},
"initializationOptions": null,
"workDoneToken": "1"
}
[Trace - 10:16:30 下午] Received response 'initialize - (1)' in 137ms.
Result: {
"capabilities": {
"completionProvider": {
"triggerCharacters": [
"#",
".",
"@"
]
},
"documentSymbolProvider": true,
"executeCommandProvider": {
"commands": [
"typst-lsp.doPdfExport",
"typst-lsp.doClearCache",
"typst-lsp.doPinMain"
]
},
"hoverProvider": true,
"selectionRangeProvider": true,
"semanticTokensProvider": {
"full": {
"delta": true
},
"legend": {
"tokenModifiers": [
"strong",
"emph",
"math"
],
"tokenTypes": [
"comment",
"string",
"keyword",
"operator",
"number",
"function",
"decorator",
"bool",
"punct",
"escape",
"link",
"raw",
"label",
"ref",
"heading",
"marker",
"term",
"delim",
"pol",
"error",
"text"
]
}
},
"signatureHelpProvider": {
"triggerCharacters": [
"(",
","
]
},
"textDocumentSync": {
"change": 2,
"openClose": true,
"save": true
},
"workspace": {
"workspaceFolders": {
"changeNotifications": true,
"supported": true
}
},
"workspaceSymbolProvider": true
}
}
[Trace - 10:16:30 下午] Sending notification 'initialized'.
Params: {}
[Trace - 10:16:30 下午] Sending notification 'textDocument/didOpen'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ",
"languageId": "typst",
"version": 0,
"text": ""
}
}
[Trace - 10:16:30 下午] Received notification 'window/logMessage'.
Params: {
"message": "src/workspace/package/external/manager.rs:52 { message = got user external package directory; user = LocalProvider { root: \"/home/zjl37/.local/share/typst/packages/\" }; }",
"type": 3
}
[Trace - 10:16:30 下午] Received notification 'window/logMessage'.
Params: {
"message": "src/workspace/package/external/manager.rs:62 { message = got external package cache; cache = LocalProvider { root: \"/home/zjl37/.cache/typst/packages/\" }; }",
"type": 3
}
[Trace - 10:16:30 下午] Received notification 'window/logMessage'.
Params: {
"message": "src/workspace/package/manager.rs:42 { message = initialized package manager; current = {Url { scheme: \"file\", cannot_be_a_base: false, username: \"\", password: None, host: None, port: None, path: \"/home/zjl37/hack/misc\", query: None, fragment: None }: Package { root: \"file:///home/zjl37/hack/misc\" }}; external = ExternalPackageManager { providers: [LocalProvider { root: \"/home/zjl37/.local/share/typst/packages/\" }, LocalProvider { root: \"/home/zjl37/.cache/typst/packages/\" }], cache: Some(LocalProvider { root: \"/home/zjl37/.cache/typst/packages/\" }), repo: Some(RemoteRepoProvider { base_url: Url { scheme: \"https\", cannot_be_a_base: false, username: \"\", password: None, host: Some(Domain(\"packages.typst.org\")), port: None, path: \"/\", query: None, fragment: None }, client: Client { accepts: Accepts, proxies: [Proxy(System({}), None)], referer: true, default_headers: {\"accept\": \"*/*\"}, timeout: 30s } }), packages: OnceCell { value: None } }; }",
"type": 3
}
[Trace - 10:16:30 下午] Sending request 'textDocument/documentSymbol - (2)'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
}
}
[Trace - 10:16:30 下午] Received request 'client/registerCapability - (0).
Params: {
"registrations": [
{
"id": "config",
"method": "workspace/didChangeConfiguration"
}
]
}
[Trace - 10:16:30 下午] Sending response 'client/registerCapability - (0)'. Processing request took 0ms
Params: {
"jsonrpc": "2.0",
"id": 0,
"result": null
}
[Trace - 10:16:30 下午] Received response 'textDocument/documentSymbol - (2)' in 19ms.
Result: []
[Trace - 10:16:30 下午] Received request 'client/registerCapability - (1).
Params: {
"registrations": [
{
"id": "watch_typst_files",
"method": "workspace/didChangeWatchedFiles",
"registerOptions": {
"watchers": [
{
"globPattern": "**/*"
}
]
}
}
]
}
[Trace - 10:16:30 下午] Sending response 'client/registerCapability - (1)'. Processing request took 52ms
Params: {
"jsonrpc": "2.0",
"id": 1,
"result": null
}
[Trace - 10:16:30 下午] Received notification 'window/logMessage'.
Params: {
"message": "src/server/lsp.rs:238 { message = server initialized; }",
"type": 3
}
[Trace - 10:16:37 下午] Sending request 'textDocument/hover - (3)'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
},
"position": {
"line": 0,
"character": 0
}
}
[Trace - 10:16:37 下午] Received response 'textDocument/hover - (3)' in 6ms.
Result: null
[Trace - 10:16:47 下午] Sending notification 'textDocument/didChange'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ",
"version": 1
},
"contentChanges": [
{
"range": {
"start": {
"line": 0,
"character": 0
},
"end": {
"line": 0,
"character": 0
}
},
"rangeLength": 0,
"text": "#"
}
]
}
[Trace - 10:16:47 下午] Received notification 'textDocument/publishDiagnostics'.
Params: {
"diagnostics": [
{
"message": "expected expression",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
},
"relatedInformation": [],
"severity": 1,
"source": "typst"
}
],
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
}
[Trace - 10:16:47 下午] Sending request 'textDocument/documentSymbol - (4)'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
}
}
[Trace - 10:16:47 下午] Sending request 'textDocument/hover - (5)'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
},
"position": {
"line": 0,
"character": 1
}
}
[Trace - 10:16:47 下午] Received response 'textDocument/documentSymbol - (4)' in 10ms.
Result: []
[Trace - 10:16:47 下午] Received response 'textDocument/hover - (5)' in 9ms.
Result: null
[Trace - 10:17:35 下午] Sending request 'textDocument/completion - (6)'.
Params: {
"textDocument": {
"uri": "file:///home/zjl37/hack/misc/typst-test/test.typ"
},
"position": {
"line": 0,
"character": 1
},
"context": {
"triggerKind": 1
}
}
[Trace - 10:17:35 下午] Received response 'textDocument/completion - (6)' in 13ms.
Result: [
{
"detail": "A type with two states.",
"insertTextFormat": 2,
"kind": 7,
"label": "bool",
"textEdit": {
"newText": "bool",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A whole number.",
"insertTextFormat": 2,
"kind": 7,
"label": "int",
"textEdit": {
"newText": "int",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A floating-point number.",
"insertTextFormat": 2,
"kind": 7,
"label": "float",
"textEdit": {
"newText": "float",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A sequence of Unicode codepoints.",
"insertTextFormat": 2,
"kind": 7,
"label": "str",
"textEdit": {
"newText": "str",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A label for an element.",
"insertTextFormat": 2,
"kind": 7,
"label": "label",
"textEdit": {
"newText": "label",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A sequence of bytes.",
"insertTextFormat": 2,
"kind": 7,
"label": "bytes",
"textEdit": {
"newText": "bytes",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A piece of document content.",
"insertTextFormat": 2,
"kind": 7,
"label": "content",
"textEdit": {
"newText": "content",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A sequence of values.",
"insertTextFormat": 2,
"kind": 7,
"label": "array",
"textEdit": {
"newText": "array",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A map from string keys to values.",
"insertTextFormat": 2,
"kind": 7,
"label": "dictionary",
"textEdit": {
"newText": "dictionary",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A mapping from argument values to a return value.",
"insertTextFormat": 2,
"kind": 7,
"label": "function",
"textEdit": {
"newText": "function",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Captured arguments to a function.",
"insertTextFormat": 2,
"kind": 7,
"label": "arguments",
"textEdit": {
"newText": "arguments",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Describes a kind of value.",
"insertTextFormat": 2,
"kind": 7,
"label": "type",
"textEdit": {
"newText": "type",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "An evaluated module, either built-in or resulting from a file.",
"insertTextFormat": 2,
"kind": 7,
"label": "module",
"textEdit": {
"newText": "module",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A regular expression.",
"insertTextFormat": 2,
"kind": 7,
"label": "regex",
"textEdit": {
"newText": "regex",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A filter for selecting elements within the document.",
"insertTextFormat": 2,
"kind": 7,
"label": "selector",
"textEdit": {
"newText": "selector",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Represents a date, a time, or a combination of both.",
"insertTextFormat": 2,
"kind": 7,
"label": "datetime",
"textEdit": {
"newText": "datetime",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Represents a positive or negative span of time.",
"insertTextFormat": 2,
"kind": 7,
"label": "duration",
"textEdit": {
"newText": "duration",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A version with an arbitrary number of components.",
"insertTextFormat": 2,
"kind": 7,
"label": "version",
"textEdit": {
"newText": "version",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A WebAssembly plugin.",
"insertTextFormat": 2,
"kind": 7,
"label": "plugin",
"textEdit": {
"newText": "plugin",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Returns the string representation of a value.",
"insertTextFormat": 2,
"kind": 3,
"label": "repr",
"textEdit": {
"newText": "repr(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Fails with an error.",
"insertTextFormat": 2,
"kind": 3,
"label": "panic",
"textEdit": {
"newText": "panic(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Ensures that a condition is fulfilled.",
"insertTextFormat": 2,
"kind": 3,
"label": "assert",
"textEdit": {
"newText": "assert(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Evaluates a string as Typst code.",
"insertTextFormat": 2,
"kind": 3,
"label": "eval",
"textEdit": {
"newText": "eval(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Provides access to active styles.",
"insertTextFormat": 2,
"kind": 3,
"label": "style",
"textEdit": {
"newText": "style(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "<module calc>",
"insertTextFormat": 2,
"kind": 21,
"label": "calc",
"textEdit": {
"newText": "calc",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "<module sys>",
"insertTextFormat": 2,
"kind": 21,
"label": "sys",
"textEdit": {
"newText": "sys",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "The root element of a document and its metadata.",
"insertTextFormat": 2,
"kind": 3,
"label": "document",
"textEdit": {
"newText": "document(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A reference to a label or bibliography.",
"insertTextFormat": 2,
"kind": 3,
"label": "ref",
"textEdit": {
"newText": "ref(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Links to a URL or a location in the document.",
"insertTextFormat": 2,
"kind": 3,
"label": "link",
"textEdit": {
"newText": "link(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A table of contents, figures, or other elements.",
"insertTextFormat": 2,
"kind": 3,
"label": "outline",
"textEdit": {
"newText": "outline(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A section heading.",
"insertTextFormat": 2,
"kind": 3,
"label": "heading",
"textEdit": {
"newText": "heading(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A figure with an optional caption.",
"insertTextFormat": 2,
"kind": 3,
"label": "figure",
"textEdit": {
"newText": "figure(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A footnote.",
"insertTextFormat": 2,
"kind": 3,
"label": "footnote",
"textEdit": {
"newText": "footnote(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Displays a quote alongside an optional attribution.",
"insertTextFormat": 2,
"kind": 3,
"label": "quote",
"textEdit": {
"newText": "quote(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Cite a work from the bibliography.",
"insertTextFormat": 2,
"kind": 3,
"label": "cite",
"textEdit": {
"newText": "cite(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A bibliography / reference listing.",
"insertTextFormat": 2,
"kind": 3,
"label": "bibliography",
"textEdit": {
"newText": "bibliography(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A numbered list.",
"insertTextFormat": 2,
"kind": 3,
"label": "enum",
"textEdit": {
"newText": "enum(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A bullet list.",
"insertTextFormat": 2,
"kind": 3,
"label": "list",
"textEdit": {
"newText": "list(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A paragraph break.",
"insertTextFormat": 2,
"kind": 3,
"label": "parbreak",
"textEdit": {
"newText": "parbreak()${1:}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Arranges text, spacing and inline-level elements into a paragraph.",
"insertTextFormat": 2,
"kind": 3,
"label": "par",
"textEdit": {
"newText": "par(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A table of items.",
"insertTextFormat": 2,
"kind": 3,
"label": "table",
"textEdit": {
"newText": "table(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A list of terms and their descriptions.",
"insertTextFormat": 2,
"kind": 3,
"label": "terms",
"textEdit": {
"newText": "terms(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Emphasizes content by toggling italics.",
"insertTextFormat": 2,
"kind": 3,
"label": "emph",
"textEdit": {
"newText": "emph(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Strongly emphasizes content by increasing the font weight.",
"insertTextFormat": 2,
"kind": 3,
"label": "strong",
"textEdit": {
"newText": "strong(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Applies a numbering to a sequence of numbers.",
"insertTextFormat": 2,
"kind": 3,
"label": "numbering",
"textEdit": {
"newText": "numbering(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Customizes the look and layout of text in a variety of ways.",
"insertTextFormat": 2,
"kind": 3,
"label": "text",
"textEdit": {
"newText": "text(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Inserts a line break.",
"insertTextFormat": 2,
"kind": 3,
"label": "linebreak",
"textEdit": {
"newText": "linebreak(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A language-aware quote that reacts to its context.",
"insertTextFormat": 2,
"kind": 3,
"label": "smartquote",
"textEdit": {
"newText": "smartquote(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Renders text in subscript.",
"insertTextFormat": 2,
"kind": 3,
"label": "sub",
"textEdit": {
"newText": "sub(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Renders text in superscript.",
"insertTextFormat": 2,
"kind": 3,
"label": "super",
"textEdit": {
"newText": "super(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Underlines text.",
"insertTextFormat": 2,
"kind": 3,
"label": "underline",
"textEdit": {
"newText": "underline(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Adds a line over text.",
"insertTextFormat": 2,
"kind": 3,
"label": "overline",
"textEdit": {
"newText": "overline(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Strikes through text.",
"insertTextFormat": 2,
"kind": 3,
"label": "strike",
"textEdit": {
"newText": "strike(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Highlights text with a background color.",
"insertTextFormat": 2,
"kind": 3,
"label": "highlight",
"textEdit": {
"newText": "highlight(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Raw text with optional syntax highlighting.",
"insertTextFormat": 2,
"kind": 3,
"label": "raw",
"textEdit": {
"newText": "raw(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Converts a string or content to lowercase.",
"insertTextFormat": 2,
"kind": 3,
"label": "lower",
"textEdit": {
"newText": "lower(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Converts a string or content to uppercase.",
"insertTextFormat": 2,
"kind": 3,
"label": "upper",
"textEdit": {
"newText": "upper(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Displays text in small capitals.",
"insertTextFormat": 2,
"kind": 3,
"label": "smallcaps",
"textEdit": {
"newText": "smallcaps(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Creates blind text.",
"insertTextFormat": 2,
"kind": 3,
"label": "lorem",
"textEdit": {
"newText": "lorem(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "<module math>",
"insertTextFormat": 2,
"kind": 21,
"label": "math",
"textEdit": {
"newText": "math",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A size or distance, possibly expressed with contextual units.",
"insertTextFormat": 2,
"kind": 7,
"label": "length",
"textEdit": {
"newText": "length",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "An angle describing a rotation.",
"insertTextFormat": 2,
"kind": 7,
"label": "angle",
"textEdit": {
"newText": "angle",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A ratio of a whole.",
"insertTextFormat": 2,
"kind": 7,
"label": "ratio",
"textEdit": {
"newText": "ratio",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A length in relation to some known length.",
"insertTextFormat": 2,
"kind": 7,
"label": "relative",
"textEdit": {
"newText": "relative",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Defines how the the remaining space in a layout is distributed.",
"insertTextFormat": 2,
"kind": 7,
"label": "fraction",
"textEdit": {
"newText": "fraction",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "The four directions into which content can be laid out.",
"insertTextFormat": 2,
"kind": 7,
"label": "direction",
"textEdit": {
"newText": "direction",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Where to align something along an axis.",
"insertTextFormat": 2,
"kind": 7,
"label": "alignment",
"textEdit": {
"newText": "alignment",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Layouts its child onto one or multiple pages.",
"insertTextFormat": 2,
"kind": 3,
"label": "page",
"textEdit": {
"newText": "page(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A manual page break.",
"insertTextFormat": 2,
"kind": 3,
"label": "pagebreak",
"textEdit": {
"newText": "pagebreak(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Inserts vertical spacing into a flow of blocks.",
"insertTextFormat": 2,
"kind": 3,
"label": "v",
"textEdit": {
"newText": "v(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Inserts horizontal spacing into a paragraph.",
"insertTextFormat": 2,
"kind": 3,
"label": "h",
"textEdit": {
"newText": "h(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "An inline-level container that sizes content.",
"insertTextFormat": 2,
"kind": 3,
"label": "box",
"textEdit": {
"newText": "box(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A block-level container.",
"insertTextFormat": 2,
"kind": 3,
"label": "block",
"textEdit": {
"newText": "block(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Arranges content and spacing horizontally or vertically.",
"insertTextFormat": 2,
"kind": 3,
"label": "stack",
"textEdit": {
"newText": "stack(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Arranges content in a grid.",
"insertTextFormat": 2,
"kind": 3,
"label": "grid",
"textEdit": {
"newText": "grid(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Separates a region into multiple equally sized columns.",
"insertTextFormat": 2,
"kind": 3,
"label": "columns",
"textEdit": {
"newText": "columns(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Forces a column break.",
"insertTextFormat": 2,
"kind": 3,
"label": "colbreak",
"textEdit": {
"newText": "colbreak(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Places content at an absolute position.",
"insertTextFormat": 2,
"kind": 3,
"label": "place",
"textEdit": {
"newText": "place(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Aligns content horizontally and vertically.",
"insertTextFormat": 2,
"kind": 3,
"label": "align",
"textEdit": {
"newText": "align(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Adds spacing around content.",
"insertTextFormat": 2,
"kind": 3,
"label": "pad",
"textEdit": {
"newText": "pad(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Repeats content to the available space.",
"insertTextFormat": 2,
"kind": 3,
"label": "repeat",
"textEdit": {
"newText": "repeat(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Moves content without affecting layout.",
"insertTextFormat": 2,
"kind": 3,
"label": "move",
"textEdit": {
"newText": "move(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Scales content without affecting layout.",
"insertTextFormat": 2,
"kind": 3,
"label": "scale",
"textEdit": {
"newText": "scale(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Rotates content without affecting layout.",
"insertTextFormat": 2,
"kind": 3,
"label": "rotate",
"textEdit": {
"newText": "rotate(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Hides content without affecting layout.",
"insertTextFormat": 2,
"kind": 3,
"label": "hide",
"textEdit": {
"newText": "hide(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Measures the layouted size of content.",
"insertTextFormat": 2,
"kind": 3,
"label": "measure",
"textEdit": {
"newText": "measure(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Provides access to the current outer container's (or page's, if none) size\n(width and height).",
"insertTextFormat": 2,
"kind": 3,
"label": "layout",
"textEdit": {
"newText": "layout(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A color in a specific color space.",
"insertTextFormat": 2,
"kind": 7,
"label": "color",
"textEdit": {
"newText": "color",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A color gradient.",
"insertTextFormat": 2,
"kind": 7,
"label": "gradient",
"textEdit": {
"newText": "gradient",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A repeating pattern fill.",
"insertTextFormat": 2,
"kind": 7,
"label": "pattern",
"textEdit": {
"newText": "pattern",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Defines how to draw a line.",
"insertTextFormat": 2,
"kind": 7,
"label": "stroke",
"textEdit": {
"newText": "stroke",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A raster or vector graphic.",
"insertTextFormat": 2,
"kind": 3,
"label": "image",
"textEdit": {
"newText": "image(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A line from one point to another.",
"insertTextFormat": 2,
"kind": 3,
"label": "line",
"textEdit": {
"newText": "line(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A rectangle with optional content.",
"insertTextFormat": 2,
"kind": 3,
"label": "rect",
"textEdit": {
"newText": "rect(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A square with optional content.",
"insertTextFormat": 2,
"kind": 3,
"label": "square",
"textEdit": {
"newText": "square(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "An ellipse with optional content.",
"insertTextFormat": 2,
"kind": 3,
"label": "ellipse",
"textEdit": {
"newText": "ellipse(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A circle with optional content.",
"insertTextFormat": 2,
"kind": 3,
"label": "circle",
"textEdit": {
"newText": "circle(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A closed polygon.",
"insertTextFormat": 2,
"kind": 3,
"label": "polygon",
"textEdit": {
"newText": "polygon(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A path through a list of points, connected by Bezier curves.",
"insertTextFormat": 2,
"kind": 3,
"label": "path",
"textEdit": {
"newText": "path(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Identifies an element in the document.",
"insertTextFormat": 2,
"kind": 7,
"label": "location",
"textEdit": {
"newText": "location",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Counts through pages, elements, and more.",
"insertTextFormat": 2,
"kind": 7,
"label": "counter",
"textEdit": {
"newText": "counter",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Manages stateful parts of your document.",
"insertTextFormat": 2,
"kind": 7,
"label": "state",
"textEdit": {
"newText": "state",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Exposes a value to the query system without producing visible content.",
"insertTextFormat": 2,
"kind": 3,
"label": "metadata",
"textEdit": {
"newText": "metadata(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Provides access to the location of content.",
"insertTextFormat": 2,
"kind": 3,
"label": "locate",
"textEdit": {
"newText": "locate(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Finds elements in the document.",
"insertTextFormat": 2,
"kind": 3,
"label": "query",
"textEdit": {
"newText": "query(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads plain text or data from a file.",
"insertTextFormat": 2,
"kind": 3,
"label": "read",
"textEdit": {
"newText": "read(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from a CSV file.",
"insertTextFormat": 2,
"kind": 3,
"label": "csv",
"textEdit": {
"newText": "csv(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from a JSON file.",
"insertTextFormat": 2,
"kind": 3,
"label": "json",
"textEdit": {
"newText": "json(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from a TOML file.",
"insertTextFormat": 2,
"kind": 3,
"label": "toml",
"textEdit": {
"newText": "toml(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from a YAML file.",
"insertTextFormat": 2,
"kind": 3,
"label": "yaml",
"textEdit": {
"newText": "yaml(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from a CBOR file.",
"insertTextFormat": 2,
"kind": 3,
"label": "cbor",
"textEdit": {
"newText": "cbor(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Reads structured data from an XML file.",
"insertTextFormat": 2,
"kind": 3,
"label": "xml",
"textEdit": {
"newText": "xml(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "A Unicode symbol.",
"insertTextFormat": 2,
"kind": 7,
"label": "symbol",
"textEdit": {
"newText": "symbol",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "<module sym>",
"insertTextFormat": 2,
"kind": 21,
"label": "sym",
"textEdit": {
"newText": "sym",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "<module emoji>",
"insertTextFormat": 2,
"kind": 21,
"label": "emoji",
"textEdit": {
"newText": "emoji",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create a grayscale color.",
"insertTextFormat": 2,
"kind": 3,
"label": "luma",
"textEdit": {
"newText": "luma(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create an Oklab color.",
"insertTextFormat": 2,
"kind": 3,
"label": "oklab",
"textEdit": {
"newText": "oklab(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create an Oklch color.",
"insertTextFormat": 2,
"kind": 3,
"label": "oklch",
"textEdit": {
"newText": "oklch(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create an RGB(A) color.",
"insertTextFormat": 2,
"kind": 3,
"label": "rgb",
"textEdit": {
"newText": "rgb(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create a CMYK color.",
"insertTextFormat": 2,
"kind": 3,
"label": "cmyk",
"textEdit": {
"newText": "cmyk(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Create an array consisting of a sequence of numbers.",
"insertTextFormat": 2,
"kind": 3,
"label": "range",
"textEdit": {
"newText": "range(${1:})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Evaluates a function.",
"insertTextFormat": 2,
"kind": 15,
"label": "function call",
"textEdit": {
"newText": "${1:function}(${2:arguments})[${3:body}]",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Inserts a nested code block.",
"insertTextFormat": 2,
"kind": 15,
"label": "code block",
"textEdit": {
"newText": "{ ${1:} }",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Switches into markup mode.",
"insertTextFormat": 2,
"kind": 15,
"label": "content block",
"textEdit": {
"newText": "[${1:content}]",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Sets style properties on an element.",
"insertTextFormat": 2,
"kind": 15,
"label": "set rule",
"textEdit": {
"newText": "set ${1:}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Redefines the look of an element.",
"insertTextFormat": 2,
"kind": 15,
"label": "show rule",
"textEdit": {
"newText": "show ${1:}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Transforms everything that follows.",
"insertTextFormat": 2,
"kind": 15,
"label": "show rule (everything)",
"textEdit": {
"newText": "show: ${1:}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Saves a value in a variable.",
"insertTextFormat": 2,
"kind": 15,
"label": "let binding",
"textEdit": {
"newText": "let ${1:name} = ${2:value}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Defines a function.",
"insertTextFormat": 2,
"kind": 15,
"label": "let binding (function)",
"textEdit": {
"newText": "let ${1:name}(${2:params}) = ${3:output}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Computes or inserts something conditionally.",
"insertTextFormat": 2,
"kind": 15,
"label": "if conditional",
"textEdit": {
"newText": "if ${1:1 < 2} {\n\t${2:}\n}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Computes or inserts different things based on a condition.",
"insertTextFormat": 2,
"kind": 15,
"label": "if-else conditional",
"textEdit": {
"newText": "if ${1:1 < 2} {\n\t${2:}\n} else {\n\t${3:}\n}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Computes or inserts something while a condition is met.",
"insertTextFormat": 2,
"kind": 15,
"label": "while loop",
"textEdit": {
"newText": "while ${1:1 < 2} {\n\t${2:}\n}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Computes or inserts something for each value in a collection.",
"insertTextFormat": 2,
"kind": 15,
"label": "for loop",
"textEdit": {
"newText": "for ${1:value} in ${2:(1, 2, 3)} {\n\t${3:}\n}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Computes or inserts something for each key and value in a collection.",
"insertTextFormat": 2,
"kind": 15,
"label": "for loop (with key)",
"textEdit": {
"newText": "for (${1:key}, ${2:value}) in ${3:(a: 1, b: 2)} {\n\t${4:}\n}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Exits early from a loop.",
"insertTextFormat": 2,
"kind": 15,
"label": "break",
"textEdit": {
"newText": "break",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Continues with the next iteration of a loop.",
"insertTextFormat": 2,
"kind": 15,
"label": "continue",
"textEdit": {
"newText": "continue",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Returns early from a function.",
"insertTextFormat": 2,
"kind": 15,
"label": "return",
"textEdit": {
"newText": "return ${1:output}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Imports variables from another file.",
"insertTextFormat": 2,
"kind": 15,
"label": "import (file)",
"textEdit": {
"newText": "import \"${1:file}.typ\": ${2:items}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Imports variables from another file.",
"insertTextFormat": 2,
"kind": 15,
"label": "import (package)",
"textEdit": {
"newText": "import \"@${1:}\": ${2:items}",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Includes content from another file.",
"insertTextFormat": 2,
"kind": 15,
"label": "include (file)",
"textEdit": {
"newText": "include \"${1:file}.typ\"",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Includes content from another file.",
"insertTextFormat": 2,
"kind": 15,
"label": "include (package)",
"textEdit": {
"newText": "include \"@${1:}\"",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Creates a sequence of values.",
"insertTextFormat": 2,
"kind": 15,
"label": "array literal",
"textEdit": {
"newText": "(${1:1, 2, 3})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
},
{
"detail": "Creates a mapping from names to value.",
"insertTextFormat": 2,
"kind": 15,
"label": "dictionary literal",
"textEdit": {
"newText": "(${1:a: 1, b: 2})",
"range": {
"end": {
"character": 1,
"line": 0
},
"start": {
"character": 1,
"line": 0
}
}
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment