# AsmDude2: an assembly language server wrapped in a Visual Studio extension

> The successor to AsmDude moved its assembly knowledge into a Go language server and left a thin C# extension for Visual Studio 2022 to talk to it, gaining an editor-agnostic core at the cost of losing several features.

**HJLebbink/asm-dude** — Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window

- Repository: https://github.com/HJLebbink/asm-dude
- Stars: 4,175 · Forks: 103
- Language: C#
- License: MIT
- Published: 2026-10-06 · Updated: 2026-10-06 · Language: en
- Canonical page: https://hysenlabs.com/projects/hjlebbink-asm-dude

## Why the rewrite to a language server happened

AsmDude2 is described as a natural evolution from its predecessor, AsmDude. The original was a single all-encompassing plugin for Visual Studio 2015, 2017 and 2019 that handled assembly source code directly inside the extension.

Moving from a Visual Studio 2019 extension to one compatible with Visual Studio 2022 was not straightforward, and the README says so. AsmDude2 is built around the Language Server Protocol with a lightweight Visual Studio extension for VS2022 drawing its functionality from that server.

That choice has consequences the README is upfront about. Many features from the older AsmDude have yet to be ported, and some may never be. The lists of things for a next release and of known issues are not a roadmap of polish; they are an accounting of what the rewrite left behind. Restoring label analysis, restoring hyperlinks in mnemonics and restoring AsmSim are all listed as items still to come.

## Two languages and two directories

The repository tree is short: a `Go/` directory, a `VS/` directory, an `Images/` directory for the screenshots the README embeds, plus `LICENSE`, `CLAUDE.md`, `.gitattributes` and `.gitignore`. The primary language reported for the repository is C#, but a Go directory sitting next to a Visual Studio directory tells the real story.

The division of labour follows directly from the language server decision. The assembly knowledge, which is the difficult part and where an x86 and x64 instruction set database belongs, lives in the Go server. The Visual Studio extension in `VS/` is the thin client that connects to it and renders the results as syntax highlighting, completion lists and tooltips.

The README confirms where the server ends up on disk, which is a genuinely useful piece of information for anyone extending it. Hover descriptions live in an `AsmDudeData.xml` file alongside the installed plugin binaries, and finding that directory is described as a bit challenging, with a suggested path under the Visual Studio 17.0 extensions folder. The author explicitly invites pull requests with updates to that data file, which is the intended extension point for anyone who wants better instruction descriptions.

## What syntax highlighting actually covers

The architecture list is the most specific claim in the README and it is worth reading as a scope statement. Highlighting covers the instruction sets of x86 and x64, and additionally SSE, AVX, AVX2, Xeon-Phi which is Knights Corner, and AVX-512. On the directive side it covers most commonly used MASM directives along with a selection of NASM directives.

The phrase most commonly used is doing real work in that sentence. This is a MASM-oriented highlighter with partial NASM support, not a general assembly parser, and the feature request list confirms the gaps: Nasm macro syntax highlighting is on the list, as is support for the MASM keyword `comment` and for struct member fields.

Feature requests for newer instruction sets are also listed, including updating instructions for Sapphire Rapids and adding AMX support. That AMX item appears twice, once as a next-release item and once as a feature request, which suggests it has been asked for repeatedly.

## Hover text works, but the Markdown does not

Hovering a mnemonic can produce a pop-up description, and that description is editable because it comes from the data file rather than being compiled in. The formatting of the pop-up is the catch, and the README flags it directly: Markdown is not displayed.

The reason is upstream rather than the author's. The known issues section names the Visual Studio 2022 LSP client extension for Visual Studio 2022 and says it does not honour Markdown, with a link to a Stack Overflow question asking for votes, plus an invitation to help. That is a well-diagnosed problem with an owner outside the project.

The disassembly window is the other half of the editor story. Syntax highlighting works there, and QuickInfo tooltips are explicitly not available yet, so the disassembly view gives you colour and nothing else. Showing memory contents from the selected address, or of the stack frame and stack pointer, is listed as a feature request.

## The list of things still missing is the honest part

The feature request section is unusually specific, and a few entries are worth quoting because they describe real engineering problems rather than wishes.

