01-26-2008, 01:23 AM
This is my first ever attempt at writing a syntax highlighter. I have not looked into anyone else's code either, so I'm proud to say that I thought up all the algorithms used in this code by myself (though someone else may have already used them, IDK >_>).
Doing a few benchmarks against GeSHi (what's used on most forum systems, like phpBB and vBulletin), my code performs, on average, 2 times faster. XML/HTML is done by a dedicated algorithm, so is usually around 5-6 times faster than GeSHi.
Still, it's rather slow, plus, my algorithm has a little flaw, which, in a worst case scenario, may cause it to run quite slowly. For most codes however, it shouldn't be an issue.
I suggest installing a preparser if you plan on using this.
One thing to note is that this algorithm is more designed for speed
than ease of extensibility, unlike GeSHi.
Features:
Note that this plugin requires two code edits to /inc/class_parser.php. Details on the code edits are provided in the package, as well as a pre-edited MyBB 1.2.10-1.2.12 file.
[attachment=44]
(keyword lists were copied from Notepad++ - I didn't write them up myself; props to the authors of Notepad++ for that, and also, for the awesome editor)
EDIT: Updated
Demonstrations
Doing a few benchmarks against GeSHi (what's used on most forum systems, like phpBB and vBulletin), my code performs, on average, 2 times faster. XML/HTML is done by a dedicated algorithm, so is usually around 5-6 times faster than GeSHi.
Still, it's rather slow, plus, my algorithm has a little flaw, which, in a worst case scenario, may cause it to run quite slowly. For most codes however, it shouldn't be an issue.
I suggest installing a preparser if you plan on using this.
One thing to note is that this algorithm is more designed for speed
than ease of extensibility, unlike GeSHi.
Features:
- Tabs are displayed correctly (not converted to spaces)
- Adds a Select button for easy code selection
- Supported languages:
- C
- C++
- Java
- Visual Basic
- PHP (custom)
- XML/HTML
- Javascript
- Assembler
- SQL
- Batch
- INI
Note that this plugin requires two code edits to /inc/class_parser.php. Details on the code edits are provided in the package, as well as a pre-edited MyBB 1.2.10-1.2.12 file.
[attachment=44]
(keyword lists were copied from Notepad++ - I didn't write them up myself; props to the authors of Notepad++ for that, and also, for the awesome editor)
EDIT: Updated
Demonstrations
C Code
|
PHP Code:
|
Batch Script
|
SQL Code
|