From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: John Yates Newsgroups: gmane.emacs.devel Subject: Re: From etags to ctags? Date: Fri, 6 Jun 2014 15:01:25 -0400 Message-ID: References: <20140604142339.GA27417@debian> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11c127d6fd779504fb2f7c7c X-Trace: ger.gmane.org 1402081303 965 80.91.229.3 (6 Jun 2014 19:01:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 6 Jun 2014 19:01:43 +0000 (UTC) Cc: Edward Bishop , Danil Orlov , Emacs developers To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jun 06 21:01:34 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WszOP-0007rS-Ig for ged-emacs-devel@m.gmane.org; Fri, 06 Jun 2014 21:01:33 +0200 Original-Received: from localhost ([::1]:49107 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WszOP-0000A2-1a for ged-emacs-devel@m.gmane.org; Fri, 06 Jun 2014 15:01:33 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36382) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WszOK-00008z-4E for emacs-devel@gnu.org; Fri, 06 Jun 2014 15:01:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WszOI-00028t-OH for emacs-devel@gnu.org; Fri, 06 Jun 2014 15:01:28 -0400 Original-Received: from mail-qa0-x234.google.com ([2607:f8b0:400d:c00::234]:57310) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WszOI-00028k-I3 for emacs-devel@gnu.org; Fri, 06 Jun 2014 15:01:26 -0400 Original-Received: by mail-qa0-f52.google.com with SMTP id cm18so4530733qab.25 for ; Fri, 06 Jun 2014 12:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=nqg4eH7wDH5A32FMu6oHLt8J2cVx1ZNc1gLxVbfP0ZI=; b=SCRPqTmGMoYt4mcmV4UX8ipaGHhzXN8OBJWpOo1140zgRdgeQMpl0EPIfT6+PPqfmK UooFafekIUzY07Q1KSx5x9eFkSzBL84cO3OblGX52BABL7CVfFhcHS+qYC0n1ZsTX+ED dt7MPeC9JKyXhiZNmFkTDl3JFSm0gW/DdJeAqhsC/ojcFPDZeo6SswAoK/5Pfzvo49b7 +PWxUCmLEQr+nCJwVtjF9ccMYpY2IT62corqyjj/NTsuMMYC/OvaT1rIFL8gLUOLXam9 g+InuL1u0XBjNpwSHLdSpv6NU7Bb62vhdkYutQfA8lELtE7Zv0OwLGuK7BwPLpHC35nk eHPw== X-Received: by 10.140.85.166 with SMTP id n35mr10835696qgd.67.1402081285854; Fri, 06 Jun 2014 12:01:25 -0700 (PDT) Original-Received: by 10.170.63.195 with HTTP; Fri, 6 Jun 2014 12:01:25 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: iOZfcPmYuPiSMd_Pzz1yTw6LlgQ X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400d:c00::234 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:172405 Archived-At: --001a11c127d6fd779504fb2f7c7c Content-Type: text/plain; charset=UTF-8 On Wed, Jun 4, 2014 at 3:40 PM, Stefan Monnier wrote: > > For instance Edward Bishop's vtags fork? > > I know nothing about it. If we can get its copyright cleared, then it'd > probably be a good starting point (we'd probably want to try and > integrate it more with the current tags functionality). > My reason for using vtags has never been the additional annotations. They just turned out to be an unexpected extra. The important thing about vtags is that it assumes a binary searchable external tags file and offers other UI improvements. Definitely a source of idea. /john ;; Added tags (as opposed to TAGS) functionality. ;; The code now has the ability to parse vi-style ;; tags tables generated by Exuberant Ctags. ;; By introduction of vtags-get-tagfile-header and struct tagfileinfo, we have tried ;; to make the higher-level functions tag-type agnostic and non-buffer-centric. ;; Many functions that used to assume that the TAGS file is in ;; the current buffer now take a tagfileinfo, or tfi, parameter. ;; ;; Changed the behavior of vtags-find for multiple matches. Previously the user ;; could iterate through the matches one at a time. Now the user ;; is presented with all the matches at once in a buffer, similar ;; to the way that completions, list-tags, or tags-apropos are handled. ;; Removed next-p in vtags-find-internal, etc. Now vtags-find-internal searches all tag files. ;; ;; Deprecated the tag ring in favor of placeholders. ;; Placeholders navigation is more natural, allowing forward and back, ;; similar to the way debuggers allow programmers to navigate up and down ;; a call stack, or to the way browsers allow history navigation. ;; ;; Ripped out cached completions, i.e. tags-completion-table. ;; These are not useful since they take forever to compute without a prefix ;; (and people almost never use completion without a prefix). ;; ;; Eliminated tags-file-name. Users should use vtags-table-list instead. ;; There were too many global variables tracking ;; the same or overlapping functionality. ;; ;; Eliminated select-tags-table and all other references to tags-table-set-list. ;; There may be some merit to allowing the user to select a set of tags tables ;; from a list of sets, but it seems to me that the previous implementation ;; was too complicated, too rigid, and too poorly documented, and too implicitly ;; entangled with the rest of the tags functionality to be easily salvageable. ;; See Design Notes below. ;; ;; Eliminated `tags-table-computed-list'. There is no evidence that ;; this optimization was needed. Let Emacs and the OS cache file stats ;; if needed. ;; ;; Removed 'button and 'apropos dependency, using vtags-mode instead. ;; We don't need all the features of button and apropos, and removing ;; them makes the code more portable and independent. --001a11c127d6fd779504fb2f7c7c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On W= ed, Jun 4, 2014 at 3:40 PM, Stefan Monnier <monnier@iro.umontreal.c= a> wrote:
> For instance Edward Bishop's vtag= s fork?

I know nothing about it. =C2=A0If we can get its copyright cleared, t= hen it'd
probably be a good starting point (we'd probably want to try and
integrate it more with the current tags functionality).

My reason for using vtags has never been the additional an= notations. =C2=A0They just turned out to be an unexpected extra. =C2=A0The = important thing about vtags is that it assumes a binary searchable external= tags file and offers other UI improvements. =C2=A0Definitely a source of i= dea.

/john

;; Added tags (as o= pposed to TAGS) functionality.
;; The code now has the ability to= parse vi-style
;; tags tables generated by Exuberant Ctags.
;; By introduction of vtags-get-tagfile-header and struct tagfileinfo,= we have tried
;; to make the higher-level functions tag-type agn= ostic and non-buffer-centric.=C2=A0
;; Many functions that used t= o assume that the TAGS file is in
;; the current buffer now take a tagfileinfo, or tfi, parameter.=C2=A0=
;;
;; Changed the behavior of vtags-find for multiple = matches. Previously the user
;; could iterate through the matches= one at a time. Now the user
;; is presented with all the matches at once in a buffer, similar=C2= =A0
;; to the way that completions, list-tags, or tags-apropos ar= e handled.
;; Removed next-p in vtags-find-internal, etc. Now vta= gs-find-internal searches all tag files.
;;
;; Deprecated the tag ring in favor of placeholders.
;; Placeholders navigation is more natural, allowing forward and back= ,=C2=A0
;; similar to the way debuggers allow programmers to navi= gate up and down=C2=A0
;; a call stack, or to the way browsers allow history navigation.
;;
;; Ripped out cached completions, i.e. tags-completion-t= able.
;; These are not useful since they take forever to compute = without a prefix
;; (and people almost never use completion without a prefix).
;;
;; Eliminated tags-file-name. Users should use vtags-table-l= ist instead.
;; There were too many global variables tracking
;; the same or overlapping functionality.
;;
;; El= iminated select-tags-table and all other references to tags-table-set-list.=
;; There may be some merit to allowing the user to select a set = of tags tables
;; from a list of sets, but it seems to me that the previous implement= ation
;; was too complicated, too rigid, and too poorly documente= d, and too implicitly
;; entangled with the rest of the tags func= tionality to be easily salvageable.
;; See Design Notes below.
;;
;; Eliminated `tags-= table-computed-list'. There is no evidence that
;; this optim= ization was needed. =C2=A0Let Emacs and the OS cache file stats
;= ; if needed.
;;=C2=A0
;; Removed 'button and 'apropos dependency,= using vtags-mode instead.
;; We don't need all the features = of button and apropos, and removing
;; them makes the code more p= ortable and independent.

--001a11c127d6fd779504fb2f7c7c--