ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

SPARC Assembly

Provides SPARC assembly syntax highlighting and snippets for Sublime Text 2/3.

Details

  • 2014.01.08.16.32.29
  • github.​com
  • github.​com
  • 6 years ago
  • 3 hours ago
  • 7 years ago

Installs

  • Total 3K
  • Win 1K
  • Mac 695
  • Linux 602
Apr 2 Apr 1 Mar 31 Mar 30 Mar 29 Mar 28 Mar 27 Mar 26 Mar 25 Mar 24 Mar 23 Mar 22 Mar 21 Mar 20 Mar 19 Mar 18 Mar 17 Mar 16 Mar 15 Mar 14 Mar 13 Mar 12 Mar 11 Mar 10 Mar 9 Mar 8 Mar 7 Mar 6 Mar 5 Mar 4 Mar 3 Mar 2 Mar 1 Feb 29 Feb 28 Feb 27 Feb 26 Feb 25 Feb 24 Feb 23 Feb 22 Feb 21 Feb 20 Feb 19 Feb 18 Feb 17
Windows 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 2
Mac 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
Linux 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

SPARC Syntax for Sublime Text 2/3

This package provides SPARC assembly language syntax highlighting, as well as a few code snippets.

Although SPARC is fairly uncommon in practice, it is still used as a teaching language in some universities. Writing SPARC without syntax highlighting is a horror that no mortal need endure.

Hilariously, my SPARC class was the final SPARC course my university offered before switching to x86. I hope that other students find this more useful than my classmates will.

Installation

Getting the files

The easiest way to install the SPARC Assembly package is via Will Bond's Package Control plugin. Install it, restart Sublime Text, and type:

=> Ctrl+Shift+P >> Package Control: Install Package >> SPARC Assembly => Enter

Then restart Sublime Text again, and you're done! Revel in the awesome power of syntax highlighting!

If you'd rather install via Git, navigate to your Sublime Text 2 Packages directory in your terminal…

  • OS X: ~/Library/Application\ Support/Sublime\ Text\ 2/Packages
  • Windows: %APPDATA%/Sublime Text 2/Packages/
  • Linux: ~/.config/sublime-text-2/Packages/

…and paste (try middle click if you don't know the shortcut) the command:

git clone git@github.com:ProtractorNinja/SPARC-sublime.git SPARC

To install manually, download this archive into a folder called SPARC in your Sublime Text 2 Packages directory (Preferences -> Browse Packages...).

Make sure to restart Sublime Text 2 when you're finished.

Setting SPARC as the default language

Other languages include the SPARC file extensions, .s and .m, in their syntax definitions (R and Objective-C, respectively). To combat this, I've included a sparc.sublime-settings file which should change the auto-syntax preference to SPARC. If I have failed, then you may make the change manually by opening an .s or .m file and clicking View -> Syntax -> Open all with current extension as... -> SPARC.

Syntax Notes

The syntax highlighting should be mostly straightforward, but I'd like to point out an important distinction between certain opcodes: those opcodes that involve a delay slot—branching commands, jumping, and subroutine calls—are colored differently than those that do not. The complete list is located in sparc.JSON-tmLanguage, under constant.other.sparc. nop will also have its own color, as I decided that nop should stand out when it is used.

Regular machine registers (%r0-31, %i0-7, %o0-7, %l0-7, %g0-7) all have their own colorations that differ from the strange and mysterious %lo, %hi, %fp, and %sp. Everything else following a % symbol (e.g. macro- defined registers such as %my_register from define(my_register, l0)) has a distinctive color. Monokai does not color variables.

Snippets

The SPARC package provides 7 snippets for super simple insertion of certain code structures. They are listed below.

main creates a basic empty program template, with sections for code and extra data.

subr inserts a basic non-leaf subroutine that has its own register window.

while you wait, while expands into a simple while loop structure!

for your convenience, for is like while, but with an iterator register already included.

arr provides access (either for a ld or a st) to an element in a single dimensional array, as long as the address of the beginning of the array is already known.

arr2d might seem complicated, but it's just the same as arr except that it works with a two-dimensional array instead.

if you want a conditional block, use if. Feel free to remove the “else” section (if_not_condition: ...) if you don't need an else.

Screenshots

Every shot features the beautiful and amazing (and free!) Adobe Source Code Pro Light. It works wonders on zoomed-in displays.

Using Timmfin's Monokai variation: Monokai Timmfin
Using Carl Calderon's Calydon Light: Calydon Light
Using Dayle Rees' Github scheme: Dayle Rees' Github