texmacs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Texmacs-dev] tab-stops; progress


From: Sam Liddicott
Subject: Re: [Texmacs-dev] tab-stops; progress
Date: Sat, 21 Aug 2010 10:23:00 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.9pre) Gecko/20100820 Lanikai/3.1.3pre

After looking at the source and thinking, I think the best way to implement tab-stops is with the resize primitive; instead of l+2cm, a variant like m%8spc+2fn, meaning from origin rounded up to the next 8spc value plus 2fn. The origin would probably be the left margin.

I'll see if I can hack it in.

Sam

On 21/08/10 09:36, Sam Liddicott wrote:
I made some progress with tab-stops using these macros which descended the document tree counting characters as it went; however although it worked for simple strings and <nf-tab> nodes, it started to fail badly with weird errors. Debugging (which has been added below) shows that nf-line-render which calls nf-line-concat starts finding nodes like "with" and "locus" - clearly I didn't want to see those, I just want to get the rendered strings so that I can count the characters.

I'm wondering if implementation of tab-stops should go in the C code just above the syntax highlighting level, but maybe someone has one last hint here?

<assign|nf-tab-stop|8>

<assign|nf-tab|<macro|<resize|<with|mode|math|\<mapsto\>>|||<merge|l+|<minus|<value|nf-tab-stop>|<mod|<value|nf-len>|<value|nf-tab-stop>>>|spc>|>>>


<assign|nf-line-string|<macro|x|[STRING:(<value|nf-len>)=<arg|x><assign|nf-len|<plus|<value|nf-len>|<length|<arg|x>>>>;<value|nf-len>]>>

<assign|nf-line-concat|<macro|x|<with|end|<get-arity|<arg|x>>|i|0|<if|<greater|<value|end>|0>|[CONCAT;<while|<less|<value|i>|<value|end>>|[i=<value|i>\<less\><value|end>]{{{<get-label|<look-up|<arg|x>|<value|i>>>}}}<nf-render-tags|<look-up|<arg|x>|<value|i>>><assign|i|<plus|<value|i>|1>>>;EC]|\<less\>\<less\><get-label|<arg|x>>\<gtr\>\<gtr\><arg|x>>>>>

<assign|nf-render-tags|<macro|x|<case|<equal|<get-label|<arg|x>>|string>|<nf-line-string|<arg|x>>|<equal|<get-label|<arg|x>>|concat>|XXXX<nf-line-concat|<arg|x>>|{<get-label|<arg|x>>}<arg|x>>>>

<assign|itemly|<macro|x|<item><assign|the-label|<value|the-chunk-label>
<localize|line> <item-nr>><with|nf-len|0|<arg|x>>>>
--
[FSF
            Associate Member #2325]
_______________________________________________ Texmacs-dev mailing list address@hidden http://lists.gnu.org/mailman/listinfo/texmacs-dev


--
[FSF
          Associate Member #2325]

reply via email to

[Prev in Thread] Current Thread [Next in Thread]