![]() Problem: In Ruby we can define a nested module/class the safe way (in the sense, if the parent module does not exist, it will define it: module M module N end end If M already exists, we can also write: module M::N; end With the later notation, the tag generated by etags will be M::N. When browsing the code, using xref-find-definitions when the point is on N, will not be able to find the definition of N because the implicit tag name is M::N. This is the same problem with nested classes or even some rare allowed definitions like explicitely defining a module/class from the global namespace: class ::A; end Solution: We need to give an explicit tag name. To achieve this, on module/class definition we truncate the name to the last found column. * lib-src/etags.c (Ruby_functions): Support "::" in module definitions. * test/manual/etags/README: Update instructions. * test/manual/etags/ruby-src/test1.ru: Add identifiers with "::". * test/manual/etags/CTAGS.good: * test/manual/etags/CTAGS.good_crlf: * test/manual/etags/CTAGS.good_update: * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/ETAGS.good_7: Adapt expected results to the change. (Bug#77421) Copyright-paperwork-exempt: yes |
||
---|---|---|
.. | ||
asset-directory-tool.c | ||
be_resources.cc | ||
ChangeLog.1 | ||
COPYING | ||
ebrowse.c | ||
emacsclient.c | ||
etags.c | ||
hexl.c | ||
make-docfile.c | ||
make-fingerprint.c | ||
Makefile.in | ||
movemail.c | ||
ntlib.c | ||
ntlib.h | ||
pop.c | ||
pop.h | ||
rcs2log | ||
README | ||
seccomp-filter.c | ||
update-game-score.c |
This directory contains the source code for the architecture-dependent files that go in ${archlibdir}. At present, these are mostly utility programs used by GNU Emacs.