On Tue, Dec 29, 2009 at 12:03 PM, Erik Margraf <erik.marg...@googlemail.com> wrote: > Hello all, > I wanted to typeset some Python code and stumbled across the > pretty printing feature of ConTeXt. So far, I think I've learned the > following: > > -- There's no pretty printer for python. Neither in MKII nor in MKIV > -- The wiki has an example implementation for a python pretty printer > for MKII, i guess. > > I decided to play a little bit with pretty printing (maybe implement a > Python pretty printer on my own) and failed at the start ;-) > I tried the following: > -- Copied the filename pret-lua.lua to pret-py.lua > -- Added a print statement to verify that the respective lua > code (pret-lua.lua, pret-py.lua) is actually called. > When I ran context on the file below, I could see that "pret-lua.lua" > had been called, but "pret-py.lua" had not. I guess, I did wrong something > very fundamental. > > Thanks in advance for any hint > > Erik Margraf First, I have made some changes to pret-py.lua
< if not modules then modules = { } end modules ['pret-lua'] = { --- > if not modules then modules = { } end modules ['pret-py'] = { 17c17 < local visualizer = buffers.newvisualizer("lua") --- > local visualizer = buffers.newvisualizer("py") 105c105 < local function flush_lua_word(state, word) --- > local function flush_python_word(state, word) 196c196 < state = flush_lua_word(state,word) --- > state = flush_python_word(state,word) 234c234 < state = flush_lua_word(state,word) --- > state = flush_python_word(state,word) 242c242 < state = flush_lua_word(state,word) --- > state = flush_python_word(state,word) but *no* other changes related to python's grammar Next I believe that PYTHON is better than PY \setupcolors[state=start] \definecolor[colorprettyone] [r=.9, g=.0, b=.0] % red \definecolor[colorprettytwo] [r=.0, g=.8, b=.0] % green \definecolor[colorprettythree][r=.0, g=.0, b=.9] % blue \definecolor[colorprettyfour] [s=0.60] % gray \definecolor[colorprettyfive] [orange] \definepalet[colorpretty] [prettyone=colorprettyone, prettytwo=colorprettytwo, prettythree=colorprettythree, prettyfour=colorprettyfour, prettyfive=colorprettyfive] % Python listings \definepalet [PYcolorpretty] [colorpretty] \setuptyping [PYTHON] [bodyfont=10pt,option=color] \installprettytype[PYTHON] [PY] \definetyping [PYTHON] [option=PYTHON] \starttext \section{Python sample} \startPYTHON #!/usr/local/bin/python import os.path, sys # Just a comment foo = os.environ.get('FOO') bar = os.environ.get('BAR') if foo: foo = os.path.realpath(foobar) elif bar: bar = os.path.realpath(bar) else: print >> sys.stderr, ''' FOO or BAR need to be set! ''' \stopPYTHON \stoptext It seems the option=color is setted by default to TEX \setvalue{\??tp:\c!option:\v!color }{\setupprettiesintype{TEX}% \let\obeycharacters\setupprettytype \let\obeytabs\ignoretabs} -- luigi ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________