Error correcting diet parser with integrated auto-completion and neat AST tools
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


An error correcting diet parser based on the diet-ng spec. See for the added grammar by this repository.


import std.algorithm;
import std.conv;
import std.stdio;

import dietc.complete;

void main()
	// Create completion engine from filename
	// You can also pass a parsed document with a callback for other files in the future (from extend tags)
	auto complete = new DietComplete("views/filename.dt");

	size_t offset = 12;
	// Use completeAt to get completion results for a specific byte offset in the code
	auto completion = complete.completeAt(offset);
	if (completion is Completion.completeD)
		size_t dOffset;
		string dCode;
		complete.extractD(offset, /*out*/ dCode, /*out*/ dOffset);
		// special instruction that D code should be completed here
		writeln("Complete D code ", dCode, " at ", dOffset);
	else!(a => text(a.type, ": ", a.text)).each!writeln;