fsharp / fsharp/emacs-fsharp-mode
fsharp-mode-project-root breaks when the file doesn't exist
- Dominant language
- Emacs Lisp
- Stars
- 215
- Forks
- 65
- PR merge metrics
- No merged PRs in 30d
Description
### Description
fsharp-mode adds fsharp-mode-project-root to project-find-functions, which is run by project-current. Such functions should return nil if they can't find a project; otherwise, they make cause project-current as a whole to error.
This causes Emacs to break if e.g. there's a buffer visiting a file which hasn't yet been created.
### Repro steps
Please provide the steps required to reproduce the problem
1. M-: (fsharp-mode-project-root "/non/existent")
### Expected behavior
It should return `nil` as is the project-find-functions spec
### Actual behavior
It errors:
```
Debugger entered--Lisp error: (file-missing "Opening directory" "No such file or directory" "/non")
directory-files("/non/" full ".*\\.sln$")
fsharp-mode-search-upwards(".*\\.sln$" "/non/")
fsharp-mode/find-sln("/non/existent")
fsharp-mode/find-sln-or-fsproj("/non/existent")
fsharp-mode-project-root("/non/existent")
eval((fsharp-mode-project-root "/non/existent") t)
eval-expression((fsharp-mode-project-root "/non/existent") nil nil 127)
funcall-interactively(eval-expression (fsharp-mode-project-root "/non/existent") nil nil 127)
call-interactively(eval-expression nil nil)
command-execute(eval-expression)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.