Re: [9fans] Help with plumbing rules
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
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.
[9fans] Help with plumbing rules
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
Re: [9fans] Help with plumbing rules
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