From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <8533-1383720139-778543@sneakemail.com> References: <8533-1383720139-778543@sneakemail.com> Date: Wed, 6 Nov 2013 17:56:11 +1100 Message-ID: From: Bruce Ellis To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=047d7bfced1e00175004ea7ca5df Subject: Re: [9fans] Help with plumbing rules Topicbox-Message-UUID: 89c65d6c-ead8-11e9-9d60-3106f5b1d025 --047d7bfced1e00175004ea7ca5df Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable The diagnostic on the last line should be: Unexpected End of File at EOF That's the memorable diagnostic from a CDC compiler. brucee On 6 November 2013 17:42, <6o205zd02@sneakemail.com> wrote: > I'm trying to create a plumbing rule so that I can right-click (in acme) > on the diagnostic messages produced by Python and get the file opened wit= h > the appropriate line select. Unfortunately my attempts so far have faile= d. > > Question 1: Is there an easy way to "debug" plumbing rules (I'm using > plan9port on linux)? > > I started by looking at a couple of existing rules from $PLAN9/plumb/basi= c: > > # existing files tagged by line number:columnumber or > linenumber.columnumber, twice, go to editor > type is text > data matches '([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a-zA-Z=C3= =82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])':$ > twocolonaddr,$twocolonaddr > arg isfile $1 > data set $file > attr add addr=3D$2-#1+#$3,$4-#1+#$5 > plumb to edit > plumb client $editor > > # existing files tagged by line number:columnumber or > linenumber.columnumber, twice, go to editor > type is text > data matches '([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a-zA-Z=C3= =82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])':$ > twocolonaddr > arg isfile $1 > data set $file > attr add addr=3D$2-#1+#$3 > plumb to edit > plumb client $editor > > After reading http://plan9.bell-labs.com/sys/doc/plumb.pdf, I think I > understand these rules except for the line > data set $file > > Question2: What does that line do? What is $file? > > Since the Python 2.7 diagnostic messages look like > > File "/home/pcanning/src/python/test/test_cli.py", line 91, in > test_interactive_mode > > I created the following rule that attempts to match the test from "File" > to "line 91", and send plumbing message to edit (acme). > > # Python (2.7) error messages > type is text > data matches File "([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a-zA= -Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])", line > ([0-9]+) > arg isfile $1 > data set $1 > attr add addr=3D$2 > plumb to edit > plumb client $editor > > Question 3: How do I change this rule to make acme open > /home/pcanning/src/python/test/test_cli.py and select line 91 (in the > example above)? > > thanks, > Peter Canning > > PS: Once I get this working I'll tackle the diagnostic messages I get whe= n > compiling Java code using maven (not my choice). They look like > [error] /home/pcanning/src/java/test/PerfTest.java:[66,1] error: reached > end of file while parsing > > > --047d7bfced1e00175004ea7ca5df Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The diagnostic on the last line should be:

<= div>Unexpected End of File at EOF

That's the m= emorable diagnostic from a CDC compiler.

brucee


On 6 No= vember 2013 17:42, <6o205zd02@sneakemail.com> wrote:=
I'm trying to create a plumbing rule so that I can right-click (in acme= ) on the diagnostic messages produced by Python and get the file opened wit= h the appropriate line select. =C2=A0Unfortunately my attempts so far have = failed.

Question 1: Is there an easy way to "debug" plumbing rules (I'= ;m using plan9port on linux)?

I started by looking at a couple of existing rules from $PLAN9/plumb/basic:=

# existing files tagged by line number:columnumber or linenumber.columnumbe= r, twice, go to editor
type is text
data matches '([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])':$twocolonaddr,$t= wocolonaddr
arg isfile $1
data set $file
attr add addr=3D$2-#1+#$3,$4-#1+#$5
plumb to edit
plumb client $editor

# existing files tagged by line number:columnumber or linenumber.columnumbe= r, twice, go to editor
type is text
data matches '([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])':$twocolonaddr arg isfile $1
data set $file
attr add addr=3D$2-#1+#$3
plumb to edit
plumb client $editor

After reading http://plan9.bell-labs.com/sys/doc/plumb.pdf, I th= ink I understand these rules except for the line
data set $file

Question2: What does that line do? =C2=A0What is $file?

Since the Python 2.7 diagnostic messages look like

File "/home/pcanning/src/python/test/test_cli.py", line 91= , in test_interactive_mode

I created the following rule that attempts to match the test from "Fil= e" to "line 91", and send plumbing message to edit (acme).
# Python (2.7) error messages
type is text
data matches File "([.a-zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-]*[a= -zA-Z=C3=82=C2=A1-=C3=AF=C2=BF=C2=BF0-9_/\-])", line ([0-9]+) arg isfile $1
data set $1
attr add addr=3D$2
plumb to edit
plumb client $editor

Question 3: How do I change this rule to make acme open /home/pcanning/src/= python/test/test_cli.py and select line 91 (in the example above)?
=C2=A0 =C2=A0 thanks,
=C2=A0 =C2=A0 Peter Canning

PS: Once I get this working I'll tackle the diagnostic messages I get w= hen compiling Java code using maven (not my choice). =C2=A0They look like [error] /home/pcanning/src/java/test/PerfTest.java:[66,1] error: rea= ched end of file while parsing



--047d7bfced1e00175004ea7ca5df--