Chromafi
🦅 cli syntax highlighting: any function - any object - 176 languages
Support
Support the development of Chromafi by becoming a patreon.
Features

- JavaScript objects that are logged to the console... still look like JavaScript objects.
- Chromafi highlights JavaScript functions.
- Adjust indentation for tabbed code with Chromafi.
- User defined color palettes.
- Line numbers optional.
- Padding adjustment for use with background colors or tight spaces.
- Chromafi also highlights strings of code in 176 languages.
Usage
Chromafi a JavaScript Object
const chromafi = const obj = foo: 'bar' baz: 1337 qux: true zxc: null { return b - a } const chromatastic = console
Chromafi a JavaScript Function
const chromafi = { return a + b} const chromantic = console
Chromafi a String of Code
const chromafi = const codeString = `// Creates a Class based on Typeconst create = (kind, parent) => { // Create the Class based on the Type's // Constructor or use an Anon. Func const protoclass = kind.ctor || function () {} // Inherit from a parent object if (parent) { protoclass.prototype = new Parent() } // Merge prototype from Class's Type if (kind.proto) { merge.call(protoclass.prototype, kind.proto) } return protoclass}` const chromadactic = console
Options
const chromafi = const chalk = const obj = foobar: 1337 const options = lineNumberPad: 0 codePad: 0 indent: 2 lineNumbers: true colors: base: chalkbgBlackwhitebold line_numbers: chalkbgCyanblack const chromafanatic = console
Light Color Scheme
Chromafi uses Chalk to write ANSI color codes to the terminal.
const chromafi = const chromafi = const chalk = const obj = foo: 'bar' baz: 1337 qux: true zxc: null { return b - a } const chromafantastic = console
Highlighting Other Languages
Chromafi uses Highlight.js to syntax highlight to your code. This means Chromafi can highlight any language that Highlight.js
can.
Let's Chromafi some assembler syntax:
const chromafi = const armAssemblyCode = `.text .global connectconnect: mov r3, #2 ; s->sin_family = AF_INET strh r3, [sp] ldr r3, =server_port ; s->sin_port = server_port ldr r3, [r3] strh r3, [sp, #2] ldr r3, =server_addr ; s->sin_addr = server_addr ldr r3, [r3] str r3, [sp, #4] mov r3, #0 ; bzero(&s->sin_zero) str r3, [sp, #8] str r3, [sp, #12] mov r1, sp ; const struct sockaddr *addr = sp ldr r7, =connect_call ldr r7, [r7] swi #0 add sp, sp, #16 pop {r0} ; pop sockfd pop {r7} pop {fp, ip, lr} mov sp, ip bx lr .datasocket_call: .long 281connect_call: .long 283 /* all addresses are network byte-order (big-endian) */server_addr: .long 0x0100007f ; localhostserver_port: .hword 0x0b1a` const chromalicious = console
Supported Languages
1c, abnf, accesslog, actionscript, ada, apache, applescript, arduino, armasm, asciidoc, aspectj, autohotkey, autoit, avrasm, awk, axapta, bash, basic, bnf, brainfuck, cal, capnproto, ceylon, clean, clojure-repl, clojure, cmake, coffeescript, coq, cos, cpp, crmsh, crystal, cs, csp, css, d, dart, delphi, diff, django, dns, dockerfile, dos, dsconfig, dts, dust, ebnf, elixir, elm, erb, erlang-repl, erlang, excel, fix, flix, fortran, fsharp, gams, gauss, gcode, gherkin, glsl, go, golo, gradle, groovy, haml, handlebars, haskell, haxe, hsp, htmlbars, http, hy, inform7, ini, irpf90, java, javascript, jboss-cli, json, julia-repl, julia, kotlin, lasso, ldif, leaf, less, lisp, livecodeserver, livescript, llvm, lsl, lua, makefile, markdown, mathematica, matlab, maxima, mel, mercury, mipsasm, mizar, mojolicious, monkey, moonscript, n1ql, nginx, nimrod, nix, nsis, objectivec, ocaml, openscad, oxygene, parser3, perl, pf, php, pony, powershell, processing, profile, prolog, protobuf, puppet, purebasic, python, q, qml, r, rib, roboconf, routeros, rsl, ruby, ruleslanguage, rust, scala, scheme, scilab, scss, shell, smali, smalltalk, sml, sqf, sql, stan, stata, step21, stylus, subunit, swift, taggerscript, tap, tcl, tex, thrift, tp, twig, typescript, vala, vbnet, vbscript-html, vbscript, verilog, vhdl, vim, x86asm, xl, xml, xquery, yaml, zephir
Credits
Thank you to the following Noun Project artists for the vectors used in the lead graphic.