Syntax highlighting other languages?


#1

From time to time when discussing features in other languages and what Rust learn from them people (including me) post snippets using those languages… However, if we say something like:

    ```haskell
    data Foo = Bar

    struct Foo {
    }
    ```

this will be highligted as if it was Rust code.

Example:

class Functor f where // Here is a Rust comment which is recognized as a comment.
  fmap :: (a -> b) -> (f a -> f b)

-- Here is a Haskell comment which is not recognized as a comment.

So it would be nice to have the usual markdown capabilities here to highlight any language.


#2

++, I occasionally post C++ snippets so it’d be nice to be able to write ```cc.


#3

Have you tried:

```cpp

I believe it worked for me when I put in this C++ snippet.


#4

Testing testing… This seems to work…

Hmm; Maybe it is just Haskell who gets no love? :frowning:

// a small Java program
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
        new Object();
        protected
    }
}

#!/usr/bin/env python
import socket
import subprocess
import sys
from datetime import datetime

# Clear the screen
subprocess.call('clear', shell=True)

# Ask for input
remoteServer    = raw_input("Enter a remote host to scan: ")
remoteServerIP  = socket.gethostbyname(remoteServer)

# Print a nice banner with information on which host we are about to scan
print "-" * 60
print "Please wait, scanning remote host", remoteServerIP
print "-" * 60

# Check what time the scan started
t1 = datetime.now()

# Using the range function to specify ports (here it will scans all ports between 1 and 1024)

# We also put in some error handling for catching errors

try:
    for port in range(1,1025):  
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        result = sock.connect_ex((remoteServerIP, port))
        if result == 0:
            print "Port {}: 	 Open".format(port)
        sock.close()

except KeyboardInterrupt:
    print "You pressed Ctrl+C"
    sys.exit()

except socket.gaierror:
    print 'Hostname could not be resolved. Exiting'
    sys.exit()

except socket.error:
    print "Couldn't connect to server"
    sys.exit()

# Checking the time again
t2 = datetime.now()

# Calculates the difference of time, to see how long it took to run the script
total =  t2 - t1

# Printing the information to screen
print 'Scanning Completed in: ', total



#5

From https://meta.discourse.org/t/syntax-highlighting-of-code-blocks/7242/32 this appears to be a per-site setting, so an admin will have to enable Haskell for you here.


#6

Looks like these languages are enabled:

  • apache, apacheconf
  • bash, sh, zsh
  • cs, csharp
  • cpp, c, cc, h, c++, h++, hpp
  • css
  • coffeescript, coffee, cson, iced
  • diff, patch
  • xml, html, xhtml, rss, atom, xjb, xsd, xsl, plist
  • http, https
  • ini, toml
  • json
  • java, jsp
  • javascript, js, jsx
  • makefile, mk, mak
  • markdown, md, mkdown, mkd
  • nginx, nginxconf
  • objectivec, mm, objc, obj-c
  • ruby, rb, gemspec, podspec, thor, irb
  • perl, pl, pm
  • php, php3, php4, php5, php6
  • python, py, gyp
  • sql
  • handlebars, hbs, html.hbs, html.handlebars
  • rust, rs

I think all languages besides rust come from the default settings.


#7

Looks like Haskell successfully avoided success in this case.


#8

What a difference a comma makes :wink:

Avoid, success at all costs.

Avoid success, at all costs.

:stuck_out_tongue:

Oh that’s a pretty short list :frowning:


#9

```cpp

cpp? What’s that? :stuck_out_tongue_winking_eye:

(I’m being sarcastic; I grew up using .cc for my C++ files.)