GNU bug report logs -
#22116
[PATCH] * etags.c: Add support for Ruby language.
Previous Next
Reported by: lu4nx <lx <at> shellcodes.org>
Date: Tue, 8 Dec 2015 16:35:02 UTC
Severity: normal
Tags: patch
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 22116 in the body.
You can then email your comments to 22116 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22116
; Package
emacs
.
(Tue, 08 Dec 2015 16:35:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
lu4nx <lx <at> shellcodes.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 08 Dec 2015 16:35:04 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
---
lib-src/etags.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 8b980d3..7c8c503 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -364,6 +364,7 @@ static void PHP_functions (FILE *);
static void PS_functions (FILE *);
static void Prolog_functions (FILE *);
static void Python_functions (FILE *);
+static void Ruby_functions (FILE *);
static void Scheme_functions (FILE *);
static void TeX_commands (FILE *);
static void Texinfo_nodes (FILE *);
@@ -722,6 +723,12 @@ static const char Python_help [] =
"In Python code, 'def' or 'class' at the beginning of a line\n\
generate a tag.";
+static const char *Ruby_suffixes [] =
+ { "rb", NULL };
+static const char Ruby_help [] =
+ "In Ruby code, 'def' or 'class' at the beginning of a line\n\
+generate a tag.";
+
/* Can't do the `SCM' or `scm' prefix with a version number. */
static const char *Scheme_suffixes [] =
{ "oak", "sch", "scheme", "SCM", "scm", "SM", "sm", "ss", "t", NULL };
@@ -800,6 +807,7 @@ static language lang_names [] =
{ "proc", no_lang_help, plain_C_entries, plain_C_suffixes },
{ "prolog", Prolog_help, Prolog_functions, Prolog_suffixes },
{ "python", Python_help, Python_functions, Python_suffixes },
+ { "ruby", Ruby_help, Ruby_functions, Ruby_suffixes },
{ "scheme", Scheme_help, Scheme_functions, Scheme_suffixes },
{ "tex", TeX_help, TeX_commands, TeX_suffixes },
{ "texinfo", Texinfo_help, Texinfo_nodes, Texinfo_suffixes },
@@ -4532,6 +4540,31 @@ Python_functions (FILE *inf)
}
}
+/*
+ * Ruby support
+ * Idea by Xi Lu <lx <at> shellcodes.org> (2015)
+ */
+static void
+Ruby_functions (FILE *inf)
+{
+ char *cp = NULL;
+
+ LOOP_ON_INPUT_LINES (inf, lb, cp)
+ {
+ cp = skip_spaces (cp);
+ if (LOOKING_AT (cp, "def") || LOOKING_AT (cp, "class"))
+ {
+ char *name = cp;
+
+ while (!notinname (*cp))
+ cp++;
+
+ make_tag(name, cp -name, true,
+ lb.buffer, cp - lb.buffer + 1, lineno, linecharno);
+ }
+ }
+}
+
/*
* PHP support
@@ -4954,7 +4987,22 @@ Lua_functions (FILE *inf)
(void)LOOKING_AT (bp, "local"); /* skip possible "local" */
if (LOOKING_AT (bp, "function"))
- get_tag (bp, NULL);
+ {
+ char *tag_name, *tp_dot, *tp_colon;
+
+ get_tag (bp, &tag_name);
+ /* If the tag ends with ".foo" or ":foo", make an additional tag for
+ "foo". */
+ tp_dot = strrchr (tag_name, '.');
+ tp_colon = strrchr (tag_name, ':');
+ if (tp_dot || tp_colon)
+ {
+ char *p = tp_dot > tp_colon ? tp_dot : tp_colon;
+ int len_add = p - tag_name + 1;
+
+ get_tag (bp + len_add, NULL);
+ }
+ }
}
}
--
2.5.0
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22116
; Package
emacs
.
(Tue, 08 Dec 2015 17:34:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 22116 <at> debbugs.gnu.org (full text, mbox):
> From: lu4nx <lx <at> shellcodes.org>
> Date: Tue, 8 Dec 2015 18:56:04 +0800
> Cc: lu4nx <lx <at> shellcodes.org>
>
> +/*
> + * Ruby support
Thanks.
> @@ -4954,7 +4987,22 @@ Lua_functions (FILE *inf)
> (void)LOOKING_AT (bp, "local"); /* skip possible "local" */
>
> if (LOOKING_AT (bp, "function"))
> - get_tag (bp, NULL);
> + {
> + char *tag_name, *tp_dot, *tp_colon;
> +
> + get_tag (bp, &tag_name);
> + /* If the tag ends with ".foo" or ":foo", make an additional tag for
> + "foo". */
> + tp_dot = strrchr (tag_name, '.');
> + tp_colon = strrchr (tag_name, ':');
> + if (tp_dot || tp_colon)
> + {
> + char *p = tp_dot > tp_colon ? tp_dot : tp_colon;
> + int len_add = p - tag_name + 1;
> +
> + get_tag (bp + len_add, NULL);
> + }
> + }
> }
> }
This part is certainly not yours, and it has nothing to do with Ruby,
AFAICT. Right?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#22116
; Package
emacs
.
(Tue, 08 Dec 2015 18:05:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 22116 <at> debbugs.gnu.org (full text, mbox):
yes,it has nothing to do with Ruby, thanks ;-)
在 2015年12月9日,上午1:33,Eli Zaretskii <eliz <at> gnu.org> 写道:
>> From: lu4nx <lx <at> shellcodes.org>
>> Date: Tue, 8 Dec 2015 18:56:04 +0800
>> Cc: lu4nx <lx <at> shellcodes.org>
>>
>> +/*
>> + * Ruby support
>
> Thanks.
>
>> @@ -4954,7 +4987,22 @@ Lua_functions (FILE *inf)
>> (void)LOOKING_AT (bp, "local"); /* skip possible "local" */
>>
>> if (LOOKING_AT (bp, "function"))
>> - get_tag (bp, NULL);
>> + {
>> + char *tag_name, *tp_dot, *tp_colon;
>> +
>> + get_tag (bp, &tag_name);
>> + /* If the tag ends with ".foo" or ":foo", make an additional tag for
>> + "foo". */
>> + tp_dot = strrchr (tag_name, '.');
>> + tp_colon = strrchr (tag_name, ':');
>> + if (tp_dot || tp_colon)
>> + {
>> + char *p = tp_dot > tp_colon ? tp_dot : tp_colon;
>> + int len_add = p - tag_name + 1;
>> +
>> + get_tag (bp + len_add, NULL);
>> + }
>> + }
>> }
>> }
>
> This part is certainly not yours, and it has nothing to do with Ruby,
> AFAICT. Right?
>
>
>
Reply sent
to
Dmitry Gutov <dgutov <at> yandex.ru>
:
You have taken responsibility.
(Sat, 26 Dec 2015 04:37:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
lu4nx <lx <at> shellcodes.org>
:
bug acknowledged by developer.
(Sat, 26 Dec 2015 04:37:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 22116-done <at> debbugs.gnu.org (full text, mbox):
On 12/08/2015 07:43 PM, lu4nx wrote:
> yes,it has nothing to do with Ruby, thanks ;-)
Since this has been applied, closing.
Thanks again.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 23 Jan 2016 12:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 210 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.