:orphan:

Supported languages
===================

Pygments supports an ever-growing range of languages. Watch this space...

Programming languages
---------------------

* `ActionScript <https://www.adobe.com/devnet/actionscript/articles/actionscript3_overview.html>`_
* `Ada <https://www.adaic.org/>`_
* `Agda <https://wiki.portal.chalmers.se/agda>`_ (incl. literate)
* `Alloy <https://alloytools.org/>`_
* `AMPL <https://ampl.com/>`_
* `ANTLR <https://www.antlr.org/>`_
* `APL <https://tryapl.org/>`_
* `AppleScript <https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html>`_
* `Assembly <https://en.wikipedia.org/wiki/Assembly_language>`_ (various)
* `Asymptote <https://asymptote.sourceforge.io/>`_
* `Augeas <https://augeas.net/>`_
* `AutoIt <https://www.autoitscript.com/site/autoit/>`_
* `Awk <https://en.wikipedia.org/wiki/AWK>`_
* `BARE <https://baremessages.org/>`_
* `BBC Basic <http://www.bbcbasic.co.uk/bbcbasic.html>`_
* `Befunge <https://github.com/catseye/Befunge-93>`_
* `BlitzBasic <https://en.wikipedia.org/wiki/Blitz_BASIC>`_
* `Boa <https://boa.cs.iastate.edu/docs/>`_
* `Boo <https://boo-language.github.io/>`_
* `Boogie <https://boogie.codeplex.com/>`_
* `BrainFuck <https://en.wikipedia.org/wiki/Brainfuck>`_
* `C <http://www.open-std.org/jtc1/sc22/wg14/>`_, `C++ <https://isocpp.org/>`_ (incl. dialects like Arduino)
* `C# <https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/>`_
* `Chapel <https://chapel-lang.org/>`_
* `Charm++ CI <http://charmplusplus.org/>`_
* `Cirru <http://cirru.org/>`_
* `Clay <https://github.com/jckarter/clay>`_
* `Clean <https://clean.cs.ru.nl/Clean>`_
* `Clojure <https://clojure.org/>`_
* `CoffeeScript <https://coffeescript.org/>`_
* `ColdFusion <https://www.adobe.com/products/coldfusion-family.html>`_
* `Common Lisp <https://common-lisp.net/>`_
* `Component Pascal <https://en.wikipedia.org/wiki/Component_Pascal>`_
* `Coq <https://coq.inria.fr/>`_
* `Croc <http://www.croc-lang.org/>`_ (MiniD)
* `Cryptol <https://cryptol.net/>`_ (incl. Literate Cryptol)
* `Crystal <https://crystal-lang.org>`_
* `Cypher <https://neo4j.com/developer/cypher-query-language/>`_
* `Cython <https://cython.org>`_
* `D <https://dlang.org>`_
* `Dart <https://dart.dev/>`_
* DCPU-16
* `Delphi <https://www.embarcadero.com/products/delphi>`_
* `DOT / Graphviz <https://graphviz.org>`_
* `Devicetree <https://www.devicetree.org/>`_
* `Dylan <https://opendylan.org/>`_ (incl. console)
* `Eiffel <https://www.eiffel.org/>`_
* `Elm <https://elm-lang.org/>`_
* `Emacs Lisp <https://www.gnu.org/software/emacs/manual/html_node/elisp/>`_
* Email
* `Erlang <https://www.erlang.org/>`_ (incl. shell sessions)
* `Ezhil <http://ezhillang.org>`_
* `Execline <https://skarnet.org/software/execline>`_
* `Factor <https://factorcode.org/>`_
* `Fancy <http://www.fancy-lang.org/>`_
* `Fantom <https://fantom-lang.org/>`_
* `Fennel <https://fennel-lang.org/>`_
* `FloScript <https://ioflo.com/>`_
* `Fortran <https://fortran-lang.org/>`_
* `FreeFEM++ <https://freefem.org/>`_
* `F# <https://fsharp.org/>`_
* `F* <https://www.fstar-lang.org/>`_
* `GAP <https://www.gap-system.org/>`_
* `GDScript <https://docs.godotengine.org/>`_
* `Gherkin <https://cucumber.io/docs/gherkin/>`_ (Cucumber)
* `GLSL <https://www.khronos.org/registry/OpenGL/index_gl.php>`_ shaders
* `GnuCOBOL <https://www.gnu.org/software/gnucobol/>`_ (OpenCOBOL)
* `Golo <https://golo-lang.org/>`_
* `Gosu <https://gosu-lang.github.io/>`_
* `Groovy <https://groovy-lang.org/>`_
* `Haskell <https://www.haskell.org/>`_ (incl. Literate Haskell)
* `Haxe <https://haxe.org>`_
* `HLSL <https://docs.microsoft.com/en-gb/windows/win32/direct3dhlsl/dx-graphics-hlsl>`_ shaders
* `HSpec <https://hackage.haskell.org/package/hspec>`_
* `Hy <https://hylang.org>`_
* `IDL <https://www.harrisgeospatial.com/Software-Technology/IDL>`_
* `Idris <https://www.idris-lang.org/>`_ (incl. Literate Idris)
* `Igor Pro <https://www.wavemetrics.com/products/igorpro/programming>`_
* `Io <http://iolanguage.com/>`_
* `Jags <http://mcmc-jags.sourceforge.net/>`_
* `Java <https://www.oracle.com/java/>`_
* `JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_
* `Jasmin <http://jasmin.sourceforge.net/>`_
* `Jcl <https://en.wikipedia.org/wiki/Job_Control_Language>`_
* `Julia <https://julialang.org>`_
* `JSLT <https://github.com/schibsted/jslt>`_
* `Kotlin <https://kotlinlang.org/>`_
* `Lasso <http://www.lassosoft.com/>`_ (incl. templating)
* `Limbo <http://www.vitanuova.com/inferno/limbo.html>`_
* `LiveScript <https://livescript.net/>`_
* `LLVM MIR <https://llvm.org/docs/MIRLangRef.html>`_
* `Logtalk <https://logtalk.org/>`_
* `Logos <https://en.wikipedia.org/wiki/Logo_(programming_language)>`_
* `Lua <https://lua.org>`_
* `Mathematica <https://www.wolfram.com/mathematica/>`_
* `Matlab <https://www.mathworks.com/products/matlab.html>`_
* `The Meson Build System <https://mesonbuild.com>`_
* `MiniScript <https://miniscript.org>`_
* `Modelica <https://www.modelica.org/>`_
* `Modula-2 <https://www.modula2.org/>`_
* `Monkey <https://monkeylang.org/>`_
* `Monte <https://monte.readthedocs.io/>`_
* `MoonScript <https://moonscript.org/>`_
* `Mosel <https://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/mosel/mosel_lang/dhtml/moselreflang.html>`_
* `MuPad <https://www.mathworks.com/discovery/mupad.html>`_
* `NASM <https://www.nasm.us/>`_
* `Nemerle <http://nemerle.org/>`_
* `NesC <http://nescc.sourceforge.net/>`_
* `NewLISP <http://www.newlisp.org/>`_
* `Nim <https://nim-lang.org/>`_
* `Nit <https://nitlanguage.org/>`_
* `Notmuch <https://notmuchmail.org/>`_
* `NuSMV <http://nusmv.fbk.eu/NuSMV/papers/sttt_j/html/node7.html>`_
* `Objective-C <https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html>`_
* `Objective-J <https://www.cappuccino.dev/learn/objective-j.html>`_
* `Octave <https://www.gnu.org/software/octave/>`_
* `OCaml <https://ocaml.org/>`_
* `Opa <http://opalang.org/>`_
* `ParaSail <https://www.parasail-lang.org/>`_
* `Pawn <https://www.compuphase.com/pawn/pawn.htm>`_
* `PHP <https://www.php.net/>`_
* `Perl 5 <https://perl.org>`_
* `Pike <https://pike.lysator.liu.se/>`_
* `Pointless <https://ptls.dev/>`_
* `Pony <https://www.ponylang.io/>`_
* `PovRay <http://www.povray.org/>`_
* `PostScript <https://en.wikipedia.org/wiki/PostScript>`_
* `PowerShell <https://microsoft.com/powershell>`_
* `Praat <http://www.praat.org>`_
* `Prolog <https://en.wikipedia.org/wiki/Prolog>`_
* `Python <https://python.org/>`_ 2.x and 3.x (incl. console sessions and
  tracebacks)
