GDShrapt.Validator
5.0.0
dotnet add package GDShrapt.Validator --version 5.0.0
NuGet\Install-Package GDShrapt.Validator -Version 5.0.0
<PackageReference Include="GDShrapt.Validator" Version="5.0.0" />
<PackageVersion Include="GDShrapt.Validator" Version="5.0.0" />
<PackageReference Include="GDShrapt.Validator" />
paket add GDShrapt.Validator --version 5.0.0
#r "nuget: GDShrapt.Validator, 5.0.0"
#:package GDShrapt.Validator@5.0.0
#addin nuget:?package=GDShrapt.Validator&version=5.0.0
#tool nuget:?package=GDShrapt.Validator&version=5.0.0
GDShrapt.Validator
Compiler-style AST validation for GDScript 2.0 (Godot 4.x) with type inference.
Features
- Compiler-style diagnostics - Error codes (GD1xxx-GD7xxx) with precise locations
- Type inference - Infer expression types with
GDTypeInferenceEngine - Custom runtime providers - Integrate with Godot's type system via
IGDRuntimeProvider - Two-pass validation - Full support for forward references
- Configurable checks - Enable/disable validation categories
Diagnostic Categories
| Category | Code | Description |
|---|---|---|
| Syntax | GD1xxx | Invalid tokens, missing brackets, unexpected tokens |
| Scope | GD2xxx | Undefined variables, duplicate declarations |
| Type | GD3xxx | Type mismatches, invalid operand types |
| Call | GD4xxx | Wrong argument counts for built-in functions |
| Control Flow | GD5xxx | break/continue outside loops, return outside functions |
| Indentation | GD6xxx | Mixed tabs/spaces, inconsistent indentation |
| Await | GD7xxx | Await expression structure issues |
Quick Start
using GDShrapt.Reader;
var reader = new GDScriptReader();
var code = @"
func test():
break # Error: break outside loop
print(undefined_var) # Error: undefined variable
";
var tree = reader.ParseFileContent(code);
var validator = new GDValidator();
var result = validator.Validate(tree);
if (!result.IsValid)
{
foreach (var error in result.Errors)
{
// Output: "error GD5001: 'break' can only be used inside a loop (3:4)"
Console.WriteLine(error.ToString());
}
}
Validation Options
var options = new GDValidationOptions
{
CheckSyntax = true, // GD1xxx errors
CheckScope = true, // GD2xxx errors
CheckTypes = true, // GD3xxx warnings
CheckCalls = true, // GD4xxx errors
CheckControlFlow = true, // GD5xxx errors
CheckIndentation = true, // GD6xxx warnings
CheckAwait = true // GD7xxx errors
};
var result = validator.Validate(tree, options);
Custom Runtime Provider
Integrate with Godot's actual type system:
public class GodotRuntimeProvider : IGDRuntimeProvider
{
public bool IsKnownType(string typeName) => /* check Godot types */;
public GDRuntimeTypeInfo GetTypeInfo(string typeName) => /* return type info */;
// ... other methods
}
// Use with caching for performance
var provider = new GDCachingRuntimeProvider(new GodotRuntimeProvider());
var options = new GDValidationOptions { RuntimeProvider = provider };
var result = validator.Validate(tree, options);
Related Packages
| Package | Description |
|---|---|
| GDShrapt.Reader | Core parser and AST (required) |
| GDShrapt.Builder | Fluent API for code generation |
| GDShrapt.Linter | Style checking and naming conventions |
| GDShrapt.Formatter | Code formatting with type inference |
Documentation
Full documentation and examples: GitHub Repository
License
MIT License - see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- GDShrapt.Reader (>= 5.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on GDShrapt.Validator:
| Package | Downloads |
|---|---|
|
GDShrapt.Formatter
GDShrapt.Formatter provides configurable code formatting for GDScript 2.0 (Godot 4.x) with auto type inference. Format Rules: - Indentation (GDF001): Tabs or spaces with configurable size - Blank Lines (GDF002): Between functions, after class declaration, between member types - Spacing (GDF003): Around operators, after commas/colons, inside brackets - Trailing Whitespace (GDF004): Remove trailing spaces, ensure EOF newline - Line Endings (GDF005): Normalize to LF, CRLF, or Platform - Line Wrapping (GDF006): Automatic wrapping for long lines - Auto Type Hints (GDF007): Automatically add inferred type hints (opt-in) - Code Reorder (GDF008): Reorder class members by type (opt-in) Key Features: - Style extraction from sample code ("format by example") - LSP compatible options (tabSize, insertSpaces, trimTrailingWhitespace, etc.) - Uses GDTypeInferenceEngine for automatic type hints - Presets: Default, GDScriptStyleGuide, Minimal Usage: new GDFormatter(options).FormatCode(code) Requires: GDShrapt.Reader, GDShrapt.Validator |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 5.0.0 | 110 | 1/2/2026 |