Re: [9fans] Help with plumbing rules

2013-11-06 Thread Alexander Sychev
Hi,

Question 1:
a flag '-d' can be useful a bit.

Question 2:
$file is filled when you check arg isfile $1

Question 3:
I think, the problem is you have to match exact full string is sent to
plumber.

This variant is working:

type is text
data matches 'File ([.a-zA-Z¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-]+), line
([0-9]+)[ ,0-9A-Za-z_]*'
arg isfile $1
data set $file
attr add addr=$2
plumb to edit
plumb client $editor



On Wed, Nov 6, 2013 at 9:42 AM, 6o205z...@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 with
 the appropriate line select.  Unfortunately 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.columnumber, twice, go to editor
 type is text
 data matches '([.a-zA-Z¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-])':$
 twocolonaddr,$twocolonaddr
 arg isfile $1
 data set $file
 attr add addr=$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¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-])':$
 twocolonaddr
 arg isfile $1
 data set $file
 attr add addr=$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¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-]), line
 ([0-9]+)
 arg isfile $1
 data set $1
 attr add addr=$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 when
 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





-- 
Best regards,
  santucco


Re: [9fans] Help with plumbing rules

2013-11-06 Thread Mark van Atten
 PS: Once I get this working I'll tackle the diagnostic messages I get when
 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

For lacheck, a Latex checker, I have this in my profile to put its
messages in the right form:

# for lacheck: format output for acme
fn lacheck $* {builtin lacheck $* | 9 sed 's/(.*).*line ([0-9]+):
(.*)/\1:\2:\3/'}

Can you do something similar?

Mark.



Re: [9fans] Help with plumbing rules

2013-11-05 Thread Bruce Ellis
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, 6o205z...@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 with
 the appropriate line select.  Unfortunately 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.columnumber, twice, go to editor
 type is text
 data matches '([.a-zA-Z¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-])':$
 twocolonaddr,$twocolonaddr
 arg isfile $1
 data set $file
 attr add addr=$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¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-])':$
 twocolonaddr
 arg isfile $1
 data set $file
 attr add addr=$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¡-￿0-9_/\-]*[a-zA-Z¡-￿0-9_/\-]), line
 ([0-9]+)
 arg isfile $1
 data set $1
 attr add addr=$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 when
 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