BartmanAbyss / vscode-amiga-debug

One-stop Visual Studio Code Extension to compile, debug and profile Amiga C/C++ programs compiled by the bundled gcc 12.2 with the bundled WinUAE/FS-UAE.
GNU General Public License v3.0
312 stars 39 forks source link

Vasm support #112

Closed davidcanadas closed 2 years ago

davidcanadas commented 2 years ago

I've been working on a fork for a few weeks, which have been used to release a production at Evoke 2022. However, everything was pretty dirty and I've decided to re-do it from scratch in order to properly pull-request.

This pull requests consists on some updates to have VASM as a secondary assembler, for situations in which you can't get rid of it (e.g., when using AmigaKlang by Alcatraz or LSP by Oxygene).

New commands: "amiga.fileExtensions.asm-gas" retrieves the file extension assigned to GAS (by default, .s). "amiga.fileExtensions.asm-vasm" retrieves the file extension assigned to VASM (by default, .asm).

These values can be changed using the new configuration setting "amiga.assembly.fileExtensions.asm". ATM it is not recommended as setting VASM as the assembler associated to .s files would cause a.mingw.s to be assembled, which does not work. However, other pull requests I will post in the coming days/weeks will fix this by reassigning output files to folders, among other stuff.

Assembling while editing feature has been adapted to work with GAS and VASM depending on the file extension.

Although DWARF 3 is enabled for VASM, debugging does not work in most cases.

I am pretty sorry but the package.json update includes some naming changes to avoid collision with your package, even though they were done in the main branch they have been included in the pull request and I don't know how to get rid of them.

Feel free to contact me for any question, comment, suggestion or change request :)

davidcanadas commented 2 years ago

I forgot to add VASM to the README.md file, which I understand is desirable.

davidcanadas commented 2 years ago

Closing, I want to re-do it to make sure only the relevant changes are sent.