zero-plusplus / vscode-autohotkey-debug

https://marketplace.visualstudio.com/items?itemName=zero-plusplus.vscode-autohotkey-debug
52 stars 4 forks source link

Improved interpretor path support #304

Open Descolada opened 1 year ago

Descolada commented 1 year ago

Although I am aware of your policy of not accepting pull requests, I am leaving this here as a base for a potential fix for issue #303 whenever you get time to deal with this. Modify it as you wish.

This PR adds existsSyncEx and commandExistsSync functions to support accepting a command, file, or symlink as runtime paths. This fixes the issue where existsSync returns "false" in the case of a symlink pointing to the WindowsApps restricted folder. 1) commandExistsSync requires the package command-exists, this has been added to package.json 2) existsSyncEx uses lstatSync to check whether a file or symlink exists by checking for the ENOENT error. lstatSync is used instead of statSync because the latter fails with a "permission denied" error in cases of a symlink pointing to a restricted permission file.

For example, if AHK Microsoft Store edition is installed, commandExistsSync permits AutoHotkey command to be used instead of a full path, and existsSyncEx permits the symlink C:/Users/CURRENTUSER/AppData/Local/Microsoft/WindowsApps/AutoHotkey.exe which previously failed.

zero-plusplus commented 1 year ago

Thanks so much for letting me know that there is a problem with the path validation.

I will have to think about reducing npm package dependencies in the future so I can come up with a better solution.


I will close this pull request in the future when this issue is resolved.