bergercookie / asm-lsp

Language server for NASM/GAS/GO Assembly
https://crates.io/crates/asm-lsp
BSD 2-Clause "Simplified" License
272 stars 18 forks source link

feat: MASM and NASM directive support #124

Closed WillLillis closed 3 months ago

WillLillis commented 3 months ago

Adds MASM and NASM support.

Previously, we only supported GAS directives, which are all prefixed by a period. MASM and NASM directives are a bit of a mix. To handle this, I had to overhaul some of the completion logic, as well as the testing logic. Tests now take in a configuration specific to the what they're testing, rather than just turning everything on and hoping for the best.

While testing these new features, I ran into #112 again. I'll have a follow up PR open (hopefully today?) (#125) with a band aid solution so the server won't crash. I'm planning on getting a minimal repro to report to tree-sitter (assuming I don't have any subtle issue causing this on our end) sometime soon, but that's a lower priority for now.

I think we should be ok to publish 0.8.0 after this is merged. Since this adds the masm and nasm options as configuration options, adding the corresponding instruction info won't be a breaking change so we can add it as part of 0.8.1.

Partially addresses #72