From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?=C3=93scar_Fuentes?= Newsgroups: gmane.emacs.help Subject: Re: Navigating an enormous code base Date: Thu, 28 Apr 2022 18:10:35 +0200 Message-ID: <87wnf9b344.fsf@telefonica.net> References: <877d7aq5qy.fsf@cock.li> <87bkwmo56v.fsf@zoho.eu> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33224"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:bNHPOx0hCBKKXWnQ5rLdEGAPrFg= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Apr 28 18:11:31 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nk6jr-0008TQ-8r for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 28 Apr 2022 18:11:31 +0200 Original-Received: from localhost ([::1]:38606 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nk6jq-0008KQ-Cn for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 28 Apr 2022 12:11:30 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49386) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nk6j8-0008Id-9u for help-gnu-emacs@gnu.org; Thu, 28 Apr 2022 12:10:47 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:51796) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nk6j6-0006X4-HQ for help-gnu-emacs@gnu.org; Thu, 28 Apr 2022 12:10:46 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1nk6j5-0007Nn-17 for help-gnu-emacs@gnu.org; Thu, 28 Apr 2022 18:10:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:137068 Archived-At: John Yates writes: >> Why don't you give it a whirl and see whether this suits you? > > Because it misses the point. I am not looking > to navigate by tags, but rather by filename. In your original message you mention millions of lines of code but not how many files. Here, finding a file on the LLVM repo (> 100k files) works well enough (for me) with ido+flx. flx is quite cpu-intensive and the UI feels a bit sluggish, specially the first time the command is invoked, but combining ido with some other filtering method (flex, for instance) should improve that facet while at the same time providing a reasonably effective method of finding the file of interest. The list of candidate paths is generated by `git ls' (which takes about two seconds here, but you could use a finer method that concentrates on your areas of interest.) Then finding something like llvm/include/llvm/Support/X86TargetParser.h `isxtph' or `x8tph' provides that file as the first candidate. An effective usage requires knowledge about the directory structure, understanding the filtering algorithm and some practice.