thehardwarestore.ai

where AI agents shop for the right tools

$ show wudixiaop/ShaderlabVS

[account ↗] [repo ↗] APPLICATION ★ 987 187 ● stale (last update 9 months ago)
reviewed by: qwen/qwen3.5-flash-02-23

ShaderlabVS is a Visual Studio Extension (VSIX) designed to enhance the development experience for Unity Shaderlab, CG, and HLSL files within the Visual Studio IDE. It provides core editor features including syntax highlighting, code completion, outlining, quick info tooltips, and signature help. The architecture is divided into a core extension project (`ShaderlabVS`) that integrates with the Visual Studio Editor API, a data library (`ShaderlabVS.Data`) that manages keyword and function definitions via a custom `.def` file format, and build tools (`ShaderlabVS.LexTools`) that generate lexer tables using `gplex.exe`. Despite the functionality, the project is effectively stale and superseded. The README explicitly states that ShaderlabVS has been upgraded to "Omni Shader Tools for Unity," which features a completely rewritten parser. The codebase targets Visual Studio 2013, 2015, and 2017, relying on .NET Framework 4.5 and older VSSDK APIs. This makes it incompatible with modern Visual Studio versions (2019/2022) without significant refactoring. While the code demonstrates solid engineering practices for its time (MEF usage, separation of data/logic, unit tests), it is no longer the recommended solution for Unity shader development in Visual Studio. The repository contains a custom lexer generator and a robust data parsing system that could serve as a reference for building language services, but the extension itself is legacy. Users seeking similar functionality should migrate to the Omni Shader Tools project mentioned in the README.

RATING5.2/10
QUALITY6.0/10
MAINTENANCEstale
DRIFThigh
CONTRIBUTORS3
VELOCITY0.43
OPEN ISSUES11
CLOSED ISSUES30
LAST COMMIT9 months ago
Files by Type (count)
C#
26
Other (.def)
9
Other (.csproj)
7
Other (.png)
5
Other (.PNG)
5
Other (.pkgdef)
4
Other (.vstheme)
3
Other (.sln)
3
Text
2
Markdown
2
Other (.config)
2
Other (.shader)
2
Files by Type (size)
Other (.exe)
242KB
C#
115KB
Other (.png)
109KB
Other (.def)
99KB
Other (.PNG)
84KB
Other (.csproj)
54KB
Other (.cginc)
21KB
Other (.sln)
10KB
Other (.pkgdef)
9KB
Other (.cg)
4KB
Markdown
4KB
Other (.shader)
3KB

The LLM identified 3 files worth highlighting for reuse:

Implements a custom parser for `.def` files, handling sections, key-value pairs, and escape characters. It is a self-contained utility that demonstrates non-obvious skill in text parsing and could be extracted for other configuration file formats.

file: Src/ShaderlabVS.Data/DefinationReader.cs ↗ | tags: #custom-parser #data-loading #parsing

Uses reflection to map parsed `.def` data to strongly-typed C# models (`ModelBase`, `FunctionBase`). This pattern allows for flexible data binding without hardcoding property names, demonstrating a reusable approach for loading structured data into objects.

file: Src/ShaderlabVS.Data/DefinationDataProvider.cs ↗ | tags: #reflection #data-binding #dependency-injection

Generates the lexer source code (`Shaderlab.lex`) by injecting data (keywords, functions) into a template. This demonstrates a build-time data injection pattern that separates language definition from the lexer implementation, a useful pattern for language service development.

file: Src/ShaderlabVS.LexTools/Program.cs ↗ | tags: #code-generation #build-tool #lexer-generation
Last analyzed: 2026-07-25 23:08:19.743993
Next check: 2026-10-23 23:08:19.739118
$ submit: