Frequently Asked Questions

What languages are supported?

SnippetsLab supports the following languages:

ABAP, ABNF, ActionScript, ActionScript 3, Ada, ADL, Agda, Aheui, Alloy, AmbientTalk, AMPL, Angular2, ANTLR, ApacheConf, APL, AppleScript, Arduino, AspectJ, Assembler (ca65), Asymptote, Augeas, AutoHotkey, AutoIt, Awk, Base Makefile, Bash, Bash Session, Batchfile, BBC Basic, BBCode, BC, Befunge, BibTeX, BlitzBasic, BlitzMax, BNF, Boa, Boo, Boogie, Brainfuck, Bro, BST, BUGS, C, c-objdump, C#, C# aspx, C++, cADL, CAmkES, Cap'n Proto, CapDL, CBM BASIC V2, Ceylon, CFEngine3, ChaiScript, Chapel, Charmci, Cheetah, Cirru, Clay, Clean, Clojure, ClojureScript, CMake, COBOL, COBOL Free, CoffeeScript, ColdFusion, ColdFusion CFC, ColdFusion HTML, Common Lisp, Component Pascal, Coq, cpp-objdump, CPSA, Crmsh, Croc, Cryptol, Crystal, Csound Document, Csound Orchestra, Csound Score, CSS, CSS+Django/Jinja, CSS+Genshi Text, CSS+Lasso, CSS+Mako, CSS+MozPreproc, CSS+Myghty, CSS+PHP, CSS+Ruby, CSS+Smarty, CUDA, Cypher, Cython, D, d-objdump, Darcs Patch, Dart, DASM16, Debian Control file, Debian Sourcelist, Delphi (Pascal), dg, Diff, Django/Jinja, Docker, DTD, Duel, Dylan, Dylan Session, DylanLID, Earl Grey, Easytrieve, EBNF, eC, ECL, Eiffel, Elixir, Elixir Console Session, Elm, EmacsLisp, Embedded Ragel, ERB, Erlang, Erlang Shell Session, Evoque, Ezhil, F#, Factor, Fancy, Fantom, Felix, Fennel, Fish, Flatline, FloScript, Forth, Fortran, FortranFixed, FoxPro, Freefem, GAP, GAS, Genshi, Genshi Text, Gettext Catalog, Gherkin, GLSL, Gnuplot, Go, Golo, GoodData-CL, Gosu, Gosu Template, Groff, Groovy, Haml, Handlebars, Haskell, Haxe, Hexdump, HLSL, HSAIL, Hspec, HTML, HTML + Angular2, HTML+Cheetah, HTML+Django/Jinja, HTML+Evoque, HTML+Genshi, HTML+Handlebars, HTML+Lasso, HTML+Mako, HTML+Myghty, HTML+PHP, HTML+Smarty, HTML+Twig, HTML+Velocity, HTTP, Hxml, Hy, Hybris, Icon, IDL, Idris, Igor, Inform 6, Inform 6 Template, Inform 7, INI, Io, Ioke, IRC logs, Isabelle, J, JAGS, Jasmin, Java, Java Server Page, JavaScript, JavaScript+Cheetah, JavaScript+Django/Jinja, JavaScript+Genshi Text, JavaScript+Lasso, JavaScript+Mako, JavaScript+MozPreproc, JavaScript+Myghty, JavaScript+PHP, JavaScript+Ruby, JavaScript+Smarty, JCL, JSGF, JSON, JSON-LD, JSONBareObject, Julia, Julia Console, Juttle, Kal, Kconfig, Koka, Kotlin, Lasso, Lean, LessCss, Lighttpd Configuration, Limbo, Liquid, Literate Agda, Literate Cryptol, Literate Haskell, Literate Idris, LiveScript, LLVM, Logos, Logtalk, LSL, Lua, Makefile, Mako, MAQL, Markdown, Mask, Mason, Mathematica, Matlab, Matlab Session, MiniD, Modelica, Modula-2, MoinMoin/Trac Wiki Markup, Monkey, Monte, MOOCode, MoonScript, Moz Hash Preproc, Moz Percent Preproc, MQL, Mscgen, MSDOS Session, MuPAD, MXML, Myghty, MySQL, NASM, NCL, Nemerle, nesC, NewLisp, Newspeak, Nginx Configuration, Nimrod, Nit, Nix, NSIS, NumPy, NuSMV, objdump, objdump-nasm, Objective-C, Objective-C++, Objective-J, OCaml, Octave, ODIN, Ooc, Opa, OpenEdge ABL, PacmanConf, Pan, ParaSail, Pawn, Perl, Perl6, PHP, Pig, Pike, PkgConfig, PL/pgSQL, Plain Text, Pony, PostgreSQL Console (psql), PostgreSQL SQL dialect, PostScript, POVRay, PowerShell, PowerShell Session, Praat, Prolog, Properties, Protocol Buffer, Pug, Puppet, PyPy Log, Python, Python 3, Python 3.0 Traceback, Python Console Session, Python Traceback, QBasic, QML, QVTO, R (GNU S), R Console, Racket, Ragel, Raw token data, Rd, REBOL, Red, Redcode, RegEdit, Relax-NG Compact, ResourceBundle, reStructuredText, Rexx, RHTML, Roboconf Graph, Roboconf Instances, RobotFramework, RPMSpec, RQL, RSL, Ruby, Ruby Shell Session, Rust, SARL, SAS, Sass, Scala, Scalate Server Page, Scaml, Scheme, Scilab, SCSS, Shen, Silver, Slash, Slim, Slurm, Smali, Smalltalk, SmartGameFormat, Smarty, Snobol, Snowball, SourcePawn, SPARQL, SQL, SQLite Console, SquidConf, Stan, Standard ML, Stata, SuperCollider, Swift, SWIG, SystemVerilog, TADS 3, TAP, TASM, Tcl, Tcsh, Tcsh Session, Tea, Tera Term macro, Termcap, Terminfo, Terraform, TeX, Thrift, Todotxt, TOML, TrafficScript, Transact-SQL, Treetop, Turtle, Twig, TypeScript, TypoScript, TypoScriptCssData, TypoScriptHtmlData, ucode, Unicon, UrbiScript, Vala,, VB.Net aspx, VBScript, VCL, VCLSnippets, VCTreeStatus, Velocity, Verilog, VGL, VHDL, VimL, WDiff, Whiley, X10, XML, XML+Cheetah, XML+Django/Jinja, XML+Evoque, XML+Lasso, XML+Mako, XML+Myghty, XML+PHP, XML+Ruby, XML+Smarty, XML+Velocity, Xojo, Xorg, XQuery, XSLT, Xtend, xtlang, XUL+MozPreproc, YAML, YAML+Jinja, and Zephir.

What is a Fragment? How to add new Fragments?

You can include multiple different “part” to a single snippet, which is known as a Fragment. Different Fragments under the same snippet can have different notes and languages.

Fragments can be useful when a snippet logically consists of multiple parts, especially when they have different languages. For example:

  • A class header and its implementation
  • Some HTML code and its JavaScript/CSS counterparts
  • Different solutions to one problem

To learn more about Fragments, please see Snippets and Fragments.

How to use Dropbox / Google Drive or other third party sync services?

Please see Third-party Sync for detailed instructions.

Do I have to choose the language every time I create a new snippet?

No. You can set default languages on a per-folder basis. To learn more about it, please see Default Language.

What is a “Folder Shortcut” and how do I add it?

You can add your most frequently used folders and Smart Groups to the “Favorites” section of the sidebar as a shortcut. To learn more about it, please refer to Shortcuts.

How to search full content of the snippets?

From SnippetsLab 1.2.3, the app will search both the title and contents of your snippets by default. If you wish to change this behaviour, click the magnifying glass button in the left of the search bar, and choose one option from Only Search Title and Search Title and Content.

How to hide the app from menu bar?

Choose SnippetsLab > Preferences… from the menu bar, and click Assistant. Make sure both the Enable SnippetsLab Assistant and Hide dock icon options are selected.

If the dock icon is hidden, the standard menubar for SnippetsLab is also disabled. You can instead access common features like Import/Export or Preferences from the btn-action button in the bottom of the SnippetsLab Assistant.


You cannot hide the dock icon when SnippetsLab Assistant is disabled, because you won’t be able to activate the app in that case.

How to use multiple languages in a single snippet?

For some popular language combinations (especially for languages that are used in web development), SnippetsLab provides special syntax modes, such as “HTML+PHP” and “JavaScript+PHP.” If non of these special syntax modes satisfy your need, you may choose one of the following options:

  • Use fragments. You can include multiple different “part” to a single snippet, which is known as a Fragment. Different Fragments under the same snippet can have different notes and languages. To learn more about Fragments, please see Snippets and Fragments.
  • Use markdown. From version 1.5, SnippetsLab allows user to create and preview markdown snippets. You can add unlimited number of code blocks in your markdown snippet with all different languages. Every language that’s supported in the original app is also supported in the markdown preview mode. For details, please see Markdown Snippets.

I cannot enable iCloud sync. Why?

In order to use iCloud sync for SnippetsLab, you need to make sure that all of the following conditions are met:

  • You’ve turned on iCloud service and signed in with a valid Apple ID in OS X System Preferences
  • iCloud Drive is enabled
  • You havn’t disabled SnippetsLab from accessing the iCloud services (Open Apple Menu > System Preferences… > iCloud, and click on the Options… button next to “iCloud Drive.” Make sure that the checkbox next to SnippetsLab is selected.)
  • Your Mac have access to the Internet

Please refer to Enable iCloud for SnippetsLab section of this manual for more detailed instructions.

Will there be an iOS version of SnippetsLab?

I have some preliminary thought of bringing SnippetsLab to the iOS, but that’s just a very early idea and I’ve not yet decided the design details of the iOS version. I’m still working on the OS X version, and I may get my hands on the iOS version once all main features of the OS X version is finished. (No guarantee though)

I am open to ideas and if you have any comments/expectations about the iOS version, please feel free to share with me via email: