From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: John Yates Newsgroups: gmane.emacs.devel Subject: Can project.el or projectile.el help? How about completion? Date: Sun, 31 Oct 2021 14:48:24 -0400 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19186"; mail-complaints-to="usenet@ciao.gmane.io" To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Oct 31 19:50:46 2021 Return-path: Envelope-to: ged-emacs-devel@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 1mhFun-0004nT-IZ for ged-emacs-devel@m.gmane-mx.org; Sun, 31 Oct 2021 19:50:45 +0100 Original-Received: from localhost ([::1]:41944 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhFul-0006NR-VR for ged-emacs-devel@m.gmane-mx.org; Sun, 31 Oct 2021 14:50:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39666) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhFso-0004Qb-0K for emacs-devel@gnu.org; Sun, 31 Oct 2021 14:48:42 -0400 Original-Received: from mail-ed1-f43.google.com ([209.85.208.43]:39472) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhFsk-0007Ol-Ul for emacs-devel@gnu.org; Sun, 31 Oct 2021 14:48:40 -0400 Original-Received: by mail-ed1-f43.google.com with SMTP id r12so57432512edt.6 for ; Sun, 31 Oct 2021 11:48:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LhJy17YxF0u7cSFvX2SFWcm6OJjReD2C2rPTTTPVv20=; b=RxudtqX3x9aM7qT/h9wm+lM8RsldeS79WStjrW0aKBRbNR0rdnuMJ/ljlTVi40jaF+ aJgO3wFlqfVH0T2ZxQ8VydrmC6ax8KvcUjuKyV1vthgRBRCYkLGGjVWfM3u5RlaMnpI4 RmH/69sDo+s39V+D3ipX9iyplNnre1DZa6jcmseLtTuEwD5W5VjXanogyKEbXVQn83St 6HhmwDBqhnGpRhPKx4/czRjoTvH//rb70vJl/gamPtJCiFeiQbE7CEIga8zHAT1+R7cL TY5Dsiv4488vUfek9Qy+ILBWKmKTeUbpJbsg6AYc4WCv6ZW708lkM9515keaFHZId0Hz LfZQ== X-Gm-Message-State: AOAM531F675PAwUbkgKCGk44mHX1IIUzhsGgYgYspFVHj4575ChpaMp+ 9fj5WHUS1Cc+uniYeOOy2gSMvEmCx1ja5PshEjiUOtPk X-Google-Smtp-Source: ABdhPJyAAFX0J3Ka2MH71x4Pz33lp+Go5MlDYDkO3XVTFG9y4i116hiPXRG/cXNnhwi9SVUGaUjIB91e4Xk9WSA+55M= X-Received: by 2002:a50:d885:: with SMTP id p5mr34748159edj.255.1635706116121; Sun, 31 Oct 2021 11:48:36 -0700 (PDT) Received-SPF: pass client-ip=209.85.208.43; envelope-from=john.yates.sheets@gmail.com; helo=mail-ed1-f43.google.com X-Spam_score_int: -13 X-Spam_score: -1.4 X-Spam_bar: - X-Spam_report: (-1.4 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:278325 Archived-At: I work on a large corporate mono-repo in which numerous filenames occur repeatedly. Further, various directories above such duplicates also have duplicated names. Currently I use a self-built emacs tool to index this space: * Build a map from a unique filename to a set of repo-relative directory paths to files with that name * Compute a disambiguation string for completing reads for unique filenames this string is empty; otherwise: * Repeatedly strip identical leading directories * Repeatedly strip identical trailing directories I would like to replace this tool with something like project.el or projectile.el. So the first question is does either package do anything intelligent when filenames are duplicated? If so, what? Then, is there any completion package that can present the candidates in an order reflecting their distance from the current buffer's working directory? My thought is to sort identically named candidates by their repo-relative paths. A focused, incrementally widening presentation of candidates would show initially those in or below the current working directory. Each time instructed to widen the presentation it would advance up the parent directory chain, showing candidates in or below that directory. /john