aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lsp/tinymist.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lsp/tinymist.lua')
-rw-r--r--.config/nvim/lsp/tinymist.lua72
1 files changed, 0 insertions, 72 deletions
diff --git a/.config/nvim/lsp/tinymist.lua b/.config/nvim/lsp/tinymist.lua
deleted file mode 100644
index f02ff19..0000000
--- a/.config/nvim/lsp/tinymist.lua
+++ /dev/null
@@ -1,72 +0,0 @@
----@brief
----
---- https://github.com/Myriad-Dreamin/tinymist
---- An integrated language service for Typst [taɪpst]. You can also call it "微霭" [wēi ǎi] in Chinese.
----
---- Currently some of Tinymist's workspace commands are supported, namely:
---- `LspTinymistExportSvg`, `LspTinymistExportPng`, `LspTinymistExportPdf
---- `LspTinymistExportMarkdown`, `LspTinymistExportText`, `LspTinymistExportQuery`,
---- `LspTinymistExportAnsiHighlight`, `LspTinymistGetServerInfo`,
---- `LspTinymistGetDocumentTrace`, `LspTinymistGetWorkspaceLabels`, and
---- `LspTinymistGetDocumentMetrics`.
-
----@param command_name string
----@param client vim.lsp.Client
----@param bufnr integer
----@return fun():nil run_tinymist_command, string cmd_name, string cmd_desc
-local function create_tinymist_command(command_name, client, bufnr)
- local export_type = command_name:match 'tinymist%.export(%w+)'
- local info_type = command_name:match 'tinymist%.(%w+)'
- if info_type and info_type:match '^get' then
- info_type = info_type:gsub('^get', 'Get')
- end
- local cmd_display = export_type or info_type
- ---@return nil
- local function run_tinymist_command()
- local arguments = { vim.api.nvim_buf_get_name(bufnr) }
- local title_str = export_type and ('Export ' .. cmd_display) or cmd_display
- ---@type lsp.Handler
- local function handler(err, res)
- if err then
- return vim.notify(err.code .. ': ' .. err.message, vim.log.levels.ERROR)
- end
- -- If exporting, show the string result; else, show the table for inspection
- vim.notify(export_type and res or vim.inspect(res), vim.log.levels.INFO)
- end
- return client:exec_cmd({
- title = title_str,
- command = command_name,
- arguments = arguments,
- }, { bufnr = bufnr }, handler)
- end
- -- Construct a readable command name/desc
- local cmd_name = export_type and ('TinymistExport' .. cmd_display) or ('Tinymist' .. cmd_display) ---@type string
- local cmd_desc = export_type and ('Export to ' .. cmd_display) or ('Get ' .. cmd_display) ---@type string
- return run_tinymist_command, cmd_name, cmd_desc
-end
-
----@type vim.lsp.Config
-return {
- cmd = { 'tinymist' },
- filetypes = { 'typst' },
- root_markers = { '.git' },
- on_attach = function(client, bufnr)
- for _, command in ipairs {
- 'tinymist.exportSvg',
- 'tinymist.exportPng',
- 'tinymist.exportPdf',
- -- 'tinymist.exportHtml', -- Use typst 0.13
- 'tinymist.exportMarkdown',
- 'tinymist.exportText',
- 'tinymist.exportQuery',
- 'tinymist.exportAnsiHighlight',
- 'tinymist.getServerInfo',
- 'tinymist.getDocumentTrace',
- 'tinymist.getWorkspaceLabels',
- 'tinymist.getDocumentMetrics',
- } do
- local cmd_func, cmd_name, cmd_desc = create_tinymist_command(command, client, bufnr)
- vim.api.nvim_buf_create_user_command(bufnr, 'Lsp' .. cmd_name, cmd_func, { nargs = 0, desc = cmd_desc })
- end
- end,
-}