lang/nim: fix invalid argument errors
The nimsuggest plugin tries to build a unique path for temporary files for its flycheck checker. This path contains /tmp/emacs-nim-mode/A/B, where A is the frame ID and B is the full path to the file being checked. However, the original `nimsuggest--get-dirty-dir' incorrectly extracts the frame ID from the string representation of `selected-frame' if frame-title-format has been modified (which Doom has). The result is the title of the frame, which can contain illegal path characters in Windows, which in turn causes invalid argument errors when `nimsuggest--make-tempdir' tries to use it. This should really be reported upstream!
This commit is contained in:
parent
a7b87fe3de
commit
bfe7b9f1c4
1 changed files with 11 additions and 0 deletions
|
@ -10,6 +10,17 @@ nimsuggest isn't installed."
|
|||
(nimsuggest-mode)))
|
||||
(add-hook 'nim-mode-hook #'+nim|init-nimsuggest-mode)
|
||||
|
||||
(defun doom*nimsuggest--get-dirty-dir ()
|
||||
"The original `nimsuggest--get-dirty-dir' incorrectly extracts the frame
|
||||
number from the string representation of `selected-frame', which can contain
|
||||
characters that are illegal on Windows, causing invalid argument errors when
|
||||
`nimsuggest--make-tempdir' tries to use it."
|
||||
(let* ((frame-str (format "%s" (selected-frame)))
|
||||
(frame-num-str (if (string-match " \\(0x[0-9a-z]+\\)>$" frame-str)
|
||||
(match-string 1 frame-str))))
|
||||
(file-name-as-directory (concat nimsuggest-dirty-directory frame-num-str))))
|
||||
(advice-add #'nimsuggest--get-dirty-dir :override #'doom*nimsuggest--get-dirty-dir)
|
||||
|
||||
(map! :map nim-mode-map
|
||||
:localleader
|
||||
:n "b" #'nim-compile))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue