LazowskiAnton · Extensions

LensSmith

Errors, warnings and messages right at the end of the line they belong to, and the line tinted by the problem. No more hovering over squiggles or looking down at the Error List.

Free · Visual Studio 2022 and 2026 · 14 UI languages · no telemetry

Why LensSmith

The same code with plain squiggles and with LensSmith

Where you are looking

The message is next to the code it is about. You read what is wrong while you write, without moving the mouse or your eyes.

Quiet while you type

Lines you are editing stay calm until you pause, so half-typed code does not flash errors at you.

Every language with squiggles

C#, Visual Basic, F#, C++, TypeScript — and XAML, where a typo used to show up only at build or run time.

Free, without strings attached

No subscription, no trial, no nag screens, no telemetry. Works on Visual Studio 2022 and 2026, x64 and ARM64.

Features

Where it works

EditorWhere the messages come from
C#, Visual Basic, F#compiler and analyzer diagnostics (CS…, BC…, IDE…, CA…)
C++IntelliSense errors and warnings
TypeScript, JavaScriptlanguage service diagnostics (TS…)
XAMLthe Error List (XLS…, XDG…): the XAML editor shows its squiggles without text
Other editorsany editor where Visual Studio draws squiggles
IDL, CMake, MSBuild and similarerrors of the last build, from the Error List

In the code

Each line shows its most serious problem. Messages (suggestions such as IDE0017) are blue and quieter than errors and warnings, so they do not drown them out.

C# code with an error, a warning, a message and +1 at the end of lines

XAML

A wrong property value, an unknown type, a typo in a binding — the XAML editor underlines them, but the text used to hide in the Error List. LensSmith writes it next to the line, so a mistake is seen right away, not at build or run time.

XAML with an invalid value and an unknown type, each with its message at the end of the line

Line tint

Three styles and three strengths, because dark themes are all different: a gradient (default), a solid tint, or only a narrow bar at the left edge that leaves the code background untouched. Each level can be tinted or not.

Gradient, solid and bar tint styles, and the light theme

Settings

Tools → Options → SmithWorks → LensSmith. Every option has a description, and the preview at the top shows the result right away.

OptionDefault
Show Diagnostics at the End of Lineson
Show: Errors, Warnings, Messagesall on
Build Errors in Files Without Live Checkson
ColorsNormal
ContentCode and text
Maximum Length120
Pause After Typing500 ms
Hide the Message on the Line with the Caretoff
Hidden Codes—
Tint Lines With: Errors, Warnings, Messagesall on
StyleGradient
StrengthNormal

Settings are stored in %LocalAppData%\LensSmith.

LensSmith options page
The options page with its live preview.

FAQ

Does it replace the Error List?

No. LensSmith only shows what Visual Studio already reports; the squiggles, the Error List, quick actions and builds work as before.

Why does a line have a tint but no text?

Its squiggle carries no text, and the Error List has no entry for that line either — for example when the Error List shows only the current document or hides warnings. The text then appears when the Error List has it.

Why does a message appear a moment after I stop typing?

That is the pause after typing: edited lines stay quiet for 500 ms so half-typed code does not flash errors. It can be shorter or turned off in the settings.

There are too many messages. What can I do?

Turn off Messages in “Show”, hide single codes such as IDE0008 in “Hidden codes”, or switch the content to “Code only”.

Does it slow down large files?

No. Only visible lines are read and drawn, and nothing is drawn for lines without diagnostics.

Does LensSmith send any data?

No. There is no telemetry and no network access.

Where do I report a problem or suggest a feature?

Open an issue in the Feedback repository on GitHub — there are forms for bugs and ideas (please change private names). You can also use the Q&A tab on the Marketplace.

Changelog

1.0.2

1.0.1

1.0.0