Ask questionsUnable to completing-read CMake preset the second time
projectile-configure-project, when run second time in a project, has some way (a prefix arg?) to select a (different) CMake preset again.
Configure command: cmake . --preset <previously-selected-preset> prompt in minibuffer without completion for presets.
s-p C, select one of the presets
s-p Cagain, wishing to select the other preset
With a workaround for https://github.com/bbatsov/projectile/issues/1673 applied:
(defun dotfiles--projectile--cmake-all-command-presets (command-type) "Get CMake user and system COMMAND-TYPE presets." (projectile-flatten (mapcar (lambda (filename) (projectile--cmake-command-presets filename command-type)) '("CMakeUserPresets.json" "CMakePresets.json")))) (advice-add #'projectile--cmake-all-command-presets :override #'dotfiles--projectile--cmake-all-command-presets)
Answer questions jehelset
as a quickfix you could use something like this:
(defun projectile-reconfigure-command (compile-dir) "Retrieve the configure command for COMPILE-DIR without considering history. The command is determined like this: - first we check for `projectile-project-configure-cmd' supplied via .dir-locals.el - finally we check for the default configure command for a project of that type" (or projectile-project-configure-cmd (let ((cmd-format-string (projectile-default-configure-command (projectile-project-type)))) (when cmd-format-string (format cmd-format-string (projectile-project-root) compile-dir))))) (defun projectile-reconfigure-project (arg) "Run project configure command without considering command history. Normally you'll be prompted for a compilation command, unless variable `compilation-read-command'. You can force the prompt with a prefix ARG." (interactive "P") (let ((command (projectile-reconfigure-command (projectile-compilation-dir)))) (projectile--run-project-cmd command projectile-configure-cmd-map :show-prompt arg :prompt-prefix "Configure command: " :save-buffers t)))
projectile-reconfigure-command to a suitable key.