Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate

Syntaxhighlighter for AHK Code for phpbb


  • Please log in to reply
12 replies to this topic
AGU
  • Guests
  • Last active:
  • Joined: --
What about adding / creating / modifying a code highlighter for phpbb that displays the pasted ahk code inside [code=auto:0] tags in different colors.

just an idea. :mrgreen:

BoBo
  • Guests
  • Last active:
  • Joined: --
If you use the quote-option it works already that way (beside the anoying fact that any indent is getting lost).

AGU
  • Guests
  • Last active:
  • Joined: --
Yeah, but apart from the lost indentation you have to attach the colors line by line yourself. A rarther annoying job. A highlighter would do that automatically.

Doing a little Google search revealed these two pages to me:
http://qbnz.com/highlighter/
http://sourceforge.n...ts/geshi-phpbb/

Can't it be easily adjusted to display colored Autohotkey code? Isn't here somebody onboard ;) that knows a little bit about customizing software?
Wouldn't it be nice to read "Autohotkey" in the list of supported languages? :mrgreen:

And what does Chris think about this?

AGU
  • Guests
  • Last active:
  • Joined: --
Will one of the moderators be so kind to change the posting title to s.th. more meaningful like "Syntaxhighlighter for AHK Code" or s.th. like this.

Thx. :)

toralf
  • Moderators
  • 4034 posts
  • Last active: Jul 19 2014 02:32 AM
  • Joined: 31 Jan 2005
Does this title appeal better?

BoBo
  • Guests
  • Last active:
  • Joined: --
Wow. GeSHi - Generic Syntax Highlighter (link above) that's it !
:D

toralf
  • Moderators
  • 4034 posts
  • Last active: Jul 19 2014 02:32 AM
  • Joined: 31 Jan 2005
To create a language file should not be a problem. I could mod the UltraEdit code I wrote to do it.
I only worry that it will cause more problem (since it is alpha) then having a nice look. Although I like it very much in my UltraEdit.

toralf
  • Moderators
  • 4034 posts
  • Last active: Jul 19 2014 02:32 AM
  • Joined: 31 Jan 2005
I think it is a nice gimic. But it is up to the admins to decide.

It is a nice-to-have feature, but if it is unstable/buggy/riscy/to much hassle I would forget about it. I wouldn't risc data loss.

I always copy code to my editor, having highlighning there.

It is a little bit like the emoticons. You do not really need them. But it is fun (for a lot of people).

toralf
  • Moderators
  • 4034 posts
  • Last active: Jul 19 2014 02:32 AM
  • Joined: 31 Jan 2005
The only backdraw I see is, that you have to use tabs for indentations in your code. Personnaly I prefer spaces. But that is just my taste and I can quickly change the spaces to tabs with AutoSyntaxTidy. :)

BoBo
  • Guests
  • Last active:
  • Joined: --
It's at chapter 4 [HowTo create a GeSHI language file]

AGU
  • Guests
  • Last active:
  • Joined: --

The only backdraw I see is, that you have to use tabs for indentations in your code.

Where have you read this? The only section where I've read about Tabs instead of spaces was about the conventions writing the language file.

There are several conventions that are used in language files. For ease of use and readability, your language files should obey the following rules:

* Indentation is in tabs, not spaces: Use tabs! There's no excuse for using spaces in this day and age, where almost every good editor allows you to change the tab width. Tabs also take up less space, and ensure proper alignment. When you indent, use tabs, and if your editor converts tabs to spaces, tell it not to.


The other position within the docs just proposes to use Tabs instead of spaces within your code because a tab is one char to save, but spaces need to be saved char by char as "nbsp;" They only worry about the code size. But they don't forbid spaces within the code. That's the way I understand it. ;)

The

 header is the default. If you're familiar with HTML you'll know that whitespace is rendered "as is" by a 
 element. The advantage for you is that if you use 
 the whitespace you use will appear pretty much exactly how it is in the source, and what's more GeSHi won't have to add a whole lot of 
's and non-breaking spaces ( ) to your code to indent it. This saves you source code (and your valuable visitors waiting time and your bandwidth)



toralf
  • Moderators
  • 4034 posts
  • Last active: Jul 19 2014 02:32 AM
  • Joined: 31 Jan 2005
I'm sorry, I must have misinterpreted the text. I hope you are right.

Dixtroy
  • Members
  • 20 posts
  • Last active: Feb 02 2012 01:30 PM
  • Joined: 15 Sep 2008
The Geshi project works well with phpBB and it have AHK support now. I suppose this forum should have been better with code highlighting.

1. copy files to
./{FORUM_ROOT}/includes/geshi.php
./{FORUM_ROOT}/includes/geshi/*.*

2. open ./{FORUM_ROOT}/includes/bbcode.php and change this function:

function bbcode_second_pass_code($type, $code)
   {
      $code = str_replace('\"', '"', $code);

      // edited by jb (nebler.org)

      if( !include_once( 'geshi.php' ) ) {
         echo 'geshi nem elerheto!';
      } else {   
         $astr_to = array('<', '>', '[', ']', '.', ':','"');
         $astr_from = array('<', '>', '[', ']', '.', ':','"');
         $code = str_replace($astr_from, $astr_to, $code);
         //itt termeszetesen azt add meg defaultnak, ami neked kell
         $geshi = new GeSHi( $code, $type==""?"autohotkey":$type );
         $geshi->set_header_type(GESHI_HEADER_NONE);
         $code = $geshi->parse_code();   
         $code = str_replace( '', '', $code );
      }
      $code = $this->bbcode_tpl('code_open') . $code . $this->bbcode_tpl('code_close');
      return $code;
   }

3. Open ./{FORUM_ROOT}/includes/message_parser.php , change this function.
function bbcode_parse_code($stx, &$code)
   {
      // edited by jb (nebler.org)
      if( strlen( $stx ) > 0 ) {
         return "[code=$stx]' . $code . '[/code]';
      } else {
         return '[code]' . $this->bbcode_specialchars($code) . '[/code]';
      }
   }

Usage
.. program ..
or with these parameters the default highlightning is ahk.