Neovim plugin for Verifpal — syntax highlighting, verification diagnostics, formatting, and hover documentation for .vp cryptographic protocol models.
{
"symbolicsoft/verifpal-nvim",
ft = "verifpal",
}With a custom binary path:
{
"symbolicsoft/verifpal-nvim",
ft = "verifpal",
opts = { path = "/usr/local/bin/verifpal" },
}use {
"symbolicsoft/verifpal-nvim",
config = function() require("verifpal").setup() end,
}Run :VerifpalVerify to analyze the current model. Results appear as Neovim diagnostics on each query line — failed queries show as errors in the sign column, passing queries as info.
Run :VerifpalFormat to reformat the current buffer using verifpal pretty.
Press K over any primitive, query type, or keyword to see contextual documentation in a floating window. Covers all 21 cryptographic primitives, 5 query types, and language keywords.
Full highlighting for block keywords (principal, phase, queries, attacker), attacker modes (active, passive), declarations (knows, generates, leaks), qualifiers (public, private, password), query types (confidentiality, authentication, freshness, unlinkability, equivalence, precondition), all 21 primitives (AEAD_ENC, AEAD_DEC, ENC, DEC, SIGN, SIGNVERIF, HASH, HKDF, PKE_ENC, PKE_DEC, SHAMIR_SPLIT, SHAMIR_JOIN, RINGSIGN, RINGSIGNVERIF, BLIND, UNBLIND, MAC, PW_HASH, ASSERT, CONCAT, SPLIT), special values (G, nil), operators (=, ^, ?, ->, →), and principal names, phase numbers, and delimiters.
commentstring is set to // %s for gc (vim-commentary / Comment.nvim) and native comment toggling.
Bracket-based folding on principal Alice[...] and queries[...] blocks.
| Command | Description |
|---|---|
:VerifpalVerify |
Run attacker analysis, show results as diagnostics |
:VerifpalFormat |
Format the current buffer |
- Neovim 0.9+
- Verifpal binary in
$PATH(or specify viaopts.path)
GPL-3.0 — see LICENSE.