<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Seva&apos;s Programming Adventures</title><description>A blog about graphics programming, low-level systems, and building things from scratch.</description><link>https://sevanetrebchenko.com/</link><item><title>What Sampling Outside a Texture Taught Me About SPIR-V</title><link>https://sevanetrebchenko.com/blog/what_sampling_outside_a_texture_taught_me_about_spirv/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/what_sampling_outside_a_texture_taught_me_about_spirv/</guid><description>Vulkan sampler border colors hide a surprising number of pitfalls. Here&apos;s how I used SPIR-V shader reflection to avoid them entirely.</description><pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 10: Keywords</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/10_keywords/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/10_keywords/</guid><description>One of the most important features of a language are its keywords. This post provides a brief overview of the libclang C API and explores two different methods for annotating language keywords.</description><pubDate>Sun, 13 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 9: Preprocessor</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/9_preprocessor/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/9_preprocessor/</guid><description>Annotating preprocessor directives requires hooking into Clang&apos;s preprocessing stage before the AST is generated. This post explains how to annotate common directives like `#define`, `#include`, and conditional blocks before they&apos;re stripped out of the AST.</description><pubDate>Sat, 12 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 8: Qualifiers</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/8_qualifiers/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/8_qualifiers/</guid><description>Similar to type names, qualifiers on functions and types (such as namespaces and other class names) are annotated as plain tokens in browser-based syntax highlighters. This post introduces a technique to traverse the qualifier chain of an AST node and addresses the challenges of adding annotations for each qualifier.</description><pubDate>Thu, 10 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 7: Types</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/7_types/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/7_types/</guid><description>Earlier posts in this series focused only on the declarations of types. References to types, such as in variable declarations, function parameters, and return statements, often appear as plain text in browser-based syntax highlighters. This post implements a dedicated visitor to annotate these type references, ensuring every type name is styled consistently.</description><pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 6: Templates</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/6_templates/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/6_templates/</guid><description>Templates are ubiquitous in modern C++ code and pose unique challenges for implementing accurate syntax highlighting. This post dives into the intricacies of visiting and annotating template functions, classes, and C++20 concepts.</description><pubDate>Sun, 29 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 5: Classes</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/5_classes/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/5_classes/</guid><description>Classes in C++ are comprised of many elements: constructors, destructors, class methods, member variables (both static and instance), and (optionally) nested types. This post shows how to implement visitors that traverse and annotate each component of a complex class definition.</description><pubDate>Tue, 24 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 4: Functions</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/4_functions/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/4_functions/</guid><description>C++ function come in many forms, each requiring a different approach for proper syntax highlighting. This post covers the implementation of visitors for annotating function declarations, calls, and several kinds of operators, including operator overloads and user-defined literals.</description><pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 3: Namespaces</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/3_namespaces/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/3_namespaces/</guid><description>This post builds on the previous post by adding new AST visitors for namespace declarations, aliases, and `using namespace` directives.</description><pubDate>Wed, 18 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 2: Enums</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/2_enums/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/2_enums/</guid><description>Enum definitions and constants can be hard to distinguish in complex C++ code, often going completely overlooked in browser syntax highlighting. This post introduces the basic structure of a visitor for the Clang AST and implements several visitors for annotating enums and their values.</description><pubDate>Sat, 14 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Better C++ Syntax Highlighting - Part 1: Introduction</title><link>https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/1_intro/</link><guid isPermaLink="true">https://sevanetrebchenko.com/blog/better_cpp_syntax_highlighting/1_intro/</guid><description>Ever wondered why modern syntax highlighting for browsers struggles with C++? This post introduces a new method for context-aware syntax highlighting for browsers by leveraging Clang&apos;s LibTooling API and AST to inject semantic hints into C++ code snippets.</description><pubDate>Thu, 12 Jun 2025 00:00:00 GMT</pubDate></item></channel></rss>