LoraxMod
1.0.6
Tree-sitter AST parsing and analysis via PowerShell. Native C# implementation with schema-driven extraction. Supports 28+ languages.
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2025 jackyHardDisk. MIT License.
Package Details
Author(s)
- jackyHardDisk
Tags
tree-sitter AST parsing code-analysis static-analysis
Cmdlets
Get-LoraxSchema ConvertTo-LoraxAST Find-LoraxNode Compare-LoraxAST Start-LoraxParserSession Invoke-LoraxParse Stop-LoraxParserSession Find-LoraxFunction Get-LoraxDependency Get-LoraxDiff
Dependencies
This module has no dependencies.
Release Notes
## v1.0.6 - Embedded Schemas in DLL
Changes:
- Schemas now embedded directly in LoraxMod.dll as resources
- Eliminates external file path dependencies for schema loading
- Schema lookup: embedded resource -> SchemaCache -> local grammars
- Removed Content/ContentWithTargetPath schema bundling (replaced by EmbeddedResource)
Technical Details:
- Resource names: LoraxMod.schemas.{language}.json
- Uses Assembly.GetManifestResourceStream for loading
- SchemaReader.FromJson already existed, now primary path for embedded schemas
## v1.0.5 - Bundle Schemas in NuGet
Fixes:
- Schemas now included in NuGet package (copied to output/schemas/)
- NuGet consumers get schemas automatically
## v1.0.4 - Schema Path Fix
Fixes:
- Support both powershellMod layout (bin/../schemas/) and flat layout (schemas/)
- Fixes C# parsing in pwsh-repl and other flat deployments
## v1.0.3 - Bundled Schemas
Fixes:
- Bundled node-types.json schemas for all 28 languages
- No network fetch required for C#, QL, TSQ, embedded-template (missing from tree-sitter-language-pack)
- Schema lookup: bundled -> SchemaCache -> local grammars
## v1.0.2 - License Compliance
Additions:
- Added THIRD_PARTY_NOTICES.txt with MIT license attributions
- TreeSitter.DotNet and all tree-sitter grammars properly attributed
## v1.0.1 - DLL Loading Fix
Fixes:
- Fixed native DLL loading when module loaded via PWSH_MCP_MODULES
- ModuleInitializer now modifies PATH environment variable to include bin/ and runtimes/{RID}/native/
- TreeSitter.DotNet language parsers (tree-sitter-python.dll, etc.) now load correctly
Technical Details:
- TreeSitter.DotNet uses LoadLibrary (Win32 API) which searches PATH
- AddDllDirectory doesn't work (only affects LoadLibraryEx with LOAD_LIBRARY_SEARCH_USER_DIRS)
- Solution: Modify PATH environment variable during assembly initialization
See: PWSH_DLL_LOADING_ISSUE.md for detailed investigation and solution documentation
## v1.0.0 - Native C# Implementation
Breaking Changes:
- Complete rewrite using TreeSitter.DotNet native bindings
- No Node.js dependency required
- New cmdlet-based API (10 cmdlets)
- Removed script-based functions from v0.3.0
New Architecture:
- Native C# parsers via TreeSitter.DotNet
- Schema-driven extraction (dynamic field discovery)
- Direct .NET integration
- 28+ supported languages (vs 12 in v0.3.0)
Cmdlets:
- Schema: Get-LoraxSchema (query schemas, list languages)
- Parse: ConvertTo-LoraxAST, Find-LoraxNode, Compare-LoraxAST
- Sessions: Start/Invoke/Stop-LoraxParserSession (batch processing)
- Analysis: Find-LoraxFunction, Get-LoraxDependency, Get-LoraxDiff
Performance:
- Faster parsing (native C# vs Node.js interop)
- Session-based batch processing for high throughput
- Reduced memory overhead
Language Support:
- All v0.3.0 languages: C, C++, C#, Python, JavaScript, Rust, CSS, HTML, Bash
- New: TypeScript, Go, Java, Ruby, PHP, Swift, JSON, and 13+ more
- Missing from v0.3.0: Fortran, PowerShell, R (use v0.3.0 or SchemaCache for 170+ languages)
Migration from v0.3.0:
- Start-LoraxStreamParser -> Start-LoraxParserSession
- Invoke-LoraxStreamQuery -> Invoke-LoraxParse
- Stop-LoraxStreamParser -> Stop-LoraxParserSession
- Find-FunctionCalls -> Find-LoraxFunction (alias preserved)
- Get-IncludeDependencies -> Get-LoraxDependency (alias preserved)
Requirements:
- PowerShell 7.0+
- .NET 8.0 runtime
- No Node.js dependency
FileList
- LoraxMod.nuspec
- bin\runtimes\win-arm64\native\pwrshplugin.dll
- bin\runtimes\win-x86\lib\net5.0\getfilesiginforedistwrapper.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-jsdoc.so
- bin\runtimes\win-arm64\native\tree-sitter-agda.dll
- bin\runtimes\win-x86\lib\netstandard1.6\microsoft.management.infrastructure.dll
- LoraxMod.psd1
- bin\runtimes\linux-arm64\native\libtree-sitter-json.so
- bin\runtimes\win-arm64\native\tree-sitter-bash.dll
- bin\runtimes\win-x86\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
- LoraxMod.psm1
- bin\runtimes\linux-arm64\native\libtree-sitter-julia.so
- bin\runtimes\win-arm64\native\tree-sitter-c-sharp.dll
- bin\runtimes\win-x86\native\getfilesiginforedist.dll
- THIRD_PARTY_NOTICES.txt
- bin\runtimes\linux-arm64\native\libtree-sitter-ocaml.so
- bin\runtimes\win-arm64\native\tree-sitter-css.dll
- bin\runtimes\win-x86\native\microsoft.management.infrastructure.native.unmanaged.dll
- bin\LoraxMod.deps.json
- bin\runtimes\linux-arm64\native\libtree-sitter-php.so
- bin\runtimes\win-arm64\native\tree-sitter-embedded-template.dll
- bin\runtimes\win-x86\native\PowerShell.Core.Instrumentation.dll
- bin\LoraxMod.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-python.so
- bin\runtimes\win-arm64\native\tree-sitter-go.dll
- bin\runtimes\win-x86\native\pwrshplugin.dll
- bin\LoraxMod.pdb
- bin\runtimes\linux-arm64\native\libtree-sitter-ql.so
- bin\runtimes\win-arm64\native\tree-sitter-haskell.dll
- bin\runtimes\win-x86\native\tree-sitter-agda.dll
- bin\LoraxMod.xml
- bin\runtimes\linux-arm64\native\libtree-sitter-ruby.so
- bin\runtimes\win-arm64\native\tree-sitter-html.dll
- bin\runtimes\win-x86\native\tree-sitter-bash.dll
- bin\Microsoft.ApplicationInsights.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-rust.so
- bin\runtimes\win-arm64\native\tree-sitter-java.dll
- bin\runtimes\win-x86\native\tree-sitter-c-sharp.dll
- bin\Microsoft.Win32.Registry.AccessControl.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-scala.so
- bin\runtimes\win-arm64\native\tree-sitter-jsdoc.dll
- bin\runtimes\win-x86\native\tree-sitter-c.dll
- bin\Newtonsoft.Json.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-tsx.so
- bin\runtimes\win-arm64\native\tree-sitter-json.dll
- bin\runtimes\win-x86\native\tree-sitter-cpp.dll
- bin\System.CodeDom.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-typescript.so
- bin\runtimes\win-arm64\native\tree-sitter-julia.dll
- bin\runtimes\win-x86\native\tree-sitter-css.dll
- bin\System.Configuration.ConfigurationManager.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-verilog.so
- bin\runtimes\win-arm64\native\tree-sitter-ocaml.dll
- bin\runtimes\win-x86\native\tree-sitter-embedded-template.dll
- bin\System.Diagnostics.EventLog.dll
- bin\runtimes\linux-arm64\native\libtree-sitter.so
- bin\runtimes\win-arm64\native\tree-sitter-php.dll
- bin\runtimes\win-x86\native\tree-sitter-go.dll
- bin\System.DirectoryServices.dll
- bin\runtimes\linux-musl-x64\native\libpsl-native.so
- bin\runtimes\win-arm64\native\tree-sitter-python.dll
- bin\runtimes\win-x86\native\tree-sitter-haskell.dll
- bin\System.Management.dll
- bin\runtimes\linux-x64\native\libpsl-native.so
- bin\runtimes\win-arm64\native\tree-sitter-ql.dll
- bin\runtimes\win-x86\native\tree-sitter-html.dll
- bin\System.Security.Cryptography.Pkcs.dll
- bin\runtimes\linux-x64\native\libtree-sitter-agda.so
- bin\runtimes\win-arm64\native\tree-sitter-ruby.dll
- bin\runtimes\win-x86\native\tree-sitter-java.dll
- bin\System.Security.Cryptography.ProtectedData.dll
- bin\runtimes\linux-x64\native\libtree-sitter-bash.so
- bin\runtimes\win-arm64\native\tree-sitter-rust.dll
- bin\runtimes\win-x86\native\tree-sitter-javascript.dll
- bin\System.Security.Permissions.dll
- bin\runtimes\linux-x64\native\libtree-sitter-c-sharp.so
- bin\runtimes\win-arm64\native\tree-sitter-scala.dll
- bin\runtimes\win-x86\native\tree-sitter-jsdoc.dll
- bin\System.Windows.Extensions.dll
- bin\runtimes\linux-x64\native\libtree-sitter-c.so
- bin\runtimes\win-arm64\native\tree-sitter-swift.dll
- bin\runtimes\win-x86\native\tree-sitter-json.dll
- bin\tree-sitter-agda.dll
- bin\runtimes\linux-x64\native\libtree-sitter-cpp.so
- bin\runtimes\win-arm64\native\tree-sitter-toml.dll
- bin\runtimes\win-x86\native\tree-sitter-julia.dll
- bin\tree-sitter-bash.dll
- bin\runtimes\linux-x64\native\libtree-sitter-css.so
- bin\runtimes\win-arm64\native\tree-sitter-tsq.dll
- bin\runtimes\win-x86\native\tree-sitter-ocaml.dll
- bin\tree-sitter-c-sharp.dll
- bin\runtimes\linux-x64\native\libtree-sitter-embedded-template.so
- bin\runtimes\win-arm64\native\tree-sitter-tsx.dll
- bin\runtimes\win-x86\native\tree-sitter-php.dll
- bin\tree-sitter-c.dll
- bin\runtimes\linux-x64\native\libtree-sitter-go.so
- bin\runtimes\win-arm64\native\tree-sitter-typescript.dll
- bin\runtimes\win-x86\native\tree-sitter-python.dll
- bin\tree-sitter-cpp.dll
- bin\runtimes\linux-x64\native\libtree-sitter-haskell.so
- bin\runtimes\win-arm64\native\tree-sitter-verilog.dll
- bin\runtimes\win-x86\native\tree-sitter-ql.dll
- bin\tree-sitter-csharp.dll
- bin\runtimes\linux-x64\native\libtree-sitter-html.so
- bin\runtimes\win-arm64\native\tree-sitter.dll
- bin\runtimes\win-x86\native\tree-sitter-ruby.dll
- bin\tree-sitter-css.dll
- bin\runtimes\linux-x64\native\libtree-sitter-java.so
- bin\runtimes\win-x64\lib\net5.0\getfilesiginforedistwrapper.dll
- bin\runtimes\win-x86\native\tree-sitter-rust.dll
- bin\tree-sitter-embedded-template.dll
- bin\runtimes\linux-x64\native\libtree-sitter-javascript.so
- bin\runtimes\win-x64\lib\netstandard1.6\microsoft.management.infrastructure.dll
- bin\runtimes\win-x86\native\tree-sitter-scala.dll
- bin\tree-sitter-go.dll
- bin\runtimes\linux-x64\native\libtree-sitter-jsdoc.so
- bin\runtimes\win-x64\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
- bin\runtimes\win-x86\native\tree-sitter-swift.dll
- bin\tree-sitter-haskell.dll
- bin\runtimes\linux-x64\native\libtree-sitter-json.so
- bin\runtimes\win-x64\native\getfilesiginforedist.dll
- bin\runtimes\win-x86\native\tree-sitter-toml.dll
- bin\tree-sitter-html.dll
- bin\runtimes\linux-x64\native\libtree-sitter-julia.so
- bin\runtimes\win-x64\native\microsoft.management.infrastructure.native.unmanaged.dll
- bin\runtimes\win-x86\native\tree-sitter-tsq.dll
- bin\tree-sitter-java.dll
- bin\runtimes\linux-x64\native\libtree-sitter-ocaml.so
- bin\runtimes\win-x64\native\PowerShell.Core.Instrumentation.dll
- bin\runtimes\win-x86\native\tree-sitter-tsx.dll
- bin\tree-sitter-javascript.dll
- bin\runtimes\linux-x64\native\libtree-sitter-php.so
- bin\runtimes\win-x64\native\pwrshplugin.dll
- bin\runtimes\win-x86\native\tree-sitter-typescript.dll
- bin\tree-sitter-jsdoc.dll
- bin\runtimes\linux-x64\native\libtree-sitter-python.so
- bin\runtimes\win-x64\native\tree-sitter-agda.dll
- bin\runtimes\win-x86\native\tree-sitter-verilog.dll
- bin\tree-sitter-json.dll
- bin\runtimes\linux-x64\native\libtree-sitter-ql.so
- bin\runtimes\win-x64\native\tree-sitter-bash.dll
- bin\runtimes\win-x86\native\tree-sitter.dll
- bin\tree-sitter-julia.dll
- bin\runtimes\linux-x64\native\libtree-sitter-ruby.so
- bin\runtimes\win-x64\native\tree-sitter-c-sharp.dll
- schemas\agda.json
- bin\tree-sitter-ocaml.dll
- bin\runtimes\linux-x64\native\libtree-sitter-rust.so
- bin\runtimes\win-x64\native\tree-sitter-c.dll
- schemas\bash.json
- bin\tree-sitter-php.dll
- bin\runtimes\linux-x64\native\libtree-sitter-scala.so
- bin\runtimes\win-x64\native\tree-sitter-cpp.dll
- schemas\c.json
- bin\tree-sitter-python.dll
- bin\runtimes\linux-x64\native\libtree-sitter-tsx.so
- bin\runtimes\win-x64\native\tree-sitter-csharp.dll
- schemas\cpp.json
- bin\tree-sitter-ql.dll
- bin\runtimes\linux-x64\native\libtree-sitter-typescript.so
- bin\runtimes\win-x64\native\tree-sitter-css.dll
- schemas\csharp.json
- bin\tree-sitter-ruby.dll
- bin\runtimes\linux-x64\native\libtree-sitter-verilog.so
- bin\runtimes\win-x64\native\tree-sitter-embedded-template.dll
- schemas\css.json
- bin\tree-sitter-rust.dll
- bin\runtimes\linux-x64\native\libtree-sitter.so
- bin\runtimes\win-x64\native\tree-sitter-go.dll
- schemas\embedded-template.json
- bin\tree-sitter-scala.dll
- bin\runtimes\osx\native\libpsl-native.dylib
- bin\runtimes\win-x64\native\tree-sitter-haskell.dll
- schemas\go.json
- bin\tree-sitter-swift.dll
- bin\runtimes\unix\lib\net8.0\System.Management.Automation.dll
- bin\runtimes\win-x64\native\tree-sitter-html.dll
- schemas\haskell.json
- bin\tree-sitter-toml.dll
- bin\runtimes\unix\lib\netstandard1.6\Microsoft.Management.Infrastructure.dll
- bin\runtimes\win-x64\native\tree-sitter-java.dll
- schemas\html.json
- bin\tree-sitter-tsq.dll
- bin\runtimes\win\lib\net8.0\Microsoft.PowerShell.CoreCLR.Eventing.dll
- bin\runtimes\win-x64\native\tree-sitter-javascript.dll
- schemas\java.json
- bin\tree-sitter-tsx.dll
- bin\runtimes\win\lib\net8.0\Microsoft.Win32.Registry.AccessControl.dll
- bin\runtimes\win-x64\native\tree-sitter-jsdoc.dll
- schemas\javascript.json
- bin\tree-sitter-typescript.dll
- bin\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.dll
- bin\runtimes\win-x64\native\tree-sitter-json.dll
- schemas\jsdoc.json
- bin\tree-sitter-verilog.dll
- bin\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.Messages.dll
- bin\runtimes\win-x64\native\tree-sitter-julia.dll
- schemas\json.json
- bin\tree-sitter.dll
- bin\runtimes\win\lib\net8.0\System.DirectoryServices.dll
- bin\runtimes\win-x64\native\tree-sitter-ocaml.dll
- schemas\julia.json
- bin\TreeSitter.dll
- bin\runtimes\win\lib\net8.0\System.Management.Automation.dll
- bin\runtimes\win-x64\native\tree-sitter-php.dll
- schemas\ocaml.json
- bin\runtimes\linux-arm\native\libpsl-native.so
- bin\runtimes\win\lib\net8.0\System.Management.dll
- bin\runtimes\win-x64\native\tree-sitter-python.dll
- schemas\php.json
- bin\runtimes\linux-arm64\native\libpsl-native.so
- bin\runtimes\win\lib\net8.0\System.Security.Cryptography.Pkcs.dll
- bin\runtimes\win-x64\native\tree-sitter-ql.dll
- schemas\python.json
- bin\runtimes\linux-arm64\native\libtree-sitter-agda.so
- bin\runtimes\win\lib\net8.0\System.Windows.Extensions.dll
- bin\runtimes\win-x64\native\tree-sitter-ruby.dll
- schemas\ql.json
- bin\runtimes\linux-arm64\native\libtree-sitter-bash.so
- bin\runtimes\win-arm\lib\net5.0\getfilesiginforedistwrapper.dll
- bin\runtimes\win-x64\native\tree-sitter-rust.dll
- schemas\ruby.json
- bin\runtimes\linux-arm64\native\libtree-sitter-c-sharp.so
- bin\runtimes\win-arm\native\getfilesiginforedist.dll
- bin\runtimes\win-x64\native\tree-sitter-scala.dll
- schemas\rust.json
- bin\runtimes\linux-arm64\native\libtree-sitter-c.so
- bin\runtimes\win-arm\native\PowerShell.Core.Instrumentation.dll
- bin\runtimes\win-x64\native\tree-sitter-swift.dll
- schemas\scala.json
- bin\runtimes\linux-arm64\native\libtree-sitter-cpp.so
- bin\runtimes\win-arm\native\pwrshplugin.dll
- bin\runtimes\win-x64\native\tree-sitter-toml.dll
- schemas\swift.json
- bin\runtimes\linux-arm64\native\libtree-sitter-css.so
- bin\runtimes\win-arm64\lib\net5.0\getfilesiginforedistwrapper.dll
- bin\runtimes\win-x64\native\tree-sitter-tsq.dll
- schemas\toml.json
- bin\runtimes\linux-arm64\native\libtree-sitter-embedded-template.so
- bin\runtimes\win-arm64\lib\netstandard1.6\microsoft.management.infrastructure.dll
- bin\runtimes\win-x64\native\tree-sitter-tsx.dll
- schemas\tsq.json
- bin\runtimes\linux-arm64\native\libtree-sitter-go.so
- bin\runtimes\win-arm64\lib\netstandard1.6\microsoft.management.infrastructure.native.dll
- bin\runtimes\win-x64\native\tree-sitter-typescript.dll
- schemas\tsx.json
- bin\runtimes\linux-arm64\native\libtree-sitter-haskell.so
- bin\runtimes\win-arm64\native\getfilesiginforedist.dll
- bin\runtimes\win-x64\native\tree-sitter-verilog.dll
- schemas\typescript.json
- bin\runtimes\linux-arm64\native\libtree-sitter-html.so
- bin\runtimes\win-arm64\native\microsoft.management.infrastructure.native.unmanaged.dll
- bin\runtimes\win-x64\native\tree-sitter.dll
- schemas\verilog.json
- bin\runtimes\linux-arm64\native\libtree-sitter-java.so
- bin\runtimes\win-arm64\native\PowerShell.Core.Instrumentation.dll
- bin\runtimes\linux-arm64\native\libtree-sitter-javascript.so