* `QBasic <https://en.wikipedia.org/wiki/QBasic>`_
* `Racket <https://racket-lang.org/>`_
* `Raku <https://www.raku.org/>`_ a.k.a. Perl 6
* `ReasonML <https://reasonml.github.io/>`_
* `REBOL <http://www.rebol.com>`_
* `Red <https://www.red-lang.org>`_
* `Redcode <https://esolangs.org/wiki/Redcode>`_
* `Rexx <https://www.ibm.com/rexx/>`_
* `Ride <https://docs.wavesprotocol.org/en/ride/>`_
* `Ruby <https://www.ruby-lang.org>`_ (incl. irb sessions)
* `Rust <https://rust-lang.org>`_
* S, S-Plus, `R <https://www.r-project.org/>`_
* `Scala <https://scala-lang.org/>`_
* `Scdoc <https://git.sr.ht/~sircmpwn/scdoc>`_
* `Scheme <http://www.scheme-reports.org/>`_
* `Scilab <https://www.scilab.org/>`_
* `SGF <https://www.red-bean.com/sgf/>`_
* Shell scripts (`Bash <https://www.gnu.org/software/bash/>`_, `Tcsh <https://www.tcsh.org/>`_, `Fish <https://fishshell.com/>`_)
* `Shen <http://shenlanguage.org/>`_
* `Silver <https://elementscompiler.com/elements/silver/>`_
* `Slash <https://github.com/arturadib/Slash-A>`_
* `Slurm <https://slurm.schedmd.com/overview.html>`_
* `Smalltalk <https://en.wikipedia.org/wiki/Smalltalk>`_
* `SNOBOL <http://www.snobol4.org/>`_
* `Snowball <https://snowballstem.org/>`_
* `Solidity <https://solidity.readthedocs.io/>`_
* `SourcePawn <https://github.com/alliedmodders/sourcepawn>`_
* `Stan <https://mc-stan.org/>`_
* `Standard ML <https://smlfamily.github.io/>`_
* `Stata <https://www.stata.com/features/programming-language/>`_
* `Swift <https://swift.org/>`_
* `Swig <http://swig.org/>`_
* `SuperCollider <https://supercollider.github.io/>`_
* `Tcl <https://www.tcl.tk/about/language.html>`_
* `Tera Term language <https://ttssh2.osdn.jp/>`_
* `TypeScript <https://www.typescriptlang.org/>`_
* `TypoScript <https://typo3.org/>`_
* `USD <https://graphics.pixar.com/usd/docs/index.html>`_
* `Unicon <https://unicon.sourceforge.io/>`_
* `Urbiscript <https://github.com/urbiforge/urbi>`_
* `Vala <https://wiki.gnome.org/Projects/Vala>`_
* `VBScript <https://docs.microsoft.com/en-us/previous-versions/t0aew7h6(v=vs.85)>`_
* Verilog, `SystemVerilog <https://en.wikipedia.org/wiki/SystemVerilog>`_
* `VHDL <http://www.eda-twiki.org/cgi-bin/view.cgi/P1076/WebHome>`_
* `Visual Basic.NET <https://docs.microsoft.com/dotnet/visual-basic/>`_
* `Visual FoxPro <https://msdn.microsoft.com/vfoxpro>`_
* `Whiley <http://whiley.org/>`_
* `Xtend <https://www.eclipse.org/xtend/>`_
* `XQuery <http://www.w3.org/XML/Query/>`_
* `Zeek <https://www.zeek.org>`_
* `Zephir <https://zephir-lang.com/en>`_
* `Zig <https://ziglang.org/>`_

Template languages
------------------

* `Angular templates <https://angular.io/guide/template-syntax>`_
* `Cheetah templates <https://cheetahtemplate.org/>`_
* `ColdFusion <https://www.adobe.com/products/coldfusion-family.html>`_
* `Django <https://www.djangoproject.com>`_ / `Jinja
  <https://jinja.pocoo.org/jinja>`_ templates
* `ERB <https://en.wikipedia.org/wiki/ERuby>`_ (Ruby templating)
* Evoque
* `Genshi <https://genshi.edgewall.org>`_ (the Trac template language)
* `Handlebars <https://handlebarsjs.com/>`_
* `JSP <https://www.oracle.com/java/technologies/jspt.html>`_ (Java Server Pages)
* `Liquid <https://shopify.github.io/liquid/>`_
* `Myghty <https://pypi.org/project/Myghty/>`_ (the HTML::Mason based framework)
* `Mako <https://www.makotemplates.org>`_ (the Myghty successor)
* `Slim <http://slim-lang.com/>`_
* `Smarty <https://www.smarty.net>`_ templates (PHP templating)
* `Tea <https://github.com/teatrove/teatrove/wiki/Tea-Template-Language>`_
* `Twig <https://twig.symfony.com/>`_

Other markup
------------

* Apache config files
* Apache Pig
* BBCode
* CapDL
* `Cap'n Proto <https://capnproto.org>`_
* `CDDL <https://datatracker.ietf.org/doc/rfc8610/>`_
* CMake
* `Csound <https://csound.com>`_ scores
* CSS
* Debian control files
* Diff files
* Dockerfiles
* DTD
* EBNF
* E-mail headers
* Extempore
* Flatline
* Gettext catalogs
* Gnuplot script
* Groff markup
* `GSQL <https://docs.tigergraph.com/dev/gsql-ref>`_
* Hexdumps
* HTML
* HTTP sessions
* IDL
* Inform
* INI-style config files
* IRC logs (irssi style)
* Isabelle
* JSGF notation
* JSON, JSON-LD
* Lean theorem prover
* Lighttpd config files
* Linux kernel log (dmesg)
* LLVM assembly
* LSL scripts
* Makefiles
* MoinMoin/Trac Wiki markup
* MQL
* MySQL
* NCAR command language
* `NestedText <https://nestedtext.org/>`_
* Nginx config files
* `Nix language <https://nixos.org/nix/>`_
* NSIS scripts
* Notmuch
* `OMG IDL <https://www.omg.org/spec/IDL/About-IDL/>`_
* `PEG <https://bford.info/packrat/>`_
* POV-Ray scenes
* `Procfile <https://devcenter.heroku.com/articles/procfile#procfile-format>`_
* `PromQL <https://prometheus.io/docs/prometheus/latest/querying/basics/>`_
* `Puppet <https://puppet.com/>`_
* QML
* Ragel
* Redcode
* ReST
* `Roboconf <http://roboconf.net/en/roboconf.html>`_
* Robot Framework
* RPM spec files
* Rql
* RSL
* Scdoc
* Sieve
* Singularity
* `Smithy <https://awslabs.github.io/smithy/>`_
* SPARQL
* SQL, also MySQL, SQLite
* Squid configuration
* TADS 3
* Terraform
* TeX
* `Thrift <https://thrift.apache.org/>`_
* `TNT <https://en.wikipedia.org/wiki/Typographical_Number_Theory>`_
* `TOML <https://github.com/toml-lang/toml>`_
* Treetop grammars
* USD (Universal Scene Description)
* Varnish configs
* VGL
* Vim Script
* WDiff
* Web IDL
* Windows batch files
* XML
* XSLT
* YAML
* YANG
* Windows Registry files


Interactive terminal/shell sessions
-----------------------------------

To highlight an interactive terminal or shell session, prefix your code snippet
with a specially formatted prompt.

Supported shells with examples are shown below. In each example, prompt parts in
brackets ``[any]`` represent optional parts of the prompt, and prompt parts
without brackets or in parenthesis ``(any)`` represent required parts of the
prompt.

* **Bash Session** (console, shell-session):

  .. code-block:: console

     [any@any]$ ls -lh
     [any@any]# ls -lh
     [any@any]% ls -lh
     $ ls -lh
     # ls -lh
     % ls -lh
     > ls -lh

* **MSDOS Session** (doscon):

  .. code-block:: doscon

     [any]> dir
     > dir
     More? dir

* **Tcsh Session** (tcshcon):

  .. code-block:: tcshcon

     (any)> ls -lh
     ? ls -lh

* **PowerShell Session** (ps1con):

  .. code-block:: ps1con

     PS[any]> Get-ChildItem
     PS> Get-ChildItem
     >> Get-ChildItem


... that's all?
---------------

Well, why not write your own? Contributing to Pygments is easy and fun.  Take a
look at the :doc:`docs on lexer development <docs/lexerdevelopment>`.  Pull
requests are welcome on `GitHub <https://github.com/pygments/pygments>`_.

Note: the languages listed here are supported in the development version. The
latest release may lack a few of them.