Track flag influence would let you select an opcode that uses a flag as input and find the opcodes that produce it, so selecting `cmovc` or `setc` highlights everything including `btr`, `sal`, `sar`, `shl` and `shr`. Register rename assistance is described as highly desirable but very challenging, with a concrete reason: renaming the GPR `rdx` to `rbx` means finding every register that will need renaming across `rdx`, `edx`, `dx`, `dl` and `dh`, then checking the new names do not clash with existing `rbx`, `ebx`, `bx`, `bl` and `bh`. That one sentence explains why assembly refactoring tools are rare.

The remaining requests are more ordinary: label rename assistance, code formatting, Arm support, and comment and uncomment functionality in the disassembly window. One portability item on the list, making the language server handle files larger than ten thousand lines gracefully, is a fix that applies well beyond assembly.

## Release history and where to get it

Three releases tell the story. v1.9.6.14 in September 2019 added a configurable MaxLines setting to cope with very large files along with minor fixes. v2.0.0.4 in October 2023 was an almost complete rewrite to work with Visual Studio 2022. v2.0.1.0 in February 2024 was a bugfix for Windows 10 users, credited to a contributor who solved it.

So the language server architecture is roughly two and a half years old as of the last release, with one platform fix since. The repository's last recorded push is 2026-08-12, which suggests work is still happening in the tree even though releases have been infrequent.

Installation is through the Visual Studio Extensions gallery, and the README also links a direct installer for v2.0.0.4. Note the mismatch: that direct download points at v2.0.0.4 while the newer v2.0.1.0 release exists, so the gallery entry is the one to prefer. To run from source you need the Visual Studio 2022 SDK, then pressing F5 launches a new instance of Visual Studio under the experimental environment. The README's own aside about whether this is a honeypot, aimed at the C# developers reading it, is a fair summary of the audience.

## Conclusion

AsmDude2 is an instructive rewrite rather than a finished product. The architecture decision was right: putting the assembly knowledge in a language server written in Go means the same completions and hover text could serve any editor willing to speak LSP, and the repository's split between a `Go/` server and a `VS/` client makes that boundary explicit. What the rewrite cost is stated plainly on the page, with label analysis, mnemonic hyperlinks and AsmSim all listed as things to restore and possibly never to restore. The extension is in the Visual Studio Marketplace, the last recorded release was v2.0.1.0 in February 2024 as a Windows 10 fix, and the last push was 2026-08-12. Install it from the gallery for syntax highlighting, completions and signature help, and treat the hover pop-ups as plain text until the Markdown rendering issue in the VS LSP client is fixed upstream.

## FAQ

### What does AsmDude2 do in Visual Studio?

It provides assembly syntax highlighting and code completion for MASM and NASM source files, plus signature help and hover descriptions for mnemonics, and it adds syntax highlighting to the disassembly window. Highlighting covers x86 and x64 as well as SSE, AVX, AVX2, Xeon-Phi and AVX-512 instructions.

### How is AsmDude2 different from the original AsmDude?

The original AsmDude was a single Visual Studio plugin for VS2015, 2017 and 2019. AsmDude2 moved the assembly handling into a language server written in Go and left a lightweight Visual Studio 2022 extension as the client. Many features from the older version have not been ported, and the README lists label analysis, mnemonic hyperlinks and AsmSim as things that may never return.

### Can I edit the hover descriptions in AsmDude2?

Yes. The descriptions live in an `AsmDudeData.xml` file alongside the installed plugin binaries, and the README invites updates to it. Finding the directory is described as a bit challenging, with a suggested path under the Visual Studio 17.0 extensions folder for the AsmDude2 server.

### Why does the AsmDude2 hover popup look plain?

Because Markdown is not rendered. The known issues section blames the Visual Studio 2022 LSP client extension, which does not honour Markdown, and links a Stack Overflow question asking for votes to get it fixed upstream. The disassembly window also has no QuickInfo tooltips yet.

### How do I install AsmDude2?

It is listed in the Visual Studio Extensions gallery. The README also links a direct installer, though that one points at v2.0.0.4 while a later v2.0.1.0 release exists, so the gallery entry is the better source. To build from source you need the Visual Studio 2022 SDK and press F5 to launch an experimental Visual Studio instance.

## Sources

- [HJLebbink/asm-dude on GitHub](https://github.com/HJLebbink/asm-dude)
- [Issues](https://github.com/HJLebbink/asm-dude/issues)
- [License: MIT](https://github.com/HJLebbink/asm-dude/blob/master/LICENSE)
- [README](https://github.com/HJLebbink/asm-dude/blob/master/README.md)
- [Releases](https://github.com/HJLebbink/asm-dude/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/hjlebbink-asm-dude
