From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id mLzGDCFMDmaL+wAAqHPOHw:P1 (envelope-from ) for ; Thu, 04 Apr 2024 08:43:45 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id mLzGDCFMDmaL+wAAqHPOHw (envelope-from ) for ; Thu, 04 Apr 2024 08:43:45 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=ZbCU4LmB; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1712213025; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=nUT1IU4UILnGmoeRNnYoRHNTil/UvGpFLgkYlZOPCKo=; b=CBXdDT3OkUiKR59Q1k/GD2HXBEJs5wKyXiFGlesFVmnjeRwZJrWznQJgEyHNcEkJSi0dbh W48PghSfqM//qUJkqkjx/kNpaTzhGtWlGH/INUfHv2BtBi9NZPsWCoZQ/whWkY+lbffQwL 5fX5UtO2RKHj7dn4mFUZYEg0vy846Rp9j/973hJH74qpoe5pssA/H1kdu6k9AMC+ic7wjh ggfNtVZy+HH6NTzYtHWDqUkG0Rb16vEs2IKEJ53TpHplM7GOrTPLzK5tNC9aZ9MJtqvu6w KQpitE5bUo+y5pcGXrEX1FV6a6VD9pywAxkz91nHJve4eREHM7pF6p042e9/Eg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=ZbCU4LmB; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1712213025; a=rsa-sha256; cv=none; b=uSxjXg6WPxYVRG+pjFrpiC2zIJjV9NUJ1dhpjQjNCrJCbZtdHcBadGeACKF8MCsaNlZWtz TMDNwrQBTjeHYdp86RA/ZKdh4E0P5/MkU2dym9pGmrGkiKOr4nseA/0iFKmumXqq4Zgkse 8ODkwJew1VmvqLmj2ScBMuKXiREGldOuSClMxAoZ744pZLmsc/hQSnbh26fYlhwE5a8r7L w8eWsiTXuvl1E3SM9yuBWhfWrPAKeR2JgUnv/e5Lsz3YM3scXpmOXidH1FM4XIx/k+yX2N g45kKV90eEaJxAiX4oqAZLmKoeVFnUpBJ5+WO2EgEEQUKw/YOMPAwM9/4nvtWQ== 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 EAEBE753D7 for ; Thu, 04 Apr 2024 08:43:44 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rsGoZ-0002nM-ME; Thu, 04 Apr 2024 02:43:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rsGoY-0002nB-24 for guix-devel@gnu.org; Thu, 04 Apr 2024 02:43:10 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rsGoV-0007fm-CI for guix-devel@gnu.org; Thu, 04 Apr 2024 02:43:09 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-4162bac95d4so48235e9.2 for ; Wed, 03 Apr 2024 23:43:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712212985; x=1712817785; darn=gnu.org; h=content-disposition:mime-version:mail-followup-to:message-id :subject:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=nUT1IU4UILnGmoeRNnYoRHNTil/UvGpFLgkYlZOPCKo=; b=ZbCU4LmBpZedVtClRmYzZN+5SKvJhZE1RJMyFAHASWaVkka/2dbomUv6Jkmm9QWKOj +0c3VZueP7zxdLErTEGksLAJkPJi76tVmFL2ZeCArWm2x9RuuGnKS+j0H/Fw0vFgXmia IrdP9n09JzqTekbwRYnuSC7r1NEfttKgl1LjhnQHJMWV71qKtE4TSZCNgPqX92CMCY6a 1ig3/9sRM0ViaurTzdaNkTJILxfheEx3VqJRxFZFMFalUbEezRk5H5X9J2kqAJrvUgUx Yrjd7MvbyPValquC7M4EEcMSQAwB40BnZJZk1Wkg1bHhLP2L1AMz6rskUqn35tblvgSc zJcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712212985; x=1712817785; h=content-disposition:mime-version:mail-followup-to:message-id :subject:to:from:date:sender:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=nUT1IU4UILnGmoeRNnYoRHNTil/UvGpFLgkYlZOPCKo=; b=X6yx+oCY9YW1bBI1E/JlSxuC0GEKGhi9UeMMv9pYsFzP9N2Ea/FFQsv1O1YuJS/vqK KqHDe3IVWxgVVSK4dYpimFPq4DVx2Y7rpU4E3ofYA2SIEB3ALtce5YbjlEVcDyaqPlf1 8j/7qL/UL23eQVutkNQw8ez4yTah7iQ+SJ05vwn02KoVu8TuxyTPOAZcw0I85CPnBYbw 6KdqQAQVadNgBJLRmqKLHkm97uHp/wOyR08m8nLlRfuGrgNLaYdjX8iv1/5ST4ZGQCJv 6uXpkfbfWnTrZ7ZlEnzGN1H0+Szo/3ucML8GMAGcZFz7WNm1S/96u1AaREkuTkv4QhH4 uqgA== X-Gm-Message-State: AOJu0YxDloPkZ9UhBuQP90PuWZyXEyVAJ4g8uLVu2M5Ulxc13f7MWB3t n9nzGF9e8vtwVPeS1WcKqGSllK3dJLk6e9ajDJ2c8wmZJTRjlVtOjsG3bKkiQkI= X-Google-Smtp-Source: AGHT+IFHKvjGqVK8aPCbU/DkkE6Lo9vpzAy2SJvM3Ic8/pA7XHyC/x293bIFESqMGlh19sqjAhqt0w== X-Received: by 2002:a5d:55c1:0:b0:33d:c6dd:b4b6 with SMTP id i1-20020a5d55c1000000b0033dc6ddb4b6mr1054575wrw.0.1712212984848; Wed, 03 Apr 2024 23:43:04 -0700 (PDT) Received: from localhost ([141.226.11.200]) by smtp.gmail.com with ESMTPSA id p8-20020a056000018800b003437a76565asm5404955wrx.25.2024.04.03.23.43.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Apr 2024 23:43:04 -0700 (PDT) Date: Thu, 4 Apr 2024 09:43:02 +0300 From: Efraim Flashner To: guix-devel@gnu.org, Christina O'Donnell , Steve George Subject: Vim helper config for Guix Message-ID: Mail-Followup-To: guix-devel@gnu.org, Christina O'Donnell , Steve George MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="/8a2XZNsqMbWXPxF" Content-Disposition: inline X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=efraim.flashner@gmail.com; helo=mail-wm1-x334.google.com 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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -6.96 X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -6.96 X-Migadu-Queue-Id: EAEBE753D7 X-TUID: ntgtPKQhNwMD --/8a2XZNsqMbWXPxF Content-Type: multipart/mixed; boundary="TQUa1yzcaDLjtEsP" Content-Disposition: inline --TQUa1yzcaDLjtEsP Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I've been meaning to upstream my guix.git specific vimrc config file, like the .dir-locals.el in the repo. It is architected so that it also works in git worktrees. jump-to-definition works with C+] If you have guix.vim installed then :Guix defaults to using =2E/pre-inst-env guix from that worktree. opening new files ignores the .go files when tab completing Most of the line indentation works pretty well. Vim, by default for lisp languages, hardcodes an indent as 2 spaces, and I haven't gotten around to learning how to write an indentexpr to make it work for guix. As a result some of the indentation is close but not quite correct, and there are some cases where the indentation is straight up ignored. I think that's the case inside g-expressions, but I don't remember. I've also included a link to my vimrc=C2=B9 if anyone wants to see what I have there. =C2=B9 https://git.sr.ht/~efraim/guix-config/tree/master/item/vim --=20 Efraim Flashner =D7=A8=D7=A0=D7=A9=D7=9C=D7=A4 = =D7=9D=D7=99=D7=A8=D7=A4=D7=90 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --TQUa1yzcaDLjtEsP Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="vimrc.guix" " This file is a per-project '.exrc' file. " To easily use this file to extend the global .vimrc place it in the root of " your project and then run: " ':source .exrc' from the root of your project. " Add lispwords which occur in the Guix source tree. " NB: Vim hardcodes 2 as the indentation. See get_lisp_indent in src/indent.c setlocal lispwords+=add-after setlocal lispwords+=add-before setlocal lispwords+=case setlocal lispwords+=call-with-input-file setlocal lispwords+=define setlocal lispwords+=define* setlocal lispwords+=define*-public setlocal lispwords+=define-configuration setlocal lispwords+=define-deprecated setlocal lispwords+=define-deprecated/public setlocal lispwords+=define-deprecated/public-alias setlocal lispwords+=define-gexp-compiler setlocal lispwords+=define-module setlocal lispwords+=define-public setlocal lispwords+=define-record-type setlocal lispwords+=define-record-type* setlocal lispwords+=define-syntax setlocal lispwords+=define-values setlocal lispwords+=lambda setlocal lispwords+=lambda* setlocal lispwords+=let setlocal lispwords+=let* setlocal lispwords+=let*-values setlocal lispwords+=let-syntax setlocal lispwords+=let-values setlocal lispwords+=letrec setlocal lispwords+=letrec* setlocal lispwords+=letrec-syntax setlocal lispwords+=match-lambda setlocal lispwords+=match-lambda* setlocal lispwords+=match-record setlocal lispwords+=mixed-text-file setlocal lispwords+=modify-inputs setlocal lispwords+=modify-phases setlocal lispwords+=modify-services setlocal lispwords+=parameterize setlocal lispwords+=plain-file setlocal lispwords+=program-file setlocal lispwords+=replace setlocal lispwords+=set! setlocal lispwords+=strip-keyword-arguments setlocal lispwords+=substitute* setlocal lispwords+=substitute-keyword-arguments setlocal lispwords+=syntax-rules setlocal lispwords+=unless setlocal lispwords+=when setlocal lispwords+=while setlocal lispwords+=with-directory-excursion setlocal lispwords+=with-extensions setlocal lispwords+=with-fluids setlocal lispwords+=with-imported-modules setlocal lispwords+=with-input-to-file setlocal lispwords+=with-output-to-file setlocal lispwords+=with-parameters setlocal lispwords+=wrap-program setlocal lispwords+=wrap-script " In this repository .go files are compiled guile objects, not golang. set wildignore+=*.go " This is for the tie-in with guix.vim. " TODO: guix.vim needs to correctly export autoloaded_guix. if match(&runtimepath, 'guix') != -1 let g:guix_binary = expand('%:p:h') . "/pre-inst-env guix " endif " Editorconfig.vim has been distributed with vim since 9.0.1799. if (has('syntax') && has('eval') && \ has("patch-9.0.1799") && \ filereadable('.editorconfig') && \ (match(&runtimepath, 'editorconfig') != -1)) packadd! editorconfig endif if (has("cscope") && executable('global') && executable('find')) " These two lines could go in a gtags.conf file. call setenv('GTAGSLABEL', 'pygments') silent! call system("find {gnu,guix} -name '*\.scm' -print > gtags.files") if !filereadable("GTAGS") " This is a blocking operation, but it needs to complete before " 'cscope add' is run. In addition, there needs to be a 'trigger' of " some sort to cause vim to recognize the cscope database is ready if " vim is already open. " First run can be very slow. call system("gtags") "let tags_job = job_start("gtags", {'exit_cb': execute('cscope add GTAGS $PWD -a')}) else call system('global --update') "let tags_job = job_start('global --update', {'exit_cb': execute('cscope add GTAGS $PWD -a')}) endif execute('cscope add GTAGS $PWD -a') endif " This should make sure gtags isn't still running. if and(has("cscope"), executable('global')) autocmd BufWritePost *.scm { call system('global --update') execute('cscope add GTAGS $PWD -a') } endif --TQUa1yzcaDLjtEsP-- --/8a2XZNsqMbWXPxF Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmYOS/MACgkQQarn3Mo9 g1HkXw/9Eni/4p9BmdVM6uvhiYE6ocQA+4z52ZpkWrL9KcFCfsV7zAr+94B3hvku vJVVnPC5qbHLEWElV2UsvHXIox8CF1/n+SHyCC7Jy395cc1EdYGGQHP7Yqyu6CAJ FPeEA0BltNfr2NX0yvR/vp6gIPkkOHwyGiRgCK8UYpOp+A3wK5lzq6hUMguiUb/Y uEXqrOcQBlxZc1upS0ol3k9Sds7ZsrXb43Pi7DpB92lbA64RYSWzI6wlvYGtJnf2 4BhxRU4nnCKO6e28Qmza4wE+yrYaXLOndpzMtdsancG9ntGEOas2tBquojyqGe1v j2ge0/kxbnm3cPR7t1a/cmkS+zUUPN/lSrfCkLbXZo6WopNsVWq0G/5M23XdnhVZ hQ9UXHZfnuEmzbeKzkrDKeQjdTxw57CDFVws7KSHGDiSgwmmG7fV6dMbrqUz0Y9D XXU/3ozXHsAxKSGXKvoN+Bsa525kjtRI/6T86ViV0J2WUpzR2wATT4myfmI1/Ix4 ggXeQL22Vhe3JcMo5K7OkwVqa3VooNY6Vc/cPddURtAQdlVALUmCznM3P6gO/mQA z/QxpGJ1ScC7cwanIYadk5bsOu3MII/JeN2u+Wd4lCTQ6rNJ+wlt0lhVaUq1qTza LP4KU+PhWfdmHXC0aqS6MeWwJ2JlDB8UonjazjxBqz9WxZ9AcZQ= =UMyS -----END PGP SIGNATURE----- --/8a2XZNsqMbWXPxF--