[racket] Anyone familiar with mercurial? Add syntax coloring to github?
I spent more time on this, including trying to recognzie all the
variations of numbers like these:
(values
;; #b
#b1.1
#b-1.1
#b1e1
#b1/1
#b0/1
#b1e-1
#b101
#b2 ;highlight as error
;; #d
#d-1.23
#d1.123
#d1e3
#d1e-22
#d1/2
#d-1/2
#d1
#d-1
#dZ ;highlight as error
;; No # reader prefix -- same as #d
-1.23
1.123
1e3
1e-22
1/2
-1/2
1
-1
;; #e
#e-1.23
#e1.123
#e1e3
#e1e-22
#e1
#e-1
#e1/2
#e-1/2
#eZ ;highlight as error
;; #i always float
#i-1.23
#i1.123
#i1e3
#i1e-22
#i1/2
#i-1/2
#i1
#i-1
#iZ ;highlight as error
;; #o
#o777.777
#o-777.777
#o777e777
#o777e-777
#o3/7
#o-3/7
#o777
#o-777
#08 ;highlight as error
;; #x
#x-f.f
#xf.f
#x-f
#xf
#xG ;highlight as error
)
In this way (Python):
## numbers: Keep in mind Racket reader hash prefixes,
## which can denote the base or the type. These don't map
## neatly onto pygment token types; some judgment calls
## here. Note that none of these regexps attempt to
## exclude identifiers that start with a number, such as a
## variable named "100-Continue".
# #b
(r'#b[-+]?[01]+\.[01]+', Number.Float),
(r'#b[01]+e[-+]?[01]+', Number.Float),
(r'#b[-+]?[01]/[01]+', Number),
(r'#b[-+]?[01]+', Number.Integer),
(r'#b\S*', Error),
# #d OR no hash prefix
(r'(#d)?[-+]?\d+\.\d+', Number.Float),
(r'(#d)?\d+e[-+]?\d+', Number.Float),
(r'(#d)?[-+]?\d+/\d+', Number),
(r'(#d)?[-+]?\d+', Number.Integer),
(r'#d\S*', Error),
# #e
(r'#e[-+]?\d+\.\d+', Number.Float),
(r'#e\d+e[-+]?\d+', Number.Float),
(r'#e[-+]?\d+/\d+', Number),
(r'#e[-+]?\d+', Number),
(r'#e\S*', Error),
# #i is always inexact-real, i.e. float
(r'#i[-+]?\d+\.\d+', Number.Float),
(r'#i\d+e[-+]?\d+', Number.Float),
(r'#i[-+]?\d+/\d+', Number.Float),
(r'#i[-+]?\d+', Number.Float),
(r'#i\S*', Error),
# #o
(r'#o[-+]?[0-7]+\.[0-7]+', Number.Oct),
(r'#o[0-7]+e[-+]?[0-7]+', Number.Oct),
(r'#o[-+]?[0-7]+/[0-7]+', Number.Oct),
(r'#o[-+]?[0-7]+', Number.Oct),
(r'#o\S*', Error),
# #x
(r'#x[-+]?[0-9a-fA-F]+\.[0-9a-fA-F]+', Number.Hex),
# the exponent variation (e.g. #x1e1) is N/A
(r'#x[-+]?[0-9a-fA-F]+/[0-9a-fA-F]+', Number.Hex),
(r'#x[-+]?[0-9a-fA-F]+', Number.Hex),
(r'#x\S*', Error),
Talk about brain burn. :)
Also, Jens pointed out I should also handle curly braces. () = [] = {}
https://bitbucket.org/greghendershott/pygments-main
On Sun, Aug 12, 2012 at 6:50 PM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> Wonderful! This will make the github experience much nicer.
>
> On Sun, Aug 12, 2012 at 6:36 PM, Greg Hendershott
> <greghendershott at gmail.com> wrote:
>> So I followed up on this.
>>
>> https://bitbucket.org/greghendershott/pygments-main/changeset/240e51e2da13b079482f6b61c215280224f89f06
>>
>> ~~~~~
>> Add RacketLexer.
>>
>> Previously Racket files were handled by SchemeLexer. Instead, use a
>> proper RacketLexer, which handles Racket more appropriately:
>>
>> 1. Treat square brackets like parentheses.
>> 2. Expanded list of keywords.
>> 3. Different file extensions, MIME types, etc.
>> 4. Handle #:keyword arguments.
>> 5. Handle more number literals (e.g. #xFF, #o777, 2e2, #e232, etc.).
>> 6. Handle #| ... |# multiline comments (although NOT nested).
>> ~~~~~
>>
>> Before I give them a pull request, I wanted to give folks here a
>> chance to critique it (or even flatly veto it).
>>
>> Again, the goal is that eventually this would flow through to GitHub,
>> and improve the readability of Racket repos and gists.
>>
>> On Thu, Jun 2, 2011 at 12:49 PM, John Clements
>> <clements at brinckerhoff.org> wrote:
>>>
>>> On Jun 2, 2011, at 6:43 AM, Eli Barzilay wrote:
>>>
>>>> An hour ago, Vincent St-Amour wrote:
>>>>> At Thu, 2 Jun 2011 06:30:00 -0400,
>>>>> Greg Hendershott wrote:
>>>>>> aliases = ['scheme', 'scm', 'ss', 'racket', 'rkt']
>>>>>
>>>>> rktl would probably fit in there too.
>>>>
>>>> (This is just in case someone takes it on more seriously: IIRC,
>>>> another issue with pygments was either ignoring square brackets, or
>>>> highlighting them as errors.)
>>>
>>> Gosh, sounds complicated. I don't think any of us could handle that!
>>>
>>>
>>> John (goad, goad) Clements
>>>
>>>
>>> _________________________________________________
>>> For list-related administrative tasks:
>>> http://lists.racket-lang.org/listinfo/users
>> ____________________
>> Racket Users list:
>> http://lists.racket-lang.org/users
>
>
>
> --
> sam th
> samth at ccs.neu.edu