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

Smali

by QuinnWilton ALL

A syntax highlighter for the Dalvik bytecode language, Smali

Details

  • 2022.01.12.00.24.14
  • github.​com
  • github.​com
  • 3 years ago
  • 2 hours ago
  • 12 years ago

Installs

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

Readme

Source
raw.​githubusercontent.​com

Smali Sublime Syntax

Context-aware syntax highlighting for Sublime Text 2 / 3.

Installation

If you have Package Manager, install Smali.

Without Package Manager:

  • Navigate to Sublime's packages directory
    • Command + Shift + P, “Preferences: Browse Packages”
  • Create a directory named Smali
  • Copy smali.tmLanguage to Smali

Features

  • Line-level syntax validation
    • Incorrectly formatted instructions are highlighted red
    • Register and literal ranges are validated
  • Objectively better than your current Smali highlighter
  • Includes the color purple!

Development

Syntax defintions are edited in JSON here: smali.JSON-tmLanguage.

Sublime wants the syntax definitions in a property list or .tmLanguage file. To convert the JSON to a property list:

  1. Open smali.JSON-tmLanguage
  2. From Sublime's Command Pallet, select “Build With: Convert to …-Property List”

The udpated file can be quickly installed to Sublime 3 with:

cp smali.tmLanguage "$HOME/Library/Application Support/Sublime Text 3/Packages"

Afterwards, you'll need to restart. Sublime doesn't have a native way of reloading packages. There's probably a hard way of hacking this into working without restarting, but I don't know it.