-
-
Save Zjl37/64f6202b22ef53caf819ec2656e7d49e to your computer and use it in GitHub Desktop.
for comparison
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[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