Closed tssm closed 4 years ago
Try copy lib/libfvim-ext.dylib
to bin/Debug/netcoreapp3.1
?
Hey, thanks! That did the trick. Shouldn't that step be automatic? Anyway, I'll try to see if I can fix some macOS stuff
The build script copies the lib directly to the deployment directory so the build dir is skipped.. Glad it works for you now :)
Ping me for any questions. I don't have access to a real mac at the moment, so it'd be awesome if you can sort it out!
Thanks for all your help. I want to start with simple stuff because I don't have any F# experience, so I want to fix the shell: I see that Bash is hardcoded in lib/fvim-osx-launcher
, but that is not the default anymore (they switched to ZSH on Catalina) and anyway a lot of us uses Fish, so I would like FVim to pick the default shell from the environment. I changed some stuff on the script, but no matter what, they are not being picked up. I guess it's because dotnet run
doesn't rely on that script at all: the only reference to that file I see is in the pack.sh
file. Is there a way to try changes to lib/fvim-osx-launcher
without packaging the app?
they switched to ZSH on Catalina
Really! No wonder the script would fail on newer systems.
Yeah, dotnet run doesn't call the script file. Only a packaged app folder use it.
btw, the way the launcher is activated is in lib/Info.plist
.
My preliminary research on this is based on this document: https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html
and another neovim frontend app for mac (I don't remember clearly now... sorry)
Bash is still available (too many scripts to replace), so it doesn't fail. It is just annoying that your default shell is not being picked up.
Thanks for the link, I'll start there. Grepping trough the project only shows that Bash is hardcoded on getopt.fs
, azure-pipelines.yaml
, pack.sh
, and Info.plist
, but none of them have anything to do with how :terminal
behaves 🤔 That's why I think fvim-osx-launcher
is the culprit
There is a binary executable generated by dotnet publish
in the app dir "FVim".
Initially I thought that pointing to it in the plist is enough, but in my setting at that time, it was picking up an ancient bash (v3.x) instead of brew-installed new bash.
That's why I set up the launcher script in the hope to load up the proper environment for the user.
In the launcher: export SHELL=$new_bash
That controls the :terminal
behavior.
So if you can work out a way to decide what's the best value for SHELL, please do it :)
logger output can be viewed in the Console.app
Last question regarding this, and then I think I can keep going alone: Any idea why dotnet run
picks Bash as default shel if it doesn't rely on the fvim-osx-launcher
script?
It should inherit SHELL
from the environment. Echo that to verify.
Funny: The error was that I ran dotnet run
in a terminal inside the latest release of FVim, with has Bash hardcoded 😅
I confirmed that without fvim-osx-launcher
FVim correctly picks the right shell as long as it was changed with chsh
and its full path was added as an entry to /etc/shells
. This may explain why it wasn't picking a new version of installed with Homebrew.
I want to send a PR, but I'm having problems getting the bundle to work :( I'll do it as soon as I can
That was meta :D
I'm trying to run my local build on macOS Catalina, but
botnet run
throws an exception:I'm have .NET 3.1.102 on my path. The full log is
Any ideas?