summaryrefslogtreecommitdiff
path: root/nvim/lsp/tinymist.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lsp/tinymist.lua')
-rwxr-xr-xnvim/lsp/tinymist.lua75
1 files changed, 0 insertions, 75 deletions
diff --git a/nvim/lsp/tinymist.lua b/nvim/lsp/tinymist.lua
deleted file mode 100755
index 3b182a6..0000000
--- a/nvim/lsp/tinymist.lua
+++ /dev/null
@@ -1,75 +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
----@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
- ---Execute the Tinymist command, supporting both 0.10 and 0.11 exec methods
- ---@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
- if vim.fn.has 'nvim-0.11' == 1 then
- -- For Neovim 0.11+
- return client:exec_cmd({
- title = title_str,
- command = command_name,
- arguments = arguments,
- }, { bufnr = bufnr }, handler)
- else
- return vim.notify('Tinymist commands require Neovim 0.11+', vim.log.levels.WARN)
- end
- end
- -- Construct a readable command name/desc
- local cmd_name = export_type and ('LspTinymistExport' .. cmd_display) or ('LspTinymist' .. 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
-
-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, cmd_name, cmd_func, { nargs = 0, desc = cmd_desc })
- end
- end,
-}