Compare commits

..

No commits in common. "22ffea117c72ca110036a9910da7796c1e28a599" and "28dda6515efb0cf33dbb833d0c3a0be05c4a20e3" have entirely different histories.

4 changed files with 22 additions and 46 deletions

View file

@ -11,7 +11,7 @@ Typst, Markdown, etc.)—diagnostics included.
- Async compilation via `vim.system()`
- Built-in presets for Typst, LaTeX (latexmk, pdflatex, tectonic), Markdown,
GitHub-flavored Markdown, AsciiDoc, PlantUML, Mermaid, and Quarto
GitHub-flavored Markdown, AsciiDoc, and Quarto
- Compiler errors via `vim.diagnostic` or quickfix
- Previewer auto-close on buffer deletion

View file

@ -11,7 +11,7 @@ in Neovim. It provides a unified interface for any compilation workflow —
LaTeX, Typst, Markdown, or anything else with a CLI compiler.
The plugin ships with opt-in presets for common tools (Typst, LaTeX, Pandoc,
AsciiDoc, PlantUML, Mermaid, Quarto) and supports fully custom providers.
AsciiDoc, Quarto) and supports fully custom providers.
See |preview-presets|.
==============================================================================
@ -180,8 +180,6 @@ override individual fields by passing a table instead: >lua
`markdown` pandoc → HTML (standalone, embedded)
`github` pandoc → HTML (GitHub-styled, `-f gfm` input)
`asciidoctor` asciidoctor → HTML (AsciiDoc with SSE reload)
`plantuml` plantuml → SVG (UML diagrams, `.puml`)
`mermaid` mmdc → SVG (Mermaid diagrams, `.mmd`)
`quarto` quarto render → HTML (scientific publishing)
==============================================================================

View file

@ -19,10 +19,9 @@
{
formatter = forEachSystem (pkgs: pkgs.nixfmt-tree);
devShells = forEachSystem (
pkgs:
let
devTools = [
devShells = forEachSystem (pkgs: {
default = pkgs.mkShell {
packages = [
(pkgs.luajit.withPackages (
ps: with ps; [
busted
@ -33,25 +32,10 @@
pkgs.stylua
pkgs.selene
pkgs.lua-language-server
];
in
{
default = pkgs.mkShell {
packages = devTools;
};
presets = pkgs.mkShell {
packages = devTools ++ [
pkgs.typst
pkgs.texliveMedium
pkgs.tectonic
pkgs.pandoc
pkgs.asciidoctor
pkgs.quarto
pkgs.plantuml
pkgs.mermaid-cli
];
};
}
);
});
};
}

View file

@ -115,24 +115,6 @@ local function parse_asciidoctor(output)
return diagnostics
end
---@param output string
---@return preview.Diagnostic[]
local function parse_mermaid(output)
local lnum = output:match('Parse error on line (%d+)')
if not lnum then
return {}
end
local msg = output:match('(Expecting .+)') or 'parse error'
return {
{
lnum = tonumber(lnum) - 1,
col = 0,
message = msg,
severity = vim.diagnostic.severity.ERROR,
},
}
end
---@type preview.ProviderConfig
M.typst = {
ft = 'typst',
@ -331,7 +313,19 @@ M.mermaid = {
return (ctx.file:gsub('%.mmd$', '.svg'))
end,
error_parser = function(output)
return parse_mermaid(output)
local diagnostics = {}
for line in output:gmatch('[^\r\n]+') do
local lnum = line:match('^%s*Parse error on line (%d+)')
if lnum then
table.insert(diagnostics, {
lnum = tonumber(lnum) - 1,
col = 0,
message = line,
severity = vim.diagnostic.severity.ERROR,
})
end
end
return diagnostics
end,
clean = function(ctx)
return { 'rm', '-f', (ctx.file:gsub('%.mmd$', '.svg')) }