From 6ce682a3fc7e5c0f77b99320a4009aa5a48bfac6 Mon Sep 17 00:00:00 2001 From: cscherr Date: Mon, 5 May 2025 11:55:17 +0200 Subject: [PATCH] fix typst pin --- init.lua | 3 --- lua/custom/autocmds.lua | 5 +---- lua/custom/plugins/configs/lsp.lua | 19 +++++++++++++++++++ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/init.lua b/init.lua index 6167eaa..e1ea243 100644 --- a/init.lua +++ b/init.lua @@ -172,9 +172,6 @@ end, { desc = 'Enable autoformat', bang = true, }) -vim.api.nvim_create_user_command('TypstPinMain', function() - vim.lsp.buf.execute_command { command = 'tinymist.pinMain', arguments = { vim.api.nvim_buf_get_name(0) } } -end, { nargs = 0 }) -- autocommands -- === diff --git a/lua/custom/autocmds.lua b/lua/custom/autocmds.lua index a9882f5..1c55b87 100644 --- a/lua/custom/autocmds.lua +++ b/lua/custom/autocmds.lua @@ -98,9 +98,6 @@ vim.api.nvim_create_autocmd('FileType', { 'typst', }, callback = function() - -- pin the main file - vim.lsp.buf.execute_command { command = 'tinymist.pinMain', arguments = { vim.api.nvim_buf_get_name(0) } } - -- -- unpin the main file - -- vim.lsp.buf.execute_command { command = 'tinymist.pinMain', arguments = { nil } } + print "Don't forget to pin the main typst file for multifile support: tp" end, }) diff --git a/lua/custom/plugins/configs/lsp.lua b/lua/custom/plugins/configs/lsp.lua index 68c5cc4..732c05b 100644 --- a/lua/custom/plugins/configs/lsp.lua +++ b/lua/custom/plugins/configs/lsp.lua @@ -146,6 +146,23 @@ local servers = { exportPdf = 'never', semanticTokens = 'disable', }, + on_attach = function(client, bufnr) + vim.keymap.set('n', 'tp', function() + client:exec_cmd({ + title = 'pin', + command = 'tinymist.pinMain', + arguments = { vim.api.nvim_buf_get_name(0) }, + }, { bufnr = bufnr }) + end, { desc = '[T]oggle [P]in (pin this file as main file)', noremap = true }) + + vim.keymap.set('n', 'tu', function() + client:exec_cmd({ + title = 'unpin', + command = 'tinymist.pinMain', + arguments = { vim.v.null }, + }, { bufnr = bufnr }) + end, { desc = '[T]oggle [U]npin (unpin this file as main file)', noremap = true }) + end, }, html = {}, ts_ls = {}, @@ -208,6 +225,8 @@ vim.list_extend(ensure_installed, { require('mason-tool-installer').setup { ensure_installed = ensure_installed } require('mason-lspconfig').setup { + ensure_installed = nil, + automatic_installation = true, handlers = { function(server_name) local server = servers[server_name] or {}