Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Syntax highlighting

 [1/2] from: john_kenyon:mlc:au at: 5-Oct-2001 12:46


All, Sorry for the large post. With everyone using different text editors with syntax highlighting I though this may come in useful. Just add the words 'op! 'action! etc to your vanilla syntax file and it will search and replace with the actual words split by a separator. Comments, improvements, complete rewrites appreciated :) (watch out for any lines >80 chars which may have wrapped) Cheers, John REBOL [ Title: "Syntax generator" Date: 5-Oct-2001 File: %syntax-gen.r Author: "John Kenyon" email: [johnkenyon--iname--com] Version: "0.1" Purpose: { Generic syntax file generator for Rebol Uses template format for syntax files Grabs words using a modifed version of 'help } History: { 0.1 5-Oct-2001 "First attempt at a more generic Rebol syntax generator" } Instructions: { Take a syntax file for your favourite editor Add 'op! 'action! 'datatype! 'native! 'string! 'function! 'view 'none to sensible positions in the syntax file Run this code and select the syntax file - it will replace all of the occurances with rebol words Separator is the string to place between each word (defaults to newline) Re-run for each new version of Rebol (and whenver you add new definitions to your user.r) Tested with core and view - should work with command } ] categories: [ 'op! 'action! 'datatype! 'native! 'string! 'function! ] find-by-type: func [ search-type ] [ list-words: copy "" word: search-type types: copy [] attrs: second system/words if all [word? :word not value? :word] [word: mold :word] if any [string? :word all [word? :word datatype? get :word]] [ foreach value first system/words [ if all [not unset? first attrs any [ all [string? :word find value word] all [not string? :word datatype? get :word (get :word) = type? first attrs] ] ] [ append types value ] attrs: next attrs ] sort types if not empty? types [ foreach item types [append list-words join item separator ] ] list-words: head remove back tail list-words ] return list-words ] if error? try [ view? ] [ view?: false ] either view? [ in-file: request-file/title/filter "Location of Rebol syntax file" "Open" "*" in-file: to-file first in-file view layout [ label "Separator between words - default newline" separator: field button "OK" [unview] ] separator: separator/data ] [ in-file: to-file ask "Please enter full path to template file: " separator: ask "Separator between words - default newline: " ] if equal? separator "" [ separator: newline ] template: read in-file foreach word-type categories [ replace/all template to-string join "'" word-type find-by-type word-type ] either view? [ view-words: copy "" foreach word system/view/vid/vid-words [ append view-words join word separator ] replace/all template "'view" view-words ] [ replace/all template "'view" "" ] replace/all template "'none" "none" either view? [ out-file: request-file/title/filter "Location to save Rebol syntax file" "Save" "*.syn" if not none? out-file [ write first out-file template ] ][ write to-file ask "Save as ... eg /c/Program Files/TextPad 4/Samples/rebol.syn > " template ]

 [2/2] from: ammoncooke::yahoo::com at: 4-Oct-2001 22:20


Thanks!! that will be helpful. ;D Ammon ----- Original Message ----- From: <[john_kenyon--mlc--com--au]> To: <[rebol-list--rebol--com]> Sent: Thursday, October 04, 2001 7:46 PM Subject: [REBOL] Syntax highlighting
> All, > > Sorry for the large post. > > With everyone using different text editors with syntax highlighting I
though this may come in useful.
> Just add the words 'op! 'action! etc to your vanilla syntax file and it
will search and
> replace with the actual words split by a separator. > Comments, improvements, complete rewrites appreciated :)
<<quoted lines omitted: 15>>
> History: { > 0.1 5-Oct-2001 "First attempt at a more generic Rebol syntax
generator"
> } > Instructions: { > Take a syntax file for your favourite editor > Add 'op! 'action! 'datatype! 'native! 'string! 'function! 'view
'none
> to sensible positions in the syntax file > Run this code and select the syntax file - it will replace all of
the
> occurances with rebol words > Separator is the string to place between each word (defaults to
newline)
> Re-run for each new version of Rebol (and whenver you add new > definitions to your user.r)
<<quoted lines omitted: 21>>
> all [string? :word find value word] > all [not string? :word datatype? get :word (get :word)
= type? first attrs]
> ] > ] [
<<quoted lines omitted: 15>>
> either view? [ > in-file: request-file/title/filter "Location of Rebol syntax file"
Open "*"

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted