SeeDocs

SeeDocs

A code documentation tool. SeeDocs reads C++ and Delphi sources and shows what they declare as a reference - folders, modules, types and their members, each with the hint its comment gives.

Version 0.1.1, 17 October 2026 - release notes - zlib licence

What it reads

SeeDocs reads a project's folders of sources as text, token by token, with the C++ and Pascal lexers of the ClaFi framework. A tree is read as it stands, with no compiler and no build setup.

It collects every public type - class, struct, union, enum, alias, concept - with its public and protected members, every free function and constant, and every module with its imports. A project reads its sources in one of two ways:

  • Any C++ and Delphi - for anyone's code. C++ module interfaces and headers and Delphi units are read for what they declare; implementation files are left out, and nothing is checked. A header stands as a module of its own, and a Delphi unit publishes its interface section.
  • ClaFi modules - for sources written to the ClaFi declaration routine. The routine's macros are read as the properties and events they declare, and SeeDocsCli check holds the sources to the routine.

Hints and footnotes

A declaration's hint comes from its comment, by one of two sets of rules:

  • Every recognizable comment - //, ///, //!, /** */, /*! */, a trailing ///<, and Delphi's { } and (* *). The hint is a @brief paragraph or an XML <summary>, else the comment's first sentence.
  • The strict ClaFi rules - one // line, on the declaration's line or touching it from above. A declaration with no comment owes one, and its page says so.

Notes longer than a hint go into the project's footnotes - Markdown files, one per subject. A page shows the section headed with its declaration's name, or under the strict rules the one the comment names with See <note>#<section>.

Projects

A project is a folder of its own, kept wherever you choose:

Project.cfgthe project's name, its folders of sources and its options Surface.cfgthe database a scan writes footnotesthe notes the pages show beside the hints

Both files are text in the ClaFi configuration format. The sources stay where they are, in any number of folders. A relative path is read from the project's folder, and a backslash parts folders on every desktop, so a project kept in a repository beside its sources reads the same on Windows and Linux. A tree may keep its project in a .seedocs folder of its own, and the tree's folder then stands for it.

A hint edited on a page goes into its source file when the project's Edit hints option allows it. The edit is written directly, with no undo; a new project starts with the option off.

The window

  • Several projects stay open at once, each a node of the tree, its pages in tabs.
  • A type's page shows its bases, its derived types, and its properties, events, methods and fields. A method's page holds every overload, each with its signature.
  • Ctrl+F searches names - folders, modules, types, functions, constants and members - in the shown project, or in every open one from the root page. The results page covers hints and footnotes as well, and the words are marked on the page shown.
  • Open in editor runs the command line set for the language in Settings - External editors, where {file} stands for the source file and {line} for the line in it.

Command line

SeeDocs [folder]opens the project the folder stands for SeeDocsCli scan [folder] [--out file] [--time]writes the project's Surface.cfg SeeDocsCli check [folder]reports deviations, exit code 1 on errors

The folder is a project's own, or a tree with a .seedocs project in it; SeeDocsCli takes the working directory when it is left out. --time prints how long each step of the scan took. check prints one line per finding, file:line: level: text, in file and line order.

The release archives hold the window. SeeDocsCli is built from the sources - see Building.

Install

Each archive holds one folder with the program in it. Unpack it anywhere and run it.

Windows

Windows 10 or 11, 64-bit. Download SeeDocs-0.1.1-windows-x64.zip - 1.5 MB, unpack it and run SeeDocs\SeeDocs.exe.

Windows may stop the unsigned executable with Windows protected your PC - choose More info, then Run anyway.

Linux

A Wayland session, glibc 2.35 or newer, and an x86-64 processor with AVX2 and FMA. Supported distributions lists the desktops. Download SeeDocs-0.1.1-linux-x86_64.tar.gz - 2.8 MB.

tar -xzf SeeDocs-0.1.1-linux-x86_64.tar.gz
./SeeDocs/SeeDocs

The checker in the archive names what a machine is missing to run it:

./SeeDocs/clafi-check.sh ./SeeDocs/SeeDocs

Settings and updates

SeeDocs keeps its settings, the open and recent projects among them, once Keep settings on this PC is ticked on the Settings page of the application menu. Its Information page checks GitHub for a newer release.

Check the download

GitHub computes a SHA-256 checksum of every file it publishes. For version 0.1.1:

SeeDocs-0.1.1-windows-x64.zip f895a1bbb62e22a821aaaaaf3f047784272d9bbb35060dc627d5733f2ab749bd SeeDocs-0.1.1-linux-x86_64.tar.gz bbd0cf7843f8317e16c866553e643b3c9ebeb0aeb28cd081ce1a8c7b3c396086

Compare it with the checksum of the archive you downloaded, before unpacking:

Windows, in PowerShell
Get-FileHash SeeDocs-0.1.1-windows-x64.zip
Linux
sha256sum SeeDocs-0.1.1-linux-x86_64.tar.gz

Building

SeeDocs is open source under the zlib licence. Its code is in the ClaFi repository, in Tools/SeeDocs, and its README is the full reference of the scanner and the database.

On Windows, SeeDocs.sln builds SeeDocs and SeeDocsCli with Visual Studio. On Linux, the CMake target SeeDocs builds the window for Wayland, and SeeDocsCli builds the scanner with no platform layer:

cmake -S . -B build -G Ninja -DCLAFI_PLATFORM=none \
      -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-stdlib=libc++ \
      -DCMAKE_BUILD_TYPE=Release
cmake --build build --target SeeDocsCli
./build/SeeDocsCli check Source

GitHub builds every release from the tree - the recipe is .github/workflows/release.yml.