unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: chen bin <chenbin.sh@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: [ELPA] New package: mctags
Date: Fri, 13 Oct 2017 23:24:32 +1100	[thread overview]
Message-ID: <CAAE-R+-hJNEt9yFbr0i4gFJZ277kP+DqhqFCSTwj--mLDmPGrQ@mail.gmail.com> (raw)
In-Reply-To: <83zi8vjuxd.fsf@gnu.org>

In web front end development,there could be dozens of candidates. For
example, in ReactJS development,  `props.method1` could be defined in
parent or sibling components. Each component corresponds to a
independent JS files. So you might need filter a lot of candidates by
js file name. Advanced filter is must have feature.

In web front end development, new wheels are keep being invented. For
example, consider css,  We got
css/less/sass/scss/postcss/styled-component, six planguages. So ctags
should be very generic to extract tags from these
languages/frameworks.

`mctags` is targeting on web developers. It has different road map
from `etags.el`. `mctags` tries to fuzzy match as many candidates as
possible without considering precision at first stage. Then filter out
the noise in second stage.

I tested with my current project. Using same TAGS file, `mctags` will
find more candidates than `xref`. Web developers need extra "noise"
because our projects are usually mixture of at least four syntax (css,
html, js, plus a language at server side,  C#/Java/PHP ...).. Actual
tag definition could exist anywhere.

My impression is `etags.el` comply with the convention of C/Perl
developers who might not understand what web developers really want.

On Fri, Oct 13, 2017 at 7:47 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: chen bin <chenbin.sh@gmail.com>
>> Date: Fri, 13 Oct 2017 12:39:54 +1100
>> Cc: emacs-devel@gnu.org
>>
>> >> - If there are multiple matches, you can filter the candidates in candidate window.
>> >
>> > I think xref-find-definitions, when it uses the etags back-end,
>> > already supports that, doesn't it?
>> I've been using xref for some time. As I can see, it just gives your
>> the list of matches in a buffer. It can't filter further with pattern
>> or negative pattern or combination of patterns.
>
> The list is usually very short (most of the time, only one candidate),
> so the need for sophisticated filtering is quite low.
>
>> But it's totally fine if you use mctags only for code navigation and
>> leave TAGS creation to other solutions.
>>
>> Please note mctags RESPECTS the existing tags file created by other
>> solutions. mctags will NOT override existing TAGS created by other
>> programs (Makefile, for example) without user's confirmation.
>
> I understand.  It just seemed to me that, if we ignore for the moment
> the features for creating/updating TAGS, what's left is very little,
> and its contribution to the existing functionality is minor.  It
> doesn't seem to justify a new package.
>
> Maybe a better way forward is to extend etags.el with a few optional
> features.
>
> Anyway, these are just my opinions.  I'd be interested to hear from
> others.
>
> Thanks.



-- 
help me, help you.



  reply	other threads:[~2017-10-13 12:24 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-12 11:05 [ELPA] New package: mctags Chen Bin
2017-10-12 12:11 ` Eli Zaretskii
2017-10-12 13:24   ` chen bin
2017-10-12 16:13     ` Eli Zaretskii
2017-10-13  1:39       ` chen bin
2017-10-13  8:47         ` Eli Zaretskii
2017-10-13 12:24           ` chen bin [this message]
2017-10-13 12:33           ` Dmitry Gutov
     [not found]             ` <CAAE-R+-Xxm3x5_u9jMO243SqfwaYfQs6XC=p1T0XQaAeFgy+dg@mail.gmail.com>
2017-10-14  0:52               ` Fwd: " chen bin
2017-10-13 13:42         ` Stefan Monnier
2017-10-21 19:59           ` Tom Tromey
2017-10-21 20:43             ` Stefan Monnier
2017-10-25 15:11               ` Tom Tromey
2017-11-12  3:19             ` Tom Tromey
  -- strict thread matches above, loose matches on Subject: below --
2017-10-07  1:39 Chen Bin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAAE-R+-hJNEt9yFbr0i4gFJZ277kP+DqhqFCSTwj--mLDmPGrQ@mail.gmail.com \
    --to=chenbin.sh@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).