]> git.eshelyaron.com Git - emacs.git/commitdiff
Extend etags Ruby support for accessors
authorEli Zaretskii <eliz@gnu.org>
Sat, 6 Feb 2016 09:08:20 +0000 (11:08 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 6 Feb 2016 09:08:20 +0000 (11:08 +0200)
* lib-src/etags.c (Ruby_functions): Support accessors defined with
parentheses.  (Bug#22563)

* test/etags/ruby-src/test1.ru (A::B): Add tests for accessors
defined with parentheses.
* test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2:
* test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4:
* test/etags/ETAGS.good_5:
* test/etags/ETAGS.good_6:
* test/etags/CTAGS.good: Adapt to changes in Ruby tests.

lib-src/etags.c
test/etags/CTAGS.good
test/etags/ETAGS.good_1
test/etags/ETAGS.good_2
test/etags/ETAGS.good_3
test/etags/ETAGS.good_4
test/etags/ETAGS.good_5
test/etags/ETAGS.good_6
test/etags/ruby-src/test1.ru

index 0f5bfa3a951b64be5699d99ad4ff0f1bbc37029b..182cb4cc876e468c1214f40dfa03ada004206c07 100644 (file)
@@ -4730,8 +4730,12 @@ Ruby_functions (FILE *inf)
              if (reader || writer || alias)
                {
                  do {
-                   char *np = cp;
+                   char *np;
 
+                   cp = skip_spaces (cp);
+                   if (*cp == '(')
+                     cp = skip_spaces (cp + 1);
+                   np = cp;
                    cp = skip_name (cp);
                    if (*np != ':')
                      continue;
index 58b1db6b0a329fbf1b9646afef3c8f4c346a3a41..ebde715272aa945c9ebdb308c6ee3f41d86c85ab 100644 (file)
@@ -454,7 +454,7 @@ Condition_Variable/t        ada-src/2ataspri.ads    /^   type Condition_Variable is privat
 Condition_Variable/t   ada-src/2ataspri.ads    /^   type Condition_Variable is$/
 Configure      pyt-src/server.py       /^class Configure(Frame, ControlEdit):$/
 ConfirmQuit    pyt-src/server.py       /^def ConfirmQuit(frame, context):$/
-Constant       ruby-src/test1.ru       38
+Constant       ruby-src/test1.ru       42
 ControlEdit    pyt-src/server.py       /^class ControlEdit(Frame):$/
 Controls       pyt-src/server.py       /^class Controls:$/
 CopyTextString pas-src/common.pas      /^function CopyTextString;(*($/
@@ -2555,6 +2555,7 @@ bar       c-src/c.c       /^void bar() {while(0) {}}$/
 bar    c.c     143
 bar    c-src/h.h       19
 bar    cp-src/x.cc     /^XX::bar()$/
+bar1   ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
 bar=   ruby-src/test1.ru       /^    attr_writer :bar,$/
 bas_syn        prol-src/natded.prolog  /^bas_syn(n(_)).$/
 base   c-src/emacs/src/lisp.h  2188
@@ -3008,6 +3009,8 @@ foo       f-src/entry.strange     /^       character*(*) function foo()$/
 foo    php-src/ptest.php       /^foo()$/
 foo    ruby-src/test1.ru       /^    attr_reader :foo$/
 foo!   ruby-src/test1.ru       /^    def foo!$/
+foo1   ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
+foo2   ruby-src/test1.ru       /^    alias_method ( :foo2, #cmmt$/
 foobar c-src/c.c       /^int foobar() {;}$/
 foobar c.c     /^extern void foobar (void) __attribute__ ((section /
 foobar2        c-src/h.h       20
@@ -3880,7 +3883,8 @@ questo    ../c/c.web      34
 quiettest      make-src/Makefile       /^quiettest:$/
 quit_char      c-src/emacs/src/keyboard.c      192
 quit_throw_to_read_char        c-src/emacs/src/keyboard.c      /^quit_throw_to_read_char (bool from_signal)$/
-qux    ruby-src/test1.ru       /^    alias_method :qux, :tee, attr_accessor :bogus$/
+qux    ruby-src/test1.ru       /^    alias_method :qux, :tee, attr_accessor(:bogus)/
+qux1   ruby-src/test1.ru       /^                :qux1)$/
 qux=   ruby-src/test1.ru       /^      def qux=(tee)$/
 r0     c-src/sysdep.h  54
 r1     c-src/sysdep.h  55
index 90bbe774f0582420e40f8e672ca7be452c7c7723..d2550863428add2c1f15f16df08dbe940f5f8e69 100644 (file)
@@ -3061,7 +3061,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3084,9 +3084,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index d774bb1b1902ff3781146373c8ee21c9569142f2..9eb1d4297c863ab603d708163360dbcc65d83b53 100644 (file)
@@ -3631,7 +3631,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3654,9 +3654,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index e3855a593092f1e907e687cd92c88c8e10cf2707..1f5a34272e3dc7322018361a1e2cfbf1f1d9efde 100644 (file)
@@ -3408,7 +3408,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3431,9 +3431,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index dbae59bd59e940906bffa5ea4d67769c09c52ac9..b8a3d9de6dbc0843c01a7736e2e2fe14038c7bcb 100644 (file)
@@ -3225,7 +3225,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -3248,9 +3248,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 9ea77977ab6a28cbe3aeb1f9c89fa9b8bbfb9239..9e3b258eabcc4ddb3acfaacc8b760daeda2833fa 100644 (file)
@@ -4142,7 +4142,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -4165,9 +4165,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 7420a41b10866e9e5070aa0954f760c038bbeb0f..f5e0ad4407fa9894198ba72d1cf8e84e220616ad 100644 (file)
@@ -4142,7 +4142,7 @@ module ModuleExample\7f1,0
     def module_instance_method\7f46,1051
     def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
 \f
-ruby-src/test1.ru,785
+ruby-src/test1.ru,935
 class A\7f1,0
  def a(\7f2,8
  def b(\7f5,38
@@ -4165,9 +4165,13 @@ module A\7f9,57
     attr_accessor :tee\7ftee\ 131,382
     attr_accessor :tee\7ftee=\ 131,382
     alias_method :qux,\7fqux\ 132,405
-    alias_method :xyz,\7fxyz\ 133,455
-                 :tee ; attr_reader :subtle\7fsubtle\ 134,478
-A::Constant \7fConstant\ 138,533
+    alias_method :xyz,\7fxyz\ 133,456
+                 :tee ; attr_reader :subtle\7fsubtle\ 134,479
+    attr_reader(:foo1,\7ffoo1\ 135,523
+    attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                :qux1)\7fqux1\ 136,563
+    alias_method ( :foo2,\7ffoo2\ 137,586
+A::Constant \7fConstant\ 142,655
 \f
 tex-src/testenv.tex,52
 \newcommand{\nm}\7f\nm\ 14,77
index 93888c1040b6eaf0a6e76d072e8b080e6ca811a0..eafaec6248b2a7d7dadc4b6870a31ac36497be2f 100644 (file)
@@ -29,9 +29,13 @@ module A
                 :baz,
                 :more
     attr_accessor :tee
-    alias_method :qux, :tee, attr_accessor :bogus
+    alias_method :qux, :tee, attr_accessor(:bogus)
     alias_method :xyz,
                  :tee ; attr_reader :subtle
+    attr_reader(:foo1, :bar1, # comment
+                :qux1)
+    alias_method ( :foo2, #cmmt
+                   :bar2)
   end
 end