From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id cJTtFz65jWCCCQEAgWs5BA (envelope-from ) for ; Sat, 01 May 2021 22:25:34 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id uIKJEz65jWBIFQAAB5/wlQ (envelope-from ) for ; Sat, 01 May 2021 20:25:34 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id EA14C1908F for ; Sat, 1 May 2021 22:25:33 +0200 (CEST) Received: from localhost ([::1]:53976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lcwBB-0000g7-1Y for larch@yhetil.org; Sat, 01 May 2021 16:25:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60852) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcwB0-0000fw-0M for guix-devel@gnu.org; Sat, 01 May 2021 16:25:22 -0400 Received: from minsky.hcoop.net ([104.248.1.95]:57112) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lcwAy-0005P5-0R for guix-devel@gnu.org; Sat, 01 May 2021 16:25:21 -0400 Received: from marsh.hcoop.net ([45.55.52.66]) by minsky.hcoop.net with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lcwAw-0003K5-F9; Sat, 01 May 2021 16:25:18 -0400 Date: Sat, 1 May 2021 16:25:18 -0400 (EDT) From: Jack Hill X-X-Sender: jackhill@marsh.hcoop.net To: Efraim Flashner Subject: Re: Neovim plugin/addon packaging In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="925712948-1863307568-1619900718=:2109" Received-SPF: pass client-ip=104.248.1.95; envelope-from=jackhill@jackhill.us; helo=minsky.hcoop.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1619900734; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=Unwwyl+b+ohJ2a8YmvLiqNGZJ1awUN9vQyc24uT5k3w=; b=ZLnGLg9Szt9WFIetPvSXEwloLRQn0eSbYT28/dB9V00FjU4RxstzuctJXS6jfNNkZva4Vs 3qRGijxNYh6Qj+FRhL+b84BTD7QpJZcau1Cr5mtqlDKkuRSpLHFuyGNf0qh2Mr80U3M3ip cGcRN/LbrGVaBzW5Po5f/YCDt/5OvSkrBzde67cOwHNBf/LzEm+oc4ilwssKJDtX5+H1Iz xNtuOsaLfF+2M6WsAHH92FQ4WUTYEkgRN4fn0GK63Hz9UCi5utOzzabCD0aM5tDkvHzVrb mikuqlT1GGvLhfTCbSWfUpx5cCjIFIBqrRpGDY8Tb5qw8fFsbKHRPO0RfOnUEw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1619900734; a=rsa-sha256; cv=none; b=DBxbkqbVPMlm+xzWgurrFKixOnN/qsR6zQqlQvFSMHhnqlPXyDRvvwIdr2SY4EsuYVNN40 iOjFAWH+lF0S8oceVR5//8pUBU/EvHIVi3mHYcBZa2jzXM9WkLGFj43X9sluhtAmRStL+m EHaVmNtcLD2HIbN/UWkATfj+2lGaMAvwAJ4DeKXigltrgU7Hluqou2+r9znlfLAMvhOhs9 wTwG/z77kzWrAko+iDLa+2LJ9HA3x9HJcxR8UBXNRSkGjb2FyZOiy0jNJbjmO4EhdWRNby DXdB1q1WYgm04z9GlWydxzBozRMxK2pISWwDmOxBOrKQtEW83Amj4WuAAVyx6w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.46 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: EA14C1908F X-Spam-Score: -1.46 X-Migadu-Scanner: scn0.migadu.com X-TUID: mvOCoLsIbD6f This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --925712948-1863307568-1619900718=:2109 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8BIT Thanks for your reply. On Fri, 30 Apr 2021, Efraim Flashner wrote: > On Fri, Apr 30, 2021 at 01:03:23AM -0400, Jack Hill wrote: >> Greetings Guix, >> >> I'd like to improve the experience of installing Neovim plugins/add-ons with >> Guix. I've submitted #48112 [0] which adds an XDG_DATA_DIRS search path so >> nvim (the Neovim executable name) will be able to find plugins installed by >> guix at …/share/nvim/site. > > I guess my first question is does it work? I think I first tried > something similar for vim with 'share/vim/vimfiles' but it didn't > actually work for vim. Yes, it does work! I tested it with neovim-syntastic and a local neovim-fugitive package both with a guix environment and manually manipulated environment variables. A difference between Neovim and Vim is that Neovim supports XDG_DATA_DIRS (and XDG_CONFIG_DIRS) as real search paths while the environment variables for Vim are single directories (compare `:help runtimepath` in the two editors). >> Currently, we only have one such package, neovim-syntastic. I'd like to add >> more. Many plugins are compatible with both vim and nvim. However, they >> search for plugins at different paths. Therefore, the vim-syntastic and >> neovim-syntastic packages, which use the copy-build-system, differ only in >> the destination directories of the install-plan (and changing "Vim" to >> "Neovim" in the description). >> >> My initial inclination is to remove the duplication of maintaining two >> install-plans (and other arguments) by creating a procedure that would take >> as input a Vim package that uses copy-build-system and output a Neovim >> package with the install-plan re-written. >> >> Perhaps that solution would be overwrought. How would you recommend handling >> this situation? > > My first idea would be to have the one package install the files into > both directories and combine them, but I feel like it falls apart when > it comes to searching for vim/neovim plugins and naming. One package > with two names? Call it vim-neovim-syntastic? > > If vim/neovim move more apart and actually need separate plugins in the > future then I guess it would make more sense to have two actual packages > that can be installed by name (vim-foo and neovim-foo). A combined package is an interesting suggestion. However, I share the concern about searching for packages. Having packages that are compatible with both editors use one naming scheme and ones that are compatible with only one use a different naming scheme seems like a implementation detail that would be better not to expose to me. I drew inspiration for creating the Neovim package variants with a procedure from the package-for-python2 and sbcl-package->ecl-package. Of course those procedures have build system support and aren't depending on a common usage pattern of copy-build-system. Is it time a a vim-build-system? Perhaps not, but I'm still not sure what the right way forward is. Best, Jack --925712948-1863307568-1619900718=:2109--