Help:GeSHi: Difference between revisions

From Rosetta Code
Content added Content deleted
No edit summary
(→‎Supported source tags: Straight from the horse's source code.)
Line 4: Line 4:


==Supported source tags==
==Supported source tags==
The current installation is GeSHi-1.0.7.19, this supports the following tags:
The current installation is GeSHi-1.0.7.19, this supports the following tags: [[ActionScript|actionscript]], [[ada]], [[apache]], [[AppleScript|applescript]], [[Assembly Language|asm]], [[asp]], [[Bourne Again SHell|bash]], [[blitzbasic]], [[bnf]], [[caddcl]], [[cadlisp]], [[cfm]], [[c_mac]], [[c]], [[c++|cpp]], [[cpp-qt]], [[C Sharp|csharp]], [[css-gen.cfg]], [[css]], [[delphi]], [[diff]], [[div]], [[DOS Batch File|dos]], [[d]], [[eiffel]], [[FeeBASIC|freebasic]], [[gml]], [[html4strict]], [[ini]], [[inno]], [[java]], [[JavaScript|javascript]], [[lisp]], [[lua]], [[matlab]], [[mpasm]], [[MySQL|mysql]], [[nsis]], [[Objective-C|objc]], [[ocaml-brief]], [[ocaml]], [[oobas]], [[Oracle|oracle8]], [[pascal]], [[perl]], [[php-brief]], [[PHP|php]], [[python]], [[QuickBasic|qbasic]], [[rails]], [[reg]], [[robots]], [[ruby]], [[scheme]], [[sdlbasic]], [[smarty]], [[SQL|sql]], [[text]], [[thinbasic]], [[Visual Basic .NET|vbnet]], [[Visual Basic|vb]], [[vhdl]], [[visualfoxpro]], [[winbatch]], [[x]], and [[xml]].



GeSHi-1.1.2-alpha3 not currently installed. It is unclear if all of the above languages are supported in the alpha release.
GeSHi-1.1.2-alpha3 not currently installed. It is unclear if all of the above languages are supported in the alpha release.

The following language tags are supported:
<php>
$langArray = array( "actionscript-french", "actionscript", "ada", "apache",
"applescript", "asm", "asp", "bash",
"blitzbasic", "caddcl", "cadlisp", "c_mac",
"c", "cpp", "csharp", "css",
"delphi", "diff", "dos",
"d", "eiffel", "freebasic", "gml",
"html4strict", "ini", "inno", "java",
"javascript", "lisp", "lua", "matlab",
"mpasm", "mysql", "nsis", "objc",
"ocaml-brief", "ocaml", "oobas", "oracle8",
"pascal", "perl", "php-brief", "php",
"python", "qbasic", "ruby", "scheme",
"sdlbasic", "smarty", "sql", "vbnet",
"vb", "vhdl", "visualfoxpro", "xml" );</php>


==Unsupported languages==
==Unsupported languages==

Revision as of 02:14, 18 March 2008

GeSHi is currently in Beta on Rosetta Code. Please do not employ it anywhere other than this page for now. --Short Circuit 20:07, 22 February 2008 (MST)

The following are examples of typical code formated with GeSHi, the Generic Syntax Hilighter.

Supported source tags

The current installation is GeSHi-1.0.7.19, this supports the following tags:


GeSHi-1.1.2-alpha3 not currently installed. It is unclear if all of the above languages are supported in the alpha release.

The following language tags are supported: <php>

 $langArray = array( "actionscript-french",  "actionscript",     "ada",          "apache",
                     "applescript",          "asm",              "asp",          "bash",
                     "blitzbasic",           "caddcl",           "cadlisp",      "c_mac",
                     "c",                    "cpp",              "csharp",       "css",
                     "delphi",               "diff",             "dos",
                     "d",                    "eiffel",           "freebasic",    "gml",
                     "html4strict",          "ini",              "inno",         "java",
                     "javascript",           "lisp",             "lua",          "matlab",
                     "mpasm",                "mysql",            "nsis",         "objc",
                     "ocaml-brief",          "ocaml",            "oobas",        "oracle8",
                     "pascal",               "perl",             "php-brief",    "php",
                     "python",               "qbasic",           "ruby",         "scheme",
                     "sdlbasic",             "smarty",           "sql",          "vbnet",
                     "vb",                   "vhdl",             "visualfoxpro", "xml" );</php>

Unsupported languages

These languages used on Rosetta Code do not have GeSHi support (yet).

The initial sample program

Use trial division. Even numbers may be eliminated right away. A loop from 3 to √(n) will suffice, but other loops are allowed.

Ada

<Ada>

function Is_Prime(Item : Positive) return Boolean is
   Result : Boolean := True;
   Test : Natural;
begin
   if Item /= 2 and Item mod 2 = 0 then
      Result := False;
   else
      Test := 3;
      while Test < Integer(Sqrt(Float(Item))) loop
         if Item mod Test = 0 then
            Result := False;
            exit;
         end if;
         Test := Test + 2;
      end loop;
  end if;
  return Result;
end Is_Prime;

</Ada>

ALGOL 68 (unsupported)

<ALGOL_68>

main:(
  PROC is prime = ( INT n )BOOL:
  (
    IF n = 2 THEN 
      TRUE
    ELIF n <= 1 OR n MOD 2 = 0 THEN 
      FALSE
    ELSE
      BOOL prime := TRUE;
      FOR i FROM 3 BY 2 TO ENTIER sqrt(n) WHILE prime := n MOD i /= 0 DO
         SKIP
      OD;
      prime
    FI
  );
  
  INT upb=100;
  printf(($" The primes up to "g(-3)" are:"l$,upb));
  FOR i TO upb DO 
    IF is prime(i) THEN
      printf(($g(-4)$,i))
    FI
  OD;
  printf($l$)
)

Output: </ALGOL_68>

The primes up to 100 are:
  2   3   5   7  11  13  17  19  23  29  31  37  41  43  47  53  59  61  67  71  73  79  83  89  97

QuickBasic

Works with: QuickBasic version 4.5

Going with the classic 1 for "true" and 0 for "false": <qbasic>

FUNCTION prime% (n!)
  IF n = 2 THEN prime = 1
  IF n <= 1 OR n MOD 2 = 0 THEN prime = 0
  FOR a = 3 TO INT(SQR(n)) STEP 2
    IF n MOD a = 0 THEN prime = 0
  NEXT a
  prime = 1
END FUNCTION

</qbasic>

C

<C>

#include <math.h>
#define FALSE 0
#define TRUE  1
int isPrime( unsigned int n )
{
    unsigned int i;
    if ( n === 2 )
        return TRUE;
    if ( n <= 1 || ( n & 1 ) === 0 )
        return FALSE;
    for ( i = 3 ; i <= sqrt( n ) ; i += 2 )
        if ( n % i === 0 )
            return FALSE;
    return TRUE;
}

</C>

Lisp

Note: Common Lisp words like "loop" are not highlighted. <lisp>

(defun primep (a)
 (cond ((= a 2) T)
       ((or (<= a 1) (= (mod a 2) 0)) nil)
       ((loop for i from 3 to (sqrt a) by 2 do
               (if (= (mod a i) 0)
                   (return nil))) nil)
       (T T)))

</lisp>

D

<D>

import std.math: sqrt;
bool isPrime(int n) {
    if (n === 2)
        return true;
    if (n <= 1 || (n & 1) === 0)
        return false;

    for(int i = 3; i <= sqrt(cast(float)n); i += 2)
        if (n % i === 0)
            return false;
    return true;
}

</D>

Forth (unsupported)

<Forth>

: prime? ( n -- ? )
       dup 2 < if      drop false
  else dup 2 = if      drop true
  else dup 1 and 0= if drop false
  else 3
       begin 2dup dup * >=
       while 2dup mod 0=
             if       2drop false exit
             then 2 +
       repeat         2drop true
  then then then ;

</Forth>

Haskell (unsupported)

Without square roots: <Haskell>

divides k n = n `mod` k === 0

isPrime :: Integer -> Bool
isPrime n | n < 2 = False
isPrime n         = not $ any (`divides` n) $ takeWhile (\k -> k*k <= n) [2..]

</Haskell>

J (unsupported)

Actually 1&p: would do, but the task calls for trial division, so: <J>

isprime=: 3 : 'if. 3>:y do. 1<y else. 0 *./@:< y|~2+i.<.%:y end.'

</J>

Java

<Java>

public static boolean prime(double a){
   if(a === 2){
      return true;
   }else if(a <= 1 || a % 2 === 0){
      return false;
   }
   for(long n= 3; n <= (long)Math.sqrt(a); n+= 2){
      if(a % n === 0){ return false; }
   }
   return true;
}

</Java>

MAXScript (unsupported)

<MAXScript>

fn isPrime n =
(
    if n === 2 then
    (
        return true
    )
    else if (n <= 1) OR (mod n 2 === 0) then
    (
        return false
    )

    for i in 3 to (sqrt n) by 2 do
    (
        if mod n i === 0 then return false
    )
    true
)

</MAXScript>

Perl

<Perl>

sub prime {
  $a = shift;
  if ($a === 2) {
    return 1;
  }
  if ($a <= 1 || $a % 2 === 0) {
    return 0;
  }
  $d = 3;
  while ($d <= sqrt($a)) {
    if ($a % $d === 0) {
      return 0;
    }
    $d += 2;
  }
  return 1;
}

</Perl>

Python

Ugh. Who chose these colors? --IanOsgood 09:20, 25 February 2008 (MST)

The simplest primality test, using trial division:

Works with: Python version 2.5

<Python> def prime(a):

   return not (a < 2 or any(a % x === 0 for x in range(2, int(a**0.5) + 1)))

</Python>

Another test. Exclude even numbers first:

<Python> def prime2(a):

   if a === 2: return True
   if a < 2 or a % 2 === 0: return False
   return not any(a % x === 0 for x in range(3, int(a**0.5) + 1, 2))

</Python>

Yet another test. Exclude multiples of 2 and 3, see http://www.devx.com/vb2themax/Tip/19051:

Works with: Python version 2.4

<Python> def prime3(a):

   if a < 2: return False
   if a === 2 or a === 3: return True # manually test 2 and 3   
   if a % 2 === 0 or a % 3 === 0: return False # exclude multiples of 2 and 3
   maxDivisor = a**0.5
   d, i = 5, 2
   while d <= maxDivisor:
       if a % d === 0: return False
       d += i 
       i = 6 - i # this modifies 2 into 4 and viceversa
   return True

</Python>

Ruby

def prime(a)
  if a===2
   return true
  end

  if a<=1 || a%2===0
    return false
  end

  d=3
  while d <= Math.sqrt(a) do
    if a%d===0
      return false
    end
    d+=2
  end

return true
end

Geshi supported formats

Actionscript

Web page:Actionscript

Sample: <actionscript>

Insert code here: ?

</actionscript> <actionscript-french>

Insert code here: ?

</actionscript-french>

ADA

Sample: <ada>

Insert code here: ?

</ada>

AppleScript

Web page:AppleScript

Sample: <applescript>

Insert code here: ?

</applescript>

ASM

Sample: <asm>

Insert code here: ?

</asm>

ASP

Web page:ASP

Sample: <asp>

Insert code here: ?

</asp>

AutoIT

Web page:AutoIT

Sample: <AutoIT>

Check tag and insert here: ?

</AutoIT>

Backus-Naur form

Web page:Backus-Naur form

Sample: <Backus-Naur>

Check tag and insert here: ?

</Backus-Naur>

Bash

Web page:Bash

Sample: <bash>

Insert code here: ?

</bash>

BlitzBasic

Web page:BlitzBasic

Sample: <blitzbasic>

Insert code here: ?

</blitzbasic>

CAD DCL

Web page:CAD DCL

Sample:

CadLisp

Web page:CadLisp

Sample: <cadlisp>

Insert code here: ?

</cadlisp>

CFDG

Web page:CFDG

Sample: <CFDG>

Check tag and insert here: ?

</CFDG>

C for Macs

Sample: <c_mac>

Insert code here: ?

</c_mac>

ColdFusion

Web page:ColdFusion

Sample:

C#

Sample: <csharp>

Insert code here: ?

</csharp>

CSS

Web page:CSS

Sample: <css>

Insert code here: ?

</css>

C++

Web page:C++

Sample: <cpp>

Insert code here: ?

</cpp>

C

Web page:C

Sample: <c>

Insert code here: ?

</c>

Delphi

Web page:Delphi

Sample: <delphi>

Insert code here: ?

</delphi>

DIV

Web page:DIV

Sample: <diff>

Insert code here: ?

</diff>

DOS

Sample: <dos>

Insert code here: ?

</dos>

D

Sample: <d>

Insert code here: ?

</d>

Eiffel

Web page:Eiffel

Sample: <eiffel>

Insert code here: ?

</eiffel>

Fortran

Web page:Fortran

Sample: <Fortran>

Insert code here: ?
      PROGRAM MAIN
      INTEGER I
      CALL SUBROUTINE
      STOP
      EXIT

</Fortran>

FreeBasic

Web page:FreeBasic

Sample: <freebasic>

Insert code here: ?

</freebasic>

GML

Web page:GML

Sample: <gml>

Insert code here: ?

</gml>

Groovy

Web page:Groovy

Sample: <Groovy>

Check tag and insert here: ?

</Groovy>

HTML

Web page:HTML

Sample: <html4strict>

Insert code here: ?

</html4strict>

Inno

Web page:Inno

Sample: <inno>

Insert code here: ?

</inno>

IO

Web page:IO

Sample: <IO>

Insert code here: ?

</IO>

Java 5

Web page:Java 5

Sample: <java>

Insert code here: ?

</java>

Javascript

Web page:Javascript

Sample: <javascript>

Insert code here: ?

</javascript>

Java

Web page:Java

Sample: <java>

Insert code here: ?

</java>

LaTeX

Web page:LaTeX

Sample: <LaTeX>

Insert code here: ?

</LaTex>

Lisp

Web page:Lisp

Sample: <lisp>

Insert code here: ?

</lisp>

Lua

Web page:Lua

Sample: <lua>

Insert code here: ?

</lua>

MatLab

Sample: <matlab>

Insert code here: ?

</matlab>

Microprocessor ASM

mpasm

Sample: <mpasm>

Insert code here: ?

</mpasm>

MySQL

Web page:MySQL

Sample: <mysql>

Insert code here: ?

</mysql>

NSIS

Web page:NSIS

Sample: <nsis>

Insert code here: ?

</nsis>

Objective C

Sample: <objc>

Insert code here: ?

</objc>

OCaml

Web page:OCaml

Sample: <ocaml-brief>

Insert code here: ?

</ocaml-brief> <ocaml>

Insert code here: ?

</ocaml>

OpenOffice BASIC

Web page:OpenOffice BASIC

Sample: <oobas>

Insert code here: ?

</oobas>

Oracle 8 SQL

Web page:Oracle 8 SQL

Sample: <oracle8>

Insert code here: ?

</oracle8>

Pascal

Sample: <pascal>

Insert code here: ?

</pascal>

Perl

Web page:Perl

Sample: <perl>

Insert code here: ?

</perl>

PHP

Web page:PHP

Sample: <php>

Insert code here: ?

</php> <php-brief>

Insert code here: ?

</php-brief>

PL/SQL

Web page:PL/SQL

Sample: <PLSQL>

Check tag and insert here: ?

</PLSQL>

Python

Web page:Python

Sample: <python>

Insert code here: ?

</python>

QBASIC

Web page:Q(uick)BASIC

Sample: <qbasic>

Insert code here: ?

</qbasic>

Ruby

Web page:Ruby

Sample:

Insert code here: ?

SAS

<SAS>

Check tag and insert here: ?

</SAS> Web page:SAS

Scheme

Web page:Scheme

Sample: <scheme>

Insert code here: ?

</scheme>

SDLBasic

Web page:SDLBasic

Sample: <sdlbasic>

Insert code here: ?

</sdlbasic>

Smalltalk

Web page:Smalltalk

Sample: <Smalltalk>

Check tag and insert here: ?

</Smalltalk>

Smarty

Web page:Smarty

Sample: <smarty>

Insert code here: ?

</smarty>

SQL

Sample: <sql>

Insert code here: ?

</sql>

TCL

Web page:TCL

Sample: <TCL>

Check tag and insert here: ?

</TCL>

thinBasic

Web page:thinBasic

Sample: <ThinBasic>

Check tag and insert here: ?

</ThinBasic>

T-SQL

<T-SQL>

Check tag and insert here: ?

</T-SQL>

Uno IDL

Web page:Uno IDL

Sample: <Uno IDL>

Check tag and insert here: ?

</Uno IDL>

VB.NET

Web page:VB.NET

Sample: <vb>

Insert code here: ?

</vb>

Visual BASIC

Web page:Visual BASIC

Sample: <vbnet>

Insert code here: ?

</vbnet>

Visual Fox Pro

Web page:Visual Fox Pro

Sample: <visualfoxpro>

Insert code here: ?

</visualfoxpro>

Visual VHDL

Sample: <vhdl>

Insert code here: ?

</vhdl>

Winbatch

Web page:Winbatch

Sample: <Winbatch>

Check tag and insert here: ?

</Winbatch>

X++

Web page:X++ Sample: <Xpl>

Insert code here: ?

</Xpl>

Z80 ASM

Web page:Z80 ASM

Sample:

Other GeSHi file formats

Apache Log

Web page:Apache Log

Sample: <apache>

Insert code here: ?

</apache>

Ini

Sample: <ini>

Insert code here: ?

</ini>

mIRC

Web page:mIRC

Sample: <mIRC>

Check tag and insert here: ?

</mIRC>

robots.txt

Web page:robots.txt

Sample: <robots.txt>

Check tag and insert here: ?

</robots.txt>

XML

Web page:XML

Sample: <xml>

Insert code here: ?

</xml>