Delphi-RAG-Lint

drag-lint help

What's new

drag-lint grows out of the daily work on Micronite (https://www.htrmicronite.com), our quality and production-control software.

1.33.0-alpha

1.31.5-alpha

  • Qualify #convert quick fix -- ConvRulesEditor Convert tab: one click writes the engine's qualified #convert line (apply/1 qualify_fixes) into the open book.

1.31.4-alpha

1.31.3-alpha

  • Fix all reliability (1.31.3) -- Fix all no longer drops every rename for library-root members, shows a wait cursor and refuses a second fix, and keeps E-prefixed exception classes.

1.31.0-alpha

1.30.0-alpha

  • ask -- Ask one report question and print the answer as text.

1.29.0-alpha

1.28.3-alpha

  • Copy Selected Diagnostics -- Copies only the Diagnostics rows selected in the Structure form (Ctrl/Shift-click, Ctrl+C) to the clipboard.
  • Rescan this unit -- Re-indexes the active project and re-lints the current unit on demand, so the Diagnostics panel drops findings already fixed.
  • Setup installer -- One Inno Setup installer for the engine, Graphviz dot, the IDE plugin, ConvRulesEditor, drag-lint-graph and YADF.

1.28.2-alpha

  • Work list -- ConvRulesEditor tab: what the last Convert run's converted code still uses from the old components (engine pas_uses).

1.28.0-alpha

1.26.7-alpha

  • Convert progress -- ConvRulesEditor Convert tab: per-step progress (unit, book, phase, elapsed) on the status bar and the tab.
  • Reindex project -- ConvRulesEditor command: incremental index --project of the editor's project index, cancellable.

1.26.1-alpha

1.22.0-alpha

1.20.4-alpha

  • register-project -- Add a new project to the manifest so index --all and the IDE can see it.

1.20.2-alpha

  • Chart questions -- Every chart question of the Reports submenu and drag-lint ask, imported from REPORT_QUESTIONS.

1.20.1-alpha

  • Charts and the IDE -- Ask a chart question, open the answer, read a round-trip trace, jump to RAD Studio.

1.20.0-alpha

  • project-facts -- Report what the build does: defines that are on and what sets each, imports, output paths and packages.

1.18.0-alpha

1.17.0-alpha

  • doc-forget -- Reap or rename the project tags on inbound documentation facts; a dry run unless told to apply.

1.15.0-alpha

  • glyph-vacuum -- Measure every streamed glyph or picture under a tree before writing a glyph rule.

1.13.0-alpha

  • ide-release -- Asks a running drag-lint Delphi IDE plugin not to respawn its drag-lint.exe child processes for a while -- and to drop the running one on its next request.

1.11.0-alpha

  • lint-tree -- Answers one question lint-all cannot: does an interface edit to this unit reach any dependent?

1.10.0-alpha

  • shared-unit -- Reads or extends the dl:shared marker on a unit, recording which projects share it.

1.8.0-alpha

  • exceptions-sync -- Declare one exception class per distinct raise Exception.Create message, then rewrite the raise sites.
  • ghost-check -- Compiles a project with one or more units' content temporarily replaced by their unsaved editor buffers, then restores the original files unchanged.

1.7.0-alpha

  • wiki -- Looks up the dl:wiki concept topics a team has written into their own doc comments, and routes a human phrase to the code that implements it.
  • dl:wiki concept blocks -- The format of a dl:wiki block -- the concept notes the wiki verb reads.

1.3.0-alpha

  • migrate-dbs -- Moves project index databases into each project's own D-RAG folder, matching the current index layout.

1.2.0-alpha

  • convert-apply -- Locates .dfm component instances that match a #convert rule from a conversion-rules file and rewrites all five surfaces: declaration retype, uses-add.
  • Full Compile Sweep -- Recompiles a project's stale units and refreshes its stored compiler findings, forcing a full build rather than the default stale-count threshold.

1.1.0-alpha

  • convert-scaffold -- Auto-generates a valid conversion-rules file from the real property trees of a from-type and a to-type.
  • convert-validate -- Parses and validates a conversion-rules file (a reFind-superset DSL), checking its #link/#default paths against the real property trees.
  • proptree -- Recursive deep-property enumerator for a class: flattens its own and inherited properties into dotted paths, recursing into class-typed properties.

0.99.0-alpha

  • butterfly -- Composes a symbol's callers (upward wing) and callees (downward wing) into one combined chart in a single command.

0.96.0-alpha

0.95.0-alpha

  • deps-report -- Produces a third-party dependency rollup from an index: which external units/libraries an indexed codebase depends on.
  • drag-lint Options -- The plugin's settings dialog for drag-lint: lets you browse and toggle the lint rule catalog.

0.94.0-alpha

  • create-enum-helper -- Generates a Byte-family record helper (ToByte/FromByte/ToInteger/ FromInteger/ToString/FromString) for an enum type.
  • Create helper class -- Generates a Byte-family record helper for an enum type represented by a Structure-tree node.
  • helpers-of -- Lists record/class helper edges targeting a given type, anywhere in the index.

0.93.0-alpha

  • doc-drift -- Diagnostic that computes deterministic doc-vs-code drift findings for one symbol.
  • document-all -- Documents every public declaration in every indexed unit, with no project scope.

0.92.0-alpha

  • pp-profile -- Diagnostic that prints the resolved preprocessor define profile for a project, one symbol per line.
  • preprocess-file -- Diagnostic that prints a file's {$IFDEF}-resolved source to stdout under a given define set.

0.91.0-alpha

  • ambiguous-calls -- Resolver-coverage diagnostic that reports call sites the engine could not pin to exactly one target -- unresolved or ambiguous calls.
  • call-path -- Finds the shortest resolved call path from one symbol to another.
  • callgraph -- Prints an N-deep resolved call tree for a symbol, in either direction.
  • dump-call-edges -- Diagnostic that dumps every resolved call edge in the index as refid|targetqname|confidence rows.
  • find-callees -- Lists the resolved outgoing calls of one routine.
  • purge-locals -- A size escape hatch for an index database that has grown too large: it drops local-variable and parameter symbols and runs VACUUM to reclaim space.

0.90.0-alpha

  • Document it -- Generates or repairs a managed DocInsight comment on the single symbol represented by a Structure-tree node.
  • Document project -- Generates or repairs managed DocInsight comments for every public declaration the project owns, starting from a Structure-tree node's project.
  • Document unit -- Generates or repairs managed DocInsight comments for every public declaration in the unit represented by a Structure-tree node (facts-only).

0.86.0-alpha

  • outline -- Prints the file-scoped symbol outline for one Pascal unit.

0.85.0-alpha

  • extract-method -- Pulls a run of statements out of a routine into a new method.

0.82.0-alpha

  • dump-refs -- Diagnostic that dumps every ref in a file together with its enclosingsymbolid attribution.

0.69.0-alpha

  • find-unit -- Finds which indexed unit declares a symbol, and adds that unit to a file's uses clause.
  • safe-delete -- Deletes a symbol if and only if it has zero references in the index.

0.64.1-alpha

  • ghost-recover -- Scans a project's hidden D-RAG folder for recovery journals left behind when a ghost-check overlay was interrupted by a crash.

0.61.0-alpha

  • Fix all in project -- Applies autofixes for every fixable finding across the whole project, starting from the Structure form.
  • Run Lint All (Full Report) -- Runs the whole rule catalog against a project's indexed code and reports every surviving finding -- the overall project health check.

0.60.0-alpha

  • Show Resolved DBs (debug) -- Prints which database(s) drag-lint would actually use for a given project, file, or platform, without running a real query.

0.54.0-alpha

  • allow -- Records a dl:ok review of one finding, so it stops being reported without being fixed.
  • Allow this message -- Records a dl:ok review of one finding, so it stops being reported without being fixed.

0.48.0-alpha

  • lint-project -- Runs project-scoped structural lint rules against an index -- checks such as god-class, unused-public-symbol.

0.44.0-alpha

  • Forms for testers (CSV) -- A CSV of a project's forms, one row per form, telling a tester how to reach each one from the main form.

0.43.0-alpha

0.40.5-alpha

  • fb-snapshot -- Connects to a Firebird database and captures a snapshot into a sqlite index.
  • link-orm -- Links a project's code index to a SQL index so ORM-style relationships between Delphi symbols and SQL objects can be resolved across both.
  • sql -- Runs one read-only SQL statement against an index database and prints the result set.
  • Uses Report (CSV) -- Exports the project's unit-dependency data as a CSV file.

0.39.0-alpha

0.33.0-alpha

  • Find Usages -- Lists every reference to the symbol under the editor caret across the indexed project.
  • Find Usages -- Lists references to the symbol represented by a Structure-tree node.
  • usages -- Finds usage sites of a named symbol, with a choice of report width.

0.31.0-alpha

0.30.0-alpha

0.27.0-alpha

0.26.0-alpha

  • compile-check -- Runs a compiler-backed check against a single Delphi project (.dproj) or source file (.pas) and reports the result.

0.25.0-alpha

0.24.0-alpha

  • Rename Symbol -- Renames a symbol across the whole indexed project.

0.21.0-alpha

0.19.0-alpha

  • info -- Prints engine self-info: version, build date, license (MIT), tree-sitter details, and capabilities.
  • Type at Cursor -- Resolves the static type of the expression under the editor caret.

0.18.0-alpha

  • bench-context -- Benchmarks the context command by building context bundles for a sample of symbols against a database.

0.17.0-alpha

  • Impact / Blast Radius (symbol) -- Reports what would be affected if a chosen symbol changes -- the set of code to retest.
  • Symbol Slice -- Shows the slice of code relevant to one symbol: its declaration, body, and immediate context.

0.16.0-alpha

  • Format with YADF -- Reformats one Pascal unit by driving the external YADF formatter.

0.15.0-alpha

  • About and Status -- The plugin's status window -- versions, connection health, and which indexes are actually in use.

0.13.0-alpha

  • diff -- Compares two index databases and reports what changed between them -- for example an index snapshot taken before and after a refactor.

0.12.0-alpha

0.10.0-alpha

  • drag-lint Graph -- This page documents the "View > Tool Windows > drag-lint Graph" menu entry -- the drag-lint graph viewer.

0.8.0-alpha

  • Import Build Log -- Parses an external dcc or msbuild build log and folds its errors and warnings into drag-lint's stored findings.

0.7.0-alpha

  • Hover at Cursor -- Shows a hover card for the symbol under the editor caret: signature, documentation, and callers.

0.6.0-alpha

  • context -- Returns a compact context bundle for a symbol -- its doc comment, class surface (signatures), the target's own body, and a capped list of callers.
  • Export Enums (Delphi const) -- Uses export enums with --format delphi-const to dump indexed enum types as Delphi const declarations.
  • Export Graph (DOT) -- Uses graph to export the indexed call/reference graph in DOT format, either whole or rooted at a name substring.
  • Export to Obsidian -- Uses export obsidian to write the indexed project out as a set of Obsidian vault markdown pages.
  • lsp -- Starts the LSP (Language Server Protocol) stdio server.
  • shutdown -- Ask running lsp engines to close their indexes and stand down, so an index can be rebuilt without killing them.
  • Top Symbols (fan-in) -- Ranks indexed symbols by fan-in -- how many places reference them.
  • workspace add -- Registers a project file into a .drag-lint-workspace.json workspace config, so multi-project workspace commands know about it.
  • workspace index -- Indexes every project registered in a .drag-lint-workspace.json workspace config in one pass.
  • workspace status -- Reports the status of every project registered in a .drag-lint-workspace.json workspace config.

0.4.0-alpha

  • MCP server -- Exposes the index to MCP clients as 15 tools.
  • serve -- Starts the MCP (Model Context Protocol) stdio server, for AI clients such as Claude or Cursor to query a drag-lint index.

0.3.0-alpha

  • schema -- Prints the live schema of an index database: schemaversion, every table and column, and row counts.

0.2.0-alpha

  • drag-lint -- This page documents the "View > Tool Windows > drag-lint" menu entry -- the main drag-lint dockable tool window.
  • drag-lint: Project Rules -- Shows the catalog of lint rules in the context of a specific project.
  • Lint rules -- Every lint rule the engine ships, imported from rules --json.

0.1.0-alpha

  • Auto-Document Whole Project -- Writes DocInsight documentation into every public declaration a project owns.
  • Class Surface -- Shows the public surface of a class: its members and signatures, without the method bodies.
  • Compiler Hints -- Uses query hints to surface compiler hint/warning findings that have been imported into the index, filtered by code or severity.
  • Copy All Diagnostics -- Puts every lint finding for the current unit onto the clipboard, starting from the Structure form.
  • Copy Diagnostics (Current File) -- Puts the current file's lint findings onto the clipboard.
  • Find Undocumented (public) -- Uses query find to list indexed symbols filtered by documentation state, kind, or visibility.
  • Fix all in unit -- Applies autofixes for every fixable finding in the current unit, starting from the Structure form.
  • Fix it -- Applies the fix for the single lint finding on a Structure-tree node; an unused unit is removed or moved to implementation by compiling.
  • Format Whole Project with YADF -- Runs YADF formatting across a project's files, with indexing involved as part of the same action.
  • Lint Buffer (Unsaved) -- Lints the current editor buffer's in-memory content, including unsaved edits, without writing it to disk first.
  • query ancestors -- Resolves the transitive class/interface hierarchy of a type.
  • query descendants -- The reverse of query ancestors: lists every class that descends from a given ancestor, across all scanned databases.
  • query find-callers -- Lists callers of a routine by name, with an option to restrict results to precise, resolved callers.
  • query --kind --all -- Lists every symbol of one kind -- every unit, every class, every enum -- with no name, no doc clause and no row cap.
  • query --name-like -- Case-insensitive substring search over symbol names.
  • query type-usage -- Answers one question, of a list of type names, about one file.
  • query typecat -- Resolves a type's category -- float, string, class, interface, and so on.
  • query unit-usage -- Answers one question, about one unit and one file.
  • Rebuild Index for This Project -- Walks a project's .dproj compile closure and (re)builds its index.
  • Symbol Search -- Searches symbols by name across the indexed projects.

0.0.0