From c9b41205b2e69becf242d4f6875526c8004239c5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 25 Apr 2021 18:33:23 -0400 Subject: [PATCH] Fix #4925: defining lexical variables error in 28+ --- core/autoload/projects.el | 13 ++++++++----- core/core-projects.el | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/core/autoload/projects.el b/core/autoload/projects.el index 726ac6593..ffe395688 100644 --- a/core/autoload/projects.el +++ b/core/autoload/projects.el @@ -1,10 +1,13 @@ ;;; core/autoload/projects.el -*- lexical-binding: t; -*- -(defvar projectile-project-root) -(defvar projectile-enable-caching) -(defvar projectile-require-project-root) - -;;;###autoload (autoload 'projectile-relevant-known-projects "projectile") +;; HACK We forward declare these variables because they are let-bound in a +;; number of places with no guarantee that they've been defined yet (i.e. +;; that `projectile' is loaded). If a variable is defined with `defvar' +;; while it is lexically bound, you get "Defining as dynamic an already +;; lexical var" errors in Emacs 28+). +;;;###autoload (defvar projectile-project-root nil) +;;;###autoload (defvar projectile-enable-caching doom-interactive-p) +;;;###autoload (defvar projectile-require-project-root 'prompt) ;;;###autodef (cl-defun set-project-type! (name &key predicate compile run test configure dir) diff --git a/core/core-projects.el b/core/core-projects.el index a6fd5d5cb..f2f1aebf4 100644 --- a/core/core-projects.el +++ b/core/core-projects.el @@ -23,7 +23,8 @@ debian, and derivatives). On most it's 'fd'.") :commands (projectile-project-root projectile-project-name projectile-project-p - projectile-locate-dominating-file) + projectile-locate-dominating-file + projectile-relevant-known-projects) :init (setq projectile-cache-file (concat doom-cache-dir "projectile.cache") ;; Auto-discovery is slow to do by default. Better to update the list