return { recommended = function() return LazyVim.extras.wants({ ft = { "typst" }, }) end, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = { "typst" }, }, }, { "neovim/nvim-lspconfig", opts = { servers = { tinymist = { keys = { { "cP", function() local buf_name = vim.api.nvim_buf_get_name(0) local file_name = vim.fn.fnamemodify(buf_name, ":t") LazyVim.lsp.execute({ command = "tinymist.pinMain", arguments = { buf_name }, }) LazyVim.info("Tinymist: Pinned " .. file_name) end, desc = "Pin main file", }, }, single_file_support = true, -- Fixes LSP attachment in non-Git directories settings = { formatterMode = "typstyle", }, }, }, }, }, { "stevearc/conform.nvim", optional = true, opts = { formatters_by_ft = { typst = { "typstyle", lsp_format = "prefer" }, }, }, }, { "chomosuke/typst-preview.nvim", cmd = { "TypstPreview", "TypstPreviewToggle", "TypstPreviewUpdate" }, keys = { { "cp", ft = "typst", "TypstPreviewToggle", desc = "Toggle Typst Preview", }, }, opts = { dependencies_bin = { tinymist = "tinymist", }, }, }, { "folke/ts-comments.nvim", opts = { lang = { typst = { "// %s", "/* %s */" }, }, }, }, }