[gedit] Add externaltool linkparser for bash



commit ebff58df226747e202680ce1ad5ba9fb2a62e57c
Author: Paolo Borelli <pborelli gnome org>
Date:   Mon Jan 4 12:33:58 2010 +0100

    Add externaltool linkparser for bash

 plugins/externaltools/tools/linkparsing.py      |    9 +++++++++
 plugins/externaltools/tools/linkparsing_test.py |    9 ++++++++-
 2 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/plugins/externaltools/tools/linkparsing.py b/plugins/externaltools/tools/linkparsing.py
index 46a38d6..27b9ba8 100644
--- a/plugins/externaltools/tools/linkparsing.py
+++ b/plugins/externaltools/tools/linkparsing.py
@@ -63,6 +63,7 @@ class LinkParser:
         self.add_regexp(REGEXP_STANDARD)
         self.add_regexp(REGEXP_PYTHON)
         self.add_regexp(REGEXP_VALAC)
+        self.add_regexp(REGEXP_BASH)
         self.add_regexp(REGEXP_RUBY)
         self.add_regexp(REGEXP_PERL)
         self.add_regexp(REGEXP_MCS)
@@ -169,6 +170,14 @@ REGEXP_PYTHON = r"""
     (?P<ln> \d+ )
 ),"""
 
+# python 'test.sh: line 5:'
+REGEXP_BASH = r"""
+^(?P<lnk>
+    (?P<pth> .* )
+    \:\sline\s
+    (?P<ln> \d+ )
+)\:"""
+
 # valac 'Test.vala:13.1-13.3: ...'
 REGEXP_VALAC = r"""
 ^(?P<lnk>
diff --git a/plugins/externaltools/tools/linkparsing_test.py b/plugins/externaltools/tools/linkparsing_test.py
index 4ab2a96..609e3b2 100644
--- a/plugins/externaltools/tools/linkparsing_test.py
+++ b/plugins/externaltools/tools/linkparsing_test.py
@@ -96,6 +96,14 @@ ValueError: invalid literal for int() with base 10: 'xxx'
         self.assert_link(lnk, "test.py", 10)
         self.assert_link_text(line, lnk, '"test.py", line 10')
 
+    def test_parse_bash_one_line(self):
+        line = "test.sh: line 5: gerp: command not found"
+        links = self.p.parse(line)
+        self.assert_link_count(links, 1)
+        lnk = links[0]
+        self.assert_link(lnk, "test.sh", 5)
+        self.assert_link_text(line, lnk, 'test.sh: line 5')
+
     def test_parse_javac_one_line(self):
         line = "/tmp/Test.java:10: incompatible types"
         links = self.p.parse(line)
@@ -131,7 +139,6 @@ test.rb:5: undefined method `fake_method' for main:Object (NoMethodError)
         self.assert_link(lnk, "test.rb", 3)
         self.assert_link_text(output, lnk, 'test.rb:3')
 
-
     def test_parse_scalac_one_line(self):
         line = "Test.scala:7: error: not found: value fakeMethod"
         links = self.p.parse(line)



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