Re: [NTG-context] Mark IV Syntax highlighting support

2009-07-10 Thread Hans Hagen

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

2009-07-01 Thread Renaud Aubin

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

2009-06-30 Thread Matthijs Kooijman
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

2009-06-29 Thread Renaud Aubin

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

2009-06-29 Thread Renaud Aubin

./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
___