Re: [NTG-context] Mark IV Syntax highlighting support
Renaud Aubin wrote: Hi folks ! I have just finished a first draft of pret-xml.lua: - I need to improve its coverage (html); - DTD declaration is not yet managed; - I do nothing about re-indentation since I prefer to format my xml sample by myself (by hand or using xmllint); - That's my first try to lua/luatex (after several months of Java...) so my definitions (esp. for functions) is not clean at all (you have been warned); I have done it the trial/error way without much design reflexion just for fun (I'm on vacation)... I'm not sure it will be reusable... Take all your test files and please report issues (or give me advices)! ;) syntax highlighting is kind of tricky esp since we can have either correct syntax or faulty (can be educational) this is why the pretty printers work in a rather dumb non validating mode; however, in mkii we also have parser based variants for xml pretty printing in mkiv i will provide only a few pretty printers, i.e. the ones needed for my manuals; these will be organized under pre-* in addition i will provide a user installable variant but i need to think about it a bit; we also need more verbose names then so that there can be multiple pretty printers per file type; (i will also make a basic configureable mapper but that's for later) so, we can have both validating and non validating pretty printing and multiple variants in any case .. keep making and testing them .. i'll try to cook up the plug in mechanism and naming scheme asap Hans ps. dtd declaration etc ... i shall provide a pretty printer based on th ebuild in xml parser (kind of like what we have in mkii); of course this leaves along non validated coloring - Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl - ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Mark IV Syntax highlighting support
Hi folks ! I have just finished a first draft of pret-xml.lua: - I need to improve its coverage (html); - DTD declaration is not yet managed; - I do nothing about re-indentation since I prefer to format my xml sample by myself (by hand or using xmllint); - That's my first try to lua/luatex (after several months of Java...) so my definitions (esp. for functions) is not clean at all (you have been warned); I have done it the trial/error way without much design reflexion just for fun (I'm on vacation)... I'm not sure it will be reusable... Take all your test files and please report issues (or give me advices)! ;) Thank you Matthijs! Regards, Renaud Matthijs Kooijman a écrit : Hey all, ./tex/texmf-context/tex/context/base/verb-.*\.lua ! Actually, in newer versions (since a month or so), that's pret-*.lua. Where to start with this topic (current state in Mark IV, roadmap, ...) ? I've been struggling with this a bit as well lately and found there was next to no documentation. I've managed to create my own pretty printer, and tried to update the docs a bit. See [1] and [2] on the wiki for more info. There are still some details I don't get (why is there a line() hook, what is all this nesting stuff, etc.), so feel free to find out more and improve these pages! Gr. Matthijs [1]: http://wiki.contextgarden.net/Verbatim_text#Your_own_formatter [2]: http://wiki.contextgarden.net/Custom_pretty_printer ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ if not modules then modules = { } end modules ['pret-xml'] = { version = 1.001, comment = from pret-.*\.lua, http://wiki.contextgarden.net/Verbatim_text#Your_own_formatter and http://wiki.contextgarden.net/Custom_pretty_printer;, author= Renaud AUBIN, copyright = to be defined, license = to be defined } local utf = unicode.utf8 local utfcharacters, utfvalues = string.utfcharacters, string.utfvalues local utfbyte, utffind = utf.byte, utf.find local byte, sub, find, gfind, match = string.byte, string.sub, string.find, string.gfind, string.match local texsprint, texwrite = tex.sprint, tex.write local ctxcatcodes = tex.ctxcatcodes local change_state, finish_state = buffers.change_state, buffers.finish_state buffers.visualizers.xml = buffers.visualizers.xml or { } buffers.visualizers.xml.identifiers = buffers.visualizers.xml.identifiers or { } incomment = false local colors = { prettyone, prettytwo, prettythree, prettyfour, prettyfive, prettysix, prettyseven } local states = { ['namespace']= 1, ['element'] = 2, ['attrname'] = 3, ['attrvalue']= 4, ['prolog'] = 5, ['comment'] = 6, ['pi'] = 7 } local function flush_text(str) for c in utfcharacters(str) do if c == then texsprint(ctxcatcodes,\\obs) else texwrite(c) end end end local function process_attribute(str) local name, value, state = , , 0 buffers.currentcolors = colors local name,value = match(str,^(.-)=(\.-\)$) state = change_state(states['attrname'], state) flush_text(name) state = finish_state(state) texwrite(=) state = change_state(states['attrvalue'], state) flush_text(value) state = finish_state(state) end local function process_namespace(str) local state = 0 buffers.currentcolors = colors state = change_state(states['namespace'], state) flush_text(str) state = finish_state(state) texwrite(:) end local function process_element(str) local state = 0 buffers.currentcolors = colors state = change_state(states['element'], state) flush_text(str) state = finish_state(state) end local function process_comment(str) local state = 0 buffers.currentcolors = colors state = change_state(states['comment'], state) flush_text(str) state = finish_state(state) end function process_tag(str) local name, value, state = , , 0 buffers.currentcolors = colors if match(str,^%?xml.-%?$) then local prolog = match(str,^%?xml(.-)%?$) state = change_state(states['pi'], state) texwrite(?) state = finish_state(state) state = change_state(states['prolog'], state) texwrite(xml) state = finish_state(state) repeat prolog=recursive_processing(prolog) until prolog==nil state = change_state(states['pi'], state) texwrite(?) state = finish_state(state) elseif
Re: [NTG-context] Mark IV Syntax highlighting support
Hey all, ./tex/texmf-context/tex/context/base/verb-.*\.lua ! Actually, in newer versions (since a month or so), that's pret-*.lua. Where to start with this topic (current state in Mark IV, roadmap, ...) ? I've been struggling with this a bit as well lately and found there was next to no documentation. I've managed to create my own pretty printer, and tried to update the docs a bit. See [1] and [2] on the wiki for more info. There are still some details I don't get (why is there a line() hook, what is all this nesting stuff, etc.), so feel free to find out more and improve these pages! Gr. Matthijs [1]: http://wiki.contextgarden.net/Verbatim_text#Your_own_formatter [2]: http://wiki.contextgarden.net/Custom_pretty_printer signature.asc Description: Digital signature ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
[NTG-context] Mark IV Syntax highlighting support
Hi folks, Where to start with this topic (current state in Mark IV, roadmap, ...) ? Renaud ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___
Re: [NTG-context] Mark IV Syntax highlighting support
./tex/texmf-context/tex/context/base/verb-.*\.lua ! Renaud Aubin a écrit : Hi folks, Where to start with this topic (current state in Mark IV, roadmap, ...) ? Renaud ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___ ___ 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 : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___