A Neovim plugin for previewing Doxygen documentation.
- Live preview of Doxygen-generated documentation in your browser.
- Automated updates of the documentation preview when the source code is saved.
- Finds the project's Doxyfile and use it for previewing. Generate without a Doxyfile is also possible.
- Doxygen options for preview are configurable.
- Neovim v0.10.1 or later
- Doxygen
- prelive.nvim (for live preview)
Install the plugin using your favorite package manager.
Using vim-plug:
Plug 'hat0uma/prelive.nvim'
Plug 'hat0uma/doxygen-previewer.nvim'
lua require("doxygen-previewer").setup()
Using lazy.nvim:
{
"hat0uma/doxygen-previewer.nvim",
opts = {},
dependencies = { "hat0uma/prelive.nvim" },
cmd = {
"DoxygenOpen",
"DoxygenUpdate",
"DoxygenStop",
"DoxygenLog",
"DoxygenTempDoxyfileOpen"
},
}
The plugin provides the following commands:
:DoxygenOpen
- Open Doxygen documentation preview. The preview is automatically updated when saving the buffer.:DoxygenUpdate
- Manually update the preview.:DoxygenStop
- Stop the Doxygen documentation preview.:DoxygenLog
- Open the Doxygen generation log.:DoxygenTempDoxyfileOpen
- Open the temporary Doxyfile used for preview.
The plugin's behavior can be customized by providing a table to the setup
function. Here are the defaults:
For live preview settings, see prelive.nvim.
require("doxygen-previewer").setup({
--- Path to output doxygen results
tempdir = vim.fn.stdpath "cache",
--- If true, update automatically when saving.
update_on_save = true,
--- doxygen settings section
doxygen = {
--- doxygen executable
cmd = "doxygen",
--- doxyfile pattern.
--- Search upward from the parent directory of the file to be previewed and use the first match.
--- The directory matching the pattern is used as the cwd when doxygen is run.
--- If not matched, doxygen's default settings will be used. (see `doxygen -g -`)
doxyfile_patterns = {
"Doxyfile",
"doc/Doxyfile",
},
--- If the pattern in `doxyfile_patterns` setting is not found, use this parameter as cwd when running doxygen.
fallback_cwd = function()
return vim.fs.dirname(vim.api.nvim_buf_get_name(0))
end,
--- doxygen options to override.
--- For details, see [Doxygen configuration](https://www.doxygen.nl/manual/config.html).
--- Also, other options related to generation are overridden by default. see `Doxygen Options` section in README.md.
--- If a function is specified in the value, it will be evaluated at runtime.
--- For example:
--- override_options = {
--- PROJECT_NAME = "PreviewProject",
--- HTML_EXTRA_STYLESHEET = vim.fn.stdpath("config") .. "/stylesheet.css"
--- }
--- @type table<string, string|fun():string>
override_options = {},
},
})
By default the following settings are overridden for preview. If you want to set other options, you can change them with doxygen.override_options
.
KEY | VALUE |
---|---|
INPUT | . |
FILE_PATTERNS | <<preview_file_name>>.* |
EXCLUDE_PATTERNS | */.git/* */.svn/* */node_modules/* |
RECURSIVE | YES |
SEARCH_INCLUDES | NO |
EXTRACT_ALL | YES |
In addition, the following options are set inside the plugin. It is recommended not to change it because it is related to the generation destination.
KEY | VALUE |
---|---|
OUTPUT_DIRECTORY | <<tempdir>> |
SHORT_NAMES | NO |
CASE_SENSE_NAMES | NO |
CREATE_SUBDIRS | NO |
GENERATE_HTML | YES |
GENERATE_LATEX | NO |
GENERATE_MAN | NO |
GENERATE_RTF | NO |
GENERATE_XML | NO |
MIT