If I format some code by indenting it using four spaces, the code is not formatted. How do I format some code specifically for the language used? Or how do I prevent it from being formatted? Which languages are supported?
How do I format some code specifically for the language used? Or how do I prevent it from being formatted? Which languages are supported?
Add the line
<!-- language: <language_string> --> (where
<language_string> is the string identifying the language) before the start of the code, and make sure that the code itself has an empty line before it:
<!-- language: <language_string> --> ... <line 1> <line 2> <line 3> ...
*<language_string> = string identifying the language
As suggested by muru, if you want to prevent the code from being formatted instead, you can add the line
<!-- language: none -->:
<!-- language: none --> # ... echo This snippet will not be nicely formatted when copy-pasted inside a post # ...
<!-- language: bash --> # ... echo This snippet will be nicely formatted when copy-pasted inside a post # ...
Courtesy of terdon, here's the list of the currently supported languages along with their identifying string (most of the languages listed won't need the
none: none bash: lang-bash OR lang-bsh c: lang-c clj: lang-clj coffee: lang-coffee cpp: lang-cpp cs: lang-cs csh: lang-csh css: lang-css dart: lang-dart erlang: lang-erlang go: lang-go hs: lang-hs html: lang-html java: lang-java js: lang-js latex: lang-latex lisp: lang-lisp lua: lang-lua ml: lang-ml pascal: lang-pascal perl: lang-perl php: lang-php proto: lang-proto py: lang-py r: lang-r rb: lang-rb regex: lang-regex rust: lang-rust scala: lang-scala sh: lang-sh sql: lang-sql vb: lang-vb vhdl: lang-vhdl xml: lang-xml
Finally, if the question is tagged with bash, python, or php - any of the ones listed above in fact, it will automatically format it. Example: What is the syntax for IF/ELSE in bash?.
As explained by @Braiam, the
lang- prefix is needed for those languages that are not associated with any tag.
1It turns out that
lang-bashalso works, despite only
lang-bshbeing listed. Apr 22, 2015 at 12:01
@terdon Thanks, I updated it Apr 22, 2015 at 12:07
1Why is there no BASIC in there? @terdon– RinzwindApr 22, 2015 at 12:49
1For plenty of languages, you don't need the
lang-at all.– muruApr 22, 2015 at 13:14
1@muru I think the
lang-is optional for all of them. Apr 22, 2015 at 13:35
@muru Thanks, but the
<pre></pre>blocks were meant to show the empty lines at the end of the snippet Apr 22, 2015 at 13:35
@Rinzwind no idea. Also notice the conspicuous and unexplainable absence of
lang-whitespace! Apr 22, 2015 at 13:35
1@terdon Unless it's a bug, not for
lang-sqlApr 22, 2015 at 13:36
1@kos you don't need empty lines at the end of a snippet. You do need an empty line before the
<!-- languageline.– muruApr 22, 2015 at 13:36
@muru You're right, updated Apr 22, 2015 at 13:44
1@kos yeah, some do work without it but not all. Apr 22, 2015 at 13:52
@terdon Also no Brainfuck support. Believe it or not, people writes PHP interpreters with it Apr 22, 2015 at 14:39
@Tim Didn't know about that, I think you should add another answer to this question ;) Apr 23, 2015 at 16:28
@kos nah, it can all go in one :)– TimApr 23, 2015 at 16:29
2@terdon the lang- prefix is required unless there's a tag associated with the language, ie. you can type either
lang-pythonfor python would work, but only
pipwould work as the tag is associated (at least on SO) with the lang-python formating. If a tag, like scala doesn't have associated a formating at the end of the tag info then neither adding the tag, nor just "scala" would work, you will have to type
lang-scala.– BraiamMay 3, 2015 at 21:00