Mipsy editor features
To install for vscode, search for
How to use (vscode)
To install the extension:
Out of the box, installing
Code completion: vscode will suggest instructions, label names, constant names, directives, registers and syscall numbers. Depending on your vscode configuration this will be either automatic or triggered by some keybinding (typically ctrl+space). To accept code completion suggets, you can (typically) press tab.
Diagonstics: vscode will report code which causes either a parsing or compilation in mipsy. Problematic code will be underlined, and error messages can be shown on hover, and in the problems view.
Go to definition: Control click on a label or constant usage to jump to the definition of the label/constant.
Document symbols: You can use features like
The extension features a debugger which allows you to run and debug your MIPS programs. To activate it, select the file you want to run, and press the
If it's not already automatically opened, select the
The debug toolbar (typically near the top of the window) allows you to control the debugger.
The debug console displays messages related to the running program, including syscalls. To view just the output of the program, use the MIPS I/O view. When your program executes an input syscall, you'll be prompted to provide the input in the debug console.
To set a breakpoint, select the breakpoint button immediately to the left of the line number of the relevant line. Valid breakpoints will appear as filled red circles, and invalid breakpoints will appear as unfilled circles. You can also manage breakpoints (including disabling/enabling all) in the breakpoints view, although currently inserting new breakpoints cannot be done in the breakpoints view (this will hopefully be supported soon).
You can view the contents of registers in the
You can view a hexdump of the data and stack segments by pressing the
If you have a program which requires a large amount of user input, you can right click an editor (while you're debugging a MIPS program) and select
You can right click in an editor of a program in the debugger and select
The open/read/write/close file syscalls and read/print float syscalls have no support.
Currently multiple file programs are only supported in the LSP (if I get time I'll also add support in the debugger). If you have a file
The inclusion of
If you're using a build of code without the proprietary marketplace, you can either grab a release from the Github releases (it might be out of date, let me know if that's the case), download the VSIX for the extension page, or build the extension yourself.
I've got the language server working somewhat smoothly in neovim. If you're interested in more details let me know and I'll write up some more specific instructions. The language server should work for any editor which supports the language server protocol. The debugger uses the debug adapter protocol, which means that the basic features of the debugger should theoretically work with other editors, but I haven't tested that yet.
Language server diagonstics / decompile button / debugger all work by running mipsy compiled to WASM using
To build, roughly